Tendermint Core needs to ack commit messages?

Hey guys, I have a question concerning Tendermint Core’s commit.

When our ABCI app receives the Commit message, we are expected to store on our side the new app hash resulting from the Tx in that commit and return that app hash to Tendermint Core.
What happens if for some reason our app crashes after storing the new app hash but before Tendermint Core gets it?
When the ABCI app will restart, it will advertise the last app hash which Tendermint Core doesn’t have, so the handshake will most likely fail right?
The way we currently work around that is that instead of storing the app hash (on our ABCI side) at Commit, we store it in the next BeginBlock, but that really feels like a design flaw.
We think that we need an Ack response from Tendermint Core after the Commit, and that would be the place where the ABCI could safely store the new App hash and last seen height.

Have you guys thought about this, are we missing something?

This is handled by Tendermint Core. If the core does not receive the app hash from calling commit it won’t increment the block height. Due to this the handshake should still work.

Check out the docs here too.

1 Like

Thanks Adrian, I just tested this by modifying the counter app and it indeed works correctly.