From ebda9dcac59d4bfd9d6949343dd505d8fb6839ad Mon Sep 17 00:00:00 2001 From: Erik Grinaker Date: Tue, 14 Apr 2020 08:54:25 +0200 Subject: [PATCH] abci: add basic description of ABCI Commit.ResponseHeight (#85) Documentation for block pruning, once it's merged: tendermint/tendermint#4588. Minimum documentation, for now - we probably shouldn't encourage using this feature too much until we release state sync. --- spec/abci/abci.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/abci/abci.md b/spec/abci/abci.md index 74cf4d0c4..3c6526a91 100644 --- a/spec/abci/abci.md +++ b/spec/abci/abci.md @@ -369,6 +369,8 @@ Commit are included in the header of the next block. - **Response**: - `Data ([]byte)`: The Merkle root hash of the application state + - `RetainHeight (int64)`: Blocks below this height may be removed. Defaults + to `0` (retain all). - **Usage**: - Persist the application state. - Return an (optional) Merkle root hash of the application state @@ -380,6 +382,11 @@ Commit are included in the header of the next block. constant string, etc.), so long as it is deterministic - it must not be a function of anything that did not come from the BeginBlock/DeliverTx/EndBlock methods. + - Use `RetainHeight` with caution! If all nodes in the network remove historical + blocks then this data is permanently lost, and no new nodes will be able to + join the network and bootstrap. Historical blocks may also be required for + other purposes, e.g. auditing, replay of non-persisted heights, light client + verification, and so on. ## Data Types