Independent roothash pruning policy #1920
Labels
c:consensus/cometbft
Category: CometBFT
c:roothash
Category: root hash service
c:runtime/indexer
Category: runtime block and/or tag indexer
c:storage
Category: storage
Currently the Ekiden runtime pruning policy is coupled with the Tendermint ABCI state pruning policy. This makes it hard to control how runtime history is kept as there is no simple correlation between Tendermint blocks and roothash rounds.
This should be changed so that the Ekiden runtime pruning policy becomes independent. In order to support this even while Tendermint ABCI state may be pruned, we need to make sure to keep a copy of all non-pruned Ekiden runtime blocks. This can be achieved either by:
The benefit of the first approach is that we can independently prune consensus and the downside is that we would duplicate some amount of state (e.g., Ekiden runtime blocks that would exist in both ABCI state until pruned and in this new index). Note that the separate index is needed even in the second case in order to map round numbers to consensus heights (this is the current implementation).
The refactored pruning policy support must also take into account that storage needs to use it in order to know what to sync and where checkpoints (e.g.,
GetCheckpoint
) can be used to speed up syncing.Estimated cost: 1 sprint
The text was updated successfully, but these errors were encountered: