You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
6.2 KiB

add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
5 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
5 years ago
  1. ## v0.33.6
  2. \*\*
  3. Special thanks to external contributors on this release:
  4. Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermint).
  5. ### BREAKING CHANGES:
  6. - CLI/RPC/Config
  7. - [evidence] \#4725 Remove `Pubkey` from DuplicateVoteEvidence
  8. - [rpc] [\#4792](https://github.com/tendermint/tendermint/pull/4792) `/validators` are now sorted by voting power (@melekes)
  9. - [types] \#4382 `SignedMsgType` has moved to a Protobuf enum types
  10. - [types] \#4382 `Total` has been changed from a `int` to a `uint32`
  11. - [types] \#4582 Vote: `ValidatorIndex` & `Round` are now int32
  12. - [types] \#4582 Proposal: `POLRound` & `Round` are now int32
  13. - [types] \#4582 Block: `Round` is now int32
  14. - [types] \#4962 `ConsensusParams`, `BlockParams`, `EvidenceParams`, `ValidatorParams` & `HashedParams` are now Protobuf types
  15. - [consensus] \#4582 RoundState: `Round`, `LockedRound` & `CommitRound` are now int32
  16. - [consensus] \#4582 HeightVoteSet: `round` is now int32
  17. - [privval] \#4582 `round` in private_validator_state.json is no longer a string in json it is now a number.
  18. - [crypto] \#4940 All keys have become `[]byte` instead of `[<size>]byte`. The byte method no longer returns the marshaled value but just the `[]byte` form of the data.
  19. - [crypto] \#4941 Remove suffixes from all keys.
  20. - ed25519: type `PrivKeyEd25519` is now `PrivKey`
  21. - ed25519: type `PubKeyEd25519` is now `PubKey`
  22. - secp256k1: type`PrivKeySecp256k1` is now `PrivKey`
  23. - secp256k1: type`PubKeySecp256k1` is now `PubKey`
  24. - sr25519: type `PrivKeySr25519` is now `PrivKey`
  25. - sr25519: type `PubKeySr25519` is now `PubKey`
  26. - multisig: type `PubKeyMultisigThreshold` is now `PubKey`
  27. - [light] \#4946 Rename `lite2` pkg to `light`, the lite cmd has also been renamed to `light`. Remove `lite` implementation.
  28. - [rpc] \#4937 Return an error when `page` pagination param is 0 in `/validators`, `tx_search` (@melekes)
  29. - [state] \#4679 `TxResult` is a Protobuf type defined in `abci` types directory
  30. - [state] \#4679 `state` reactor migration to Protobuf encoding
  31. - [evidence] \#4959 Add json tags to `DuplicateVoteEvidence`
  32. - [p2p/pex] \#4973 `p2p/pex` reactor migration to Protobuf encoding
  33. - [light] \#4964 `light` reactor migration to Protobuf encoding
  34. - [store] \#4778 Transition store module to protobuf encoding
  35. - `BlockStoreStateJSON` is now `BlockStoreState` and is encoded as binary in the database
  36. - Apps
  37. - [abci] [\#4704](https://github.com/tendermint/tendermint/pull/4704) Add ABCI methods `ListSnapshots`, `LoadSnapshotChunk`, `OfferSnapshot`, and `ApplySnapshotChunk` for state sync snapshots. `ABCIVersion` bumped to 0.17.0.
  38. - P2P Protocol
  39. - Go API
  40. - [crypto] [\#4721](https://github.com/tendermint/tendermint/pull/4721) Remove `SimpleHashFromMap()` and `SimpleProofsFromMap()` (@erikgrinaker)
  41. - [types] \#4798 Simplify `VerifyCommitTrusting` func + remove extra validation (@melekes)
  42. - [libs] \#4831 Remove `Bech32` pkg from Tendermint. This pkg now lives in the [cosmos-sdk](https://github.com/cosmos/cosmos-sdk/tree/4173ea5ebad906dd9b45325bed69b9c655504867/types/bech32)
  43. - Blockchain Protocol
  44. - [types] [\#4792](https://github.com/tendermint/tendermint/pull/4792) Sort validators by voting power to enable faster commit verification (@melekes)
  45. - [evidence] [\#4780](https://github.com/tendermint/tendermint/pull/4780) Cap evidence to an absolute number (@cmwaters)
  46. Add `max_num` to consensus evidence parameters (default: 50 items).
  47. - [mempool] \#4940 Migrate mempool from amino binary encoding to Protobuf
  48. - [statesync] \#4943 Migrate statesync reactor from amino binary encoding to Protobuf
  49. - [rpc/client] \#4947 `Validators`, `TxSearch` `page`/`per_page` params become pointers (@melekes)
  50. `UnconfirmedTxs` `limit` param is a pointer
  51. ### FEATURES:
  52. - [statesync] Add state sync support, where a new node can be rapidly bootstrapped by fetching state snapshots from peers instead of replaying blocks. See the `[statesync]` config section.
  53. - [evidence] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Handle evidence from light clients (@melekes)
  54. - [light] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Submit conflicting headers, if any, to a full node & all witnesses (@melekes)
  55. - [rpc] [\#4532](https://github.com/tendermint/tendermint/pull/4923) Support `BlockByHash` query (@fedekunze)
  56. - [p2p] \#4981 Expose `SaveAs` func on NodeKey (@melekes)
  57. ### IMPROVEMENTS:
  58. - [txindex] [\#4466](https://github.com/tendermint/tendermint/pull/4466) Allow to index an event at runtime (@favadi)
  59. - `abci.EventAttribute` replaces `KV.Pair`
  60. - [evidence] [\#4722](https://github.com/tendermint/tendermint/pull/4722) Improved evidence db (@cmwaters)
  61. - [state] [\#4781](https://github.com/tendermint/tendermint/pull/4781) Export `InitStateVersion` for the initial state version (@erikgrinaker)
  62. - [p2p/conn] \#4795 Return err on `signChallenge()` instead of panic
  63. - [evidence] [\#4839](https://github.com/tendermint/tendermint/pull/4839) Reject duplicate evidence from being proposed (@cmwaters)
  64. - [evidence] [\#4892](https://github.com/tendermint/tendermint/pull/4892) Remove redundant header from phantom validator evidence (@cmwaters)
  65. - [types] [\#4905](https://github.com/tendermint/tendermint/pull/4905) Add ValidateBasic to validator and validator set (@cmwaters)
  66. - [consensus] [\#4578](https://github.com/tendermint/tendermint/issues/4578) Attempt to repair the consensus WAL file (`data/cs.wal/wal`) automatically in case of corruption (@alessio)
  67. The original WAL file will be backed up to `data/cs.wal/wal.CORRUPTED`.
  68. - [light] [\#4935](https://github.com/tendermint/tendermint/pull/4935) Fetch and compare a new header with witnesses in parallel (@melekes)
  69. - [light] [\#4929](https://github.com/tendermint/tendermint/pull/4929) compare header w/ witnesses only when doing bisection (@melekes)
  70. - [light] [\#4916](https://github.com/tendermint/tendermint/pull/4916) validate basic for inbound validator sets and headers before further processing them (@cmwaters)
  71. ### BUG FIXES:
  72. - [consensus] [\#4895](https://github.com/tendermint/tendermint/pull/4895) Cache the address of the validator to reduce querying a remote KMS (@joe-bowman)
  73. - [blockchain/v2] Correctly set block store base in status responses (@erikgrinaker)