You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we upgrade iavl in our blockchain from iavl v0.19.0 to v0.19.3, the chain got the error: "wrong Block.Header.AppHash.".
Deep dive the iavl source code, we found that the immutable tree clone() func missing the skipFastStorageUpgrade field. This cause the "skipFastStorageUpgrade" field auto set to false, while it is initiated "true" --> immutable iterator() func return the wrong list, then mismatch in db of validators.
To fix this issue, we need to add "skipFastStorageUpgrade" into the clone() func as follows:
the main issue people seem to be running into is when the fast nodes exist and then turn it off. Ill test this on some chains, but this could elude to a different issue
the main issue people seem to be running into is when the fast nodes exist and then turn it off.
It's true, actually we upgrade cosmos-sdk v0.45.7 to v0.45.9, it sets "const iavlDisablefastNodeDefault = true" by default, other blockchains set "const iavlDisablefastNodeDefault = false" then they don't face this issue.
When we upgrade iavl in our blockchain from iavl v0.19.0 to v0.19.3, the chain got the error: "wrong Block.Header.AppHash.".
Deep dive the iavl source code, we found that the immutable tree clone() func missing the skipFastStorageUpgrade field. This cause the "skipFastStorageUpgrade" field auto set to false, while it is initiated "true" --> immutable iterator() func return the wrong list, then mismatch in db of validators.
To fix this issue, we need to add "skipFastStorageUpgrade" into the clone() func as follows:
@tac0turtle please give your comment
The text was updated successfully, but these errors were encountered: