-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate app_hash / no_empty_block issue #72
Comments
So, the new IAVL updates the version with each call to Commit, which is why the app hash changes with each block. I'm not sure if we want to change this. Instead we're considering adding a mechanism to ResponseEndBlock to allow it control whether/when new empty blocks are produced. See tendermint/tendermint#1392 |
Hey @ebuchman thanks for the comment. I was looking into this a bit, and it seems that the iavl tree
If I understand that code correctly, if there are empty blocks, the hash returned from As to the cosmos-sdk issue, it seems:
And it seems the issue comes from the second, if I understand properly. The store in weave looks similar to the IAVLStore in cosmos-sdk, and we only Seems like this should pose no problem, as long only the version, not the hash, in the iavl tree changes on an empty block. As for cosmos-sdk, can't you just create the root hash by doing I mean, the root multi store should ensure that all substores have the same version, right? If that is the case, there is no need to include the version in a hash, just check them all and error/panic if any are different. |
I ran this with tendermint v0.19.7 and bov v0.4.0, with the following config options:
I can confirm it produced two blocks on startup, and one 5 minutes later
Looks like we are safe here... now, please convince Jae to fix up the multistore implementation and cosmos-sdk will fly again 😄 |
There is a problem in cosmos-sdk with constantly changing app_hash: cosmos/cosmos-sdk#520
Investigate if this also affects weave. We have different app logic, but also rely on the same underlying merkle store.
The text was updated successfully, but these errors were encountered: