From c33fab961b52ac5e75e1d5ef78ffee198f7ba54f Mon Sep 17 00:00:00 2001 From: Marko Date: Mon, 6 Jul 2020 10:04:53 +0200 Subject: [PATCH] changelog: reorgranize (#5065) [**RENDERED**](https://github.com/tendermint/tendermint/blob/9a7b139a72ec5a513985b178ec65aaf35cd904fe/CHANGELOG_PENDING.md#v0336) Closes #5057 --- CHANGELOG_PENDING.md | 114 +++++++++++++++++++++++-------------------- CONTRIBUTING.md | 8 +-- UPGRADING.md | 21 ++++++++ version/version.go | 4 +- 4 files changed, 88 insertions(+), 59 deletions(-) diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 3d263d589..500d4c0b3 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -10,19 +10,57 @@ Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermi - CLI/RPC/Config - - [consensus] \#4582 RoundState: `Round`, `LockedRound` & `CommitRound` are now int32 - - [consensus] \#4582 HeightVoteSet: `round` is now int32 - - [evidence] \#4725 Remove `Pubkey` from DuplicateVoteEvidence - [evidence] \#4959 Add json tags to `DuplicateVoteEvidence` + - [light] \#4946 `tendermint lite` cmd has been renamed to `tendermint light` + - [privval] \#4582 `round` in private_validator_state.json is no longer a string in json it is now a number + - [rpc] [\#4792](https://github.com/tendermint/tendermint/pull/4792) `/validators` are now sorted by voting power (@melekes) + - [rpc] \#4937 Return an error when `page` pagination param is 0 in `/validators`, `tx_search` (@melekes) + +- Apps + + - [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. + - [abci] \#4989 `Proof` within `ResponseQuery` has been renamed to `ProofOps` + +- P2P Protocol + + - [blockchain] \#4637 Migrate blockchain reactor(s) to Protobuf encoding + - [evidence] \#4949 Migrate evidence reactor to Protobuf encoding + - [mempool] \#4940 Migrate mempool from to Protobuf encoding + - [p2p/pex] \#4973 Migrate `p2p/pex` reactor to Protobuf encoding + - [statesync] \#4943 Migrate state sync reactor to Protobuf encoding + +- Blockchain Protocol + + - [evidence] [\#4780](https://github.com/tendermint/tendermint/pull/4780) Cap evidence to an absolute number (@cmwaters) + - Add `max_num` to consensus evidence parameters (default: 50 items). + - [evidence] \#4725 Remove `Pubkey` from `DuplicateVoteEvidence` + - [state] \#4845 Include `BeginBlock#Events`, `EndBlock#Events`, `DeliverTx#Events`, `GasWanted` and `GasUsed` into `LastResultsHash` (@melekes) + - [types] [\#4792](https://github.com/tendermint/tendermint/pull/4792) Sort validators by voting power to enable faster commit verification (@melekes) + +- On-disk serialization + + - [state] \#4679 Migrate state module to Protobuf encoding + - `BlockStoreStateJSON` is now `BlockStoreState` and is encoded as binary in the database + - [store] \#4778 Migrate store module to Protobuf encoding + +- Light client, private validator + + - [light] \#4964 Migrate light module migration to Protobuf encoding + - [privval] \#4985 Migrate `privval` module to Protobuf encoding + +- Go API + + - [light] \#4946 Rename `lite2` pkg to `light`. Remove `lite` implementation. + - [crypto] [\#4721](https://github.com/tendermint/tendermint/pull/4721) Remove `SimpleHashFromMap()` and `SimpleProofsFromMap()` (@erikgrinaker) - [crypto] \#4940 All keys have become `[]byte` instead of `[]byte`. The byte method no longer returns the marshaled value but just the `[]byte` form of the data. - [crypto] \4988 Removal of key type multisig - The key has been moved to the Cosmos-SDK (https://github.com/cosmos/cosmos-sdk/blob/master/crypto/types/multisig/multisignature.go) - [crypto] \#4989 Remove `Simple` prefixes from `SimpleProof`, `SimpleValueOp` & `SimpleProofNode`. - - `merkle.Proof` has been renamed to `ProofOps`. - - Protobuf messages `Proof` & `ProofOp` has been moved to `proto/crypto/merkle` - - `SimpleHashFromByteSlices` has been renamed to `HashFromByteSlices` - - `SimpleHashFromByteSlicesIterative` has been renamed to `HashFromByteSlicesIterative` - - `SimpleProofsFromByteSlices` has been renamed to `ProofsFromByteSlices` + - `merkle.Proof` has been renamed to `ProofOps`. + - Protobuf messages `Proof` & `ProofOp` has been moved to `proto/crypto/merkle` + - `SimpleHashFromByteSlices` has been renamed to `HashFromByteSlices` + - `SimpleHashFromByteSlicesIterative` has been renamed to `HashFromByteSlicesIterative` + - `SimpleProofsFromByteSlices` has been renamed to `ProofsFromByteSlices` - [crypto] \#4941 Remove suffixes from all keys. - ed25519: type `PrivKeyEd25519` is now `PrivKey` - ed25519: type `PubKeyEd25519` is now `PubKey` @@ -31,61 +69,29 @@ Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermi - sr25519: type `PrivKeySr25519` is now `PrivKey` - sr25519: type `PubKeySr25519` is now `PubKey` - multisig: type `PubKeyMultisigThreshold` is now `PubKey` - - [light] \#4946 Rename `lite2` pkg to `light`, the lite cmd has also been renamed to `light`. Remove `lite` implementation. - - [rpc] [\#4792](https://github.com/tendermint/tendermint/pull/4792) `/validators` are now sorted by voting power (@melekes) - - [rpc] \#4937 Return an error when `page` pagination param is 0 in `/validators`, `tx_search` (@melekes) - - [rpc] \#4968 JSON encoding is now handled by `libs/json`, not Amino - - [privval] \#4582 `round` in private_validator_state.json is no longer a string in json it is now a number. + - [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) + - [rpc/client] \#4947 `Validators`, `TxSearch` `page`/`per_page` params become pointers (@melekes) + - `UnconfirmedTxs` `limit` param is a pointer - [proto] \#5025 All proto files have been moved to `/proto` directory. - Using the recommended the file layout from buf, [see here for more info](https://buf.build/docs/lint-checkers#file_layout) - [state] \#4679 `TxResult` is a Protobuf type defined in `abci` types directory - [types] \#4939 `SignedMsgType` has moved to a Protobuf enum types - - [types] \#4939 `Total` in `Parts` & `PartSetHeader` has been changed from a `int` to a `uint32` - - [types] \#4939 Vote: `ValidatorIndex` & `Round` are now int32 - - [types] \#4939 Proposal: `POLRound` & `Round` are now int32 - - [types] \#4939 Block: `Round` is now int32 - [types] \#4962 `ConsensusParams`, `BlockParams`, `EvidenceParams`, `ValidatorParams` & `HashedParams` are now Protobuf types - [types] \#4852 Vote & Proposal `SignBytes` is now func `VoteSignBytes` & `ProposalSignBytes` - - [types] \#5029 Rename all values from `PartsHeader` to `PartSetHeader` to have consistency - -- Apps - - - [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. - - [abci] \#4989 `Proof` within `ResponseQuery` has been renamed to `ProofOps` - -- P2P Protocol - -- Go API - - - [crypto] [\#4721](https://github.com/tendermint/tendermint/pull/4721) Remove `SimpleHashFromMap()` and `SimpleProofsFromMap()` (@erikgrinaker) - - [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) - - [rpc/client] \#4947 `Validators`, `TxSearch` `page`/`per_page` params become pointers (@melekes) - `UnconfirmedTxs` `limit` param is a pointer - [types] \#4798 Simplify `VerifyCommitTrusting` func + remove extra validation (@melekes) - [types] \#4845 Remove `ABCIResult` - -- Blockchain Protocol - - - [blockchain] \#4637 Migrate blockchain reactor(s) to Protobuf encoding - - [evidence] [\#4780](https://github.com/tendermint/tendermint/pull/4780) Cap evidence to an absolute number (@cmwaters) - Add `max_num` to consensus evidence parameters (default: 50 items). - - [evidence] \#4949 Migrate evidence reactor to Protobuf encoding - - [mempool] \#4940 Migrate mempool from to Protobuf encoding - - [light] \#4964 Migrate light reactor migration to Protobuf encoding - - [p2p/pex] \#4973 Migrate `p2p/pex` reactor to Protobuf encoding - - [privval] \#4985 Migrate `privval` reactor to Protobuf encoding - - [statesync] \#4943 Migrate statesync reactor to Protobuf encoding - - [state] \#4845 Include BeginBlock#Events, EndBlock#Events, DeliverTx#Events, GasWanted and GasUsed into `LastResultsHash` (@melekes) - - [state] \#4679 Migrate state reactor to Protobuf encoding - - `BlockStoreStateJSON` is now `BlockStoreState` and is encoded as binary in the database - - [store] \#4778 Migrate store module to Protobuf encoding - - [types] [\#4792](https://github.com/tendermint/tendermint/pull/4792) Sort validators by voting power to enable faster commit verification (@melekes) - - [mempool] Add RemoveTxByKey() exported function for custom mempool cleaning (@p4u) + - [types] \#5029 Rename all values from `PartsHeader` to `PartSetHeader` to have consistency + - [types] \#4939 `Total` in `Parts` & `PartSetHeader` has been changed from a `int` to a `uint32` + - [types] \#4939 Vote: `ValidatorIndex` & `Round` are now `int32` + - [types] \#4939 Proposal: `POLRound` & `Round` are now `int32` + - [types] \#4939 Block: `Round` is now `int32` + - [consensus] \#4582 RoundState: `Round`, `LockedRound` & `CommitRound` are now `int32` + - [consensus] \#4582 HeightVoteSet: `round` is now `int32` ### FEATURES: - [abci] \#5031 Add `AppVersion` to consensus parameters (@james-ray) - ... making it possible to update your ABCI application version via `EndBlock` response + - ... making it possible to update your ABCI application version via `EndBlock` response - [evidence] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Handle evidence from light clients (@melekes) - [evidence] [#4821](https://github.com/tendermint/tendermint/pull/4821) Amnesia evidence can be detected, verified and committed (@cmwaters) - [light] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Submit conflicting headers, if any, to a full node & all witnesses (@melekes) @@ -98,6 +104,7 @@ Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermi ### IMPROVEMENTS: - [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) + - The original WAL file will be backed up to `data/cs.wal/wal.CORRUPTED`. - [evidence] [\#4722](https://github.com/tendermint/tendermint/pull/4722) Improved evidence db (@cmwaters) - [evidence] [\#4839](https://github.com/tendermint/tendermint/pull/4839) Reject duplicate evidence from being proposed (@cmwaters) - [evidence] [\#4892](https://github.com/tendermint/tendermint/pull/4892) Remove redundant header from phantom validator evidence (@cmwaters) @@ -108,8 +115,9 @@ Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermi - [state] [\#4781](https://github.com/tendermint/tendermint/pull/4781) Export `InitStateVersion` for the initial state version (@erikgrinaker) - [txindex] [\#4466](https://github.com/tendermint/tendermint/pull/4466) Allow to index an event at runtime (@favadi) - `abci.EventAttribute` replaces `KV.Pair` -- [types] [\#4905](https://github.com/tendermint/tendermint/pull/4905) Add ValidateBasic to validator and validator set (@cmwaters) - The original WAL file will be backed up to `data/cs.wal/wal.CORRUPTED`. +- [types] [\#4905](https://github.com/tendermint/tendermint/pull/4905) Add `ValidateBasic` to validator and validator set (@cmwaters) +- [rpc] \#4968 JSON encoding is now handled by `libs/json`, not Amino +- [mempool] Add RemoveTxByKey() exported function for custom mempool cleaning (@p4u) ### BUG FIXES: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4f8b80704..25efabbd8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -145,7 +145,7 @@ pull-request that includes an update to the `CHANGELOG_PENDING.md` file. Changelog entries should be formatted as follows: -``` +```md - [module] \#xxx Some description about the change (@contributor) ``` @@ -153,7 +153,7 @@ Here, `module` is the part of the code that changed (typically a top-level Go package), `xxx` is the pull-request number, and `contributor` is the author/s of the change. -It's also acceptable for `xxx` to refer to the relevent issue number, but pull-request +It's also acceptable for `xxx` to refer to the relevant issue number, but pull-request numbers are preferred. Note this means pull-requests should be opened first so the changelog can then be updated with the pull-request's number. @@ -170,7 +170,7 @@ Breaking changes are further subdivided according to the APIs/users they impact. Any change that effects multiple APIs/users should be recorded multiply - for instance, a change to the `Blockchain Protocol` that removes a field from the header should also be recorded under `CLI/RPC/Config` since the field will be -removed from the header in rpc responses as well. +removed from the header in RPC responses as well. ## Branching Model and Release @@ -187,7 +187,7 @@ easy to reference the pull request where a change was introduced. The latest state of development is on `master`, which must never fail `make test`. _Never_ force push `master`, unless fixing broken git history (which we rarely do anyways). -To begin contributing, create a development branch either on github.com/tendermint/tendermint, or your fork (using `git remote add origin`). +To begin contributing, create a development branch either on `github.com/tendermint/tendermint`, or your fork (using `git remote add origin`). Make changes, and before submitting a pull request, update the `CHANGELOG_PENDING.md` to record your change. Also, run either `git rebase` or `git merge` on top of the latest `master`. (Since pull requests are squash-merged, either is fine!) diff --git a/UPGRADING.md b/UPGRADING.md index 9b97eb5a0..439c4edf2 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -96,6 +96,27 @@ From the merkle package `SimpleHashFromMap()` and `SimpleProofsFromMap()` were r The Bech32 pkg has been migrated to a new home, you can find it in the [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/tree/4173ea5ebad906dd9b45325bed69b9c655504867/types/bech32) +### CLI + +`tendermint lite` has been renamed `tendermint light` and has a slightly different API. + +Check out [the docs](https://docs.tendermint.com/master/tendermint-core/light-client-protocol.html#http-proxy) for details. + +### Light client + +The old `lite` package is removed in favor of the new `light` package. Check +out [this +article](https://medium.com/tendermint/everything-you-need-to-know-about-the-tendermint-light-client-f80d03856f98) +if you want to learn why the rewrite was needed and what comprise the new light + client. + +Doc: https://pkg.go.dev/github.com/tendermint/tendermint/lite2?tab=doc + +`Verifier` was broken up in two pieces: core verification logic (pure `VerifyX` +functions) and `Client` object, which represents the complete light client. + +RPC client can be found in `/rpc` directory. HTTP(S) proxy is located in +`/proxy` directory. ## v0.33.4 diff --git a/version/version.go b/version/version.go index eb08b0123..3e78ac318 100644 --- a/version/version.go +++ b/version/version.go @@ -31,9 +31,9 @@ const ( var ( // P2PProtocol versions all p2p behaviour and msgs. // This includes proposer selection. - P2PProtocol uint64 = 8 + P2PProtocol uint64 = 9 // BlockProtocol versions all block data structures and processing. // This includes validity of blocks and state updates. - BlockProtocol uint64 = 11 + BlockProtocol uint64 = 12 )