@ -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
- [crypto] [\#4721](https://github.com/tendermint/tendermint/pull/4721) Remove `SimpleHashFromMap()` and `SimpleProofsFromMap()` (@erikgrinaker)
- [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.
- [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)
- [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)
@ -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!)
@ -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