You are viewing a single comment's thread from:

RE: Why did STEEM blockchain froze ?

in #steemitdev6 years ago

What's the link for the commit with the fix on GitHub that you screenshot?

Are these invalid transactions going to remain part of the blockchain? More context would be much appreciated. Additionally more information over how this issue was identified and resolved.

Sort:  

What's the link for the commit with the fix on GitHub that you screenshot?

https://github.com/steemit/steem/pull/2583

Changes are here : https://github.com/steemit/steem/pull/2583/commits/1197e2f5feb7f76fa137102c26536a3571d8858a

I will explain in detail later. Roughly this does

  1. prevents the blockchain to execute the power down of @nijeah
  2. The object and the account @nijeah is referenced in the code because this is part of the blockchain and the withdrawal will be attempted as its marked valid.
  3. To avoid this issue in the future, validations are added.

The check is done immediately after the blockchain file is opened to avoid execution. (roughly. though the execution path is not linear)

More context would be much appreciated. Additionally more information over how this issue was identified and resolved.

It looks like @nijeah executed via JS. I couldn't reproduce this yet as I had to make changes to my environment to run this. Will share the exact errors thrown tomorrow. I think the race condition might have created a transaction time out for the block and the block producers might have went trying to producing the block and into an infinite loop or until all the block producers available were over.

Thanks for the details. It's always fascinating to learn how things break! It seems like some people are accusing @nijeah of being a bad actor, but I'd rather have the kinks worked out sooner rather than later.

So if I understand correctly, @nijeah made 4 offending transactions 7 days ago as per https://steemd.com/@nijeah:

nijeah-transactions.png

Those should-be-invalid transactions went unnoticed until the first thirteenth of the power down executed (or started crashing nodes upon execution). So those four transactions will remain part of the blockchain, but the new software is hardcoded to ignore them and prevent future negative power downs like this.

I believe Bitcoin's source code also has many of these historical hardcoded artifacts... bugs that because they were on a live network now are forever part of the protocol up to a certain block height.

exactly my thoughts. Any software which has successfully "consumed" more CPU cycles is more refined - like old wine. So is Bitcoin and so is STEEM. :-)

Coin Marketplace

STEEM 0.23
TRX 0.25
JST 0.038
BTC 95957.12
ETH 3307.71
USDT 1.00
SBD 3.34