There are two main things causing various issues on Steem. The first is the fact that a significant number of backup witnesses are not producing blocks. As you mentioned, this causes constant micro-forks, which the blockchain can easily handle, but can cause a number of user experience issues for applications using the chain. In Splinterlands, for example, we have had to increase the waiting time to confirm every transaction to account for this, so that means players have to wait at the loading spinner longer for everything they do.
The second issue is that api.steemit.com is the only Steem RPC node available for people to use. In the past there were many public RPC nodes run by community members, including one that we ran ourselves to support the game, but now all of the other ones have left and we refuse to run the latest Steem code for our own node for obvious reasons. The game is set up to try a different node on the list if one fails for any reason, but now there is only one node so if that has any issue whatsoever (which it does with relative frequency) then transactions don't go through or API requests fail.
I expect there will be some bumps after the transition to Hive, but once those are sorted out I expect things will run MUCH more smoothly for players going forward.
Thanks for this great explanation! Makes sense that a large part of the degraded experience is the single API, preventing falling back to alternative APIs.
So the frequent micro-forks were more of a consequence of backup witnesses being offline than backup witnesses including transactions violating Softfork 0.22.888 causing their blocks to be orphaned?
It was the rules of Steem 0.22.8888 softfork that were violating consensus rules of Steem (
v0.22.1
- latest official release). Ifalice
is scheduled for block production and her node is offline, then it misses the block, and next scheduled witnessbob
produce the block with all the transactions that were supposed to be included. In this case user can experience 3 seconds of extra delay.Malicious Steem witnesses (a.k.a. technologically illiterate bunch of idiots) colluding, running their softfork code that were refusing to accept blocks with valid Steem transactions (but ignored by softfork) were causing not only such delays but also microforks and other side effects.
Steem is no longer decentralized blockchain. It's 100% Justin S. controlled piece of garbage.