tendermint: abci: use EndBlock to control empty block creation
Since some apps will change the app hash every block, even with empty blocks, setting create_empty_blocks=false won’t achieve anything.
To solve this, we could add a Pause bool field to ResponseEndBlock that tells Tendermint whether to make a new block right away or not.
We should write a proper ADR before making this change. Note that any state transitions that occur in the last block committed will not have light-client proofs until the next block is committed, so apps need to be careful when setting Pause=true
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 10
- Comments: 25 (20 by maintainers)
Commits related to this issue
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Assert continuity when reassmbling blocks, transactions, and events from StreamEvents. When serialising BlockExecutions into StreamEvents it is possible that we do not detect dropped SteamEvents when... — committed to hyperledger-archives/burrow by silasdavis 4 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to tendermint/spec by sergio-mena 2 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to tendermint/spec by sergio-mena 2 years ago
- Revert "Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec" This reverts commit 22e8aafa03c189a6d97301076b711199808... — committed to tendermint/spec by sergio-mena 2 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to tendermint/spec by sergio-mena 2 years ago
- Revert "Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec" This reverts commit 22e8aafa03c189a6d97301076b711199808... — committed to tendermint/spec by sergio-mena 2 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to tendermint/spec by sergio-mena 2 years ago
- Revert "Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec" This reverts commit 22e8aafa03c189a6d97301076b711199808... — committed to tendermint/spec by sergio-mena 2 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to celestiaorg/spec by sergio-mena 2 years ago
- Revert "Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec" This reverts commit 22e8aafa03c189a6d97301076b711199808... — committed to celestiaorg/spec by sergio-mena 2 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to celestiaorg/spec by sergio-mena 2 years ago
- Revert "Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec" This reverts commit 22e8aafa03c189a6d97301076b711199808... — committed to celestiaorg/spec by sergio-mena 2 years ago
- Included extra parameter in `FinalizeBlock` in an attempt to include https://github.com/tendermint/tendermint/issues/1909 in this spec — committed to celestiaorg/spec by sergio-mena 2 years ago
I think it would still be a valuable addition. I believe that the
create_empty_blocks=falsesetting is currently largely useless when some of the standard SDK modules are enabled, notablystaking.Our solution to this has been to move stuff out of the app_state and into an external database. Being able to just signal that a finalizing block is not needed for this state change seems to be the superior option to me.