github.com/adoriasoft/tendermint@v0.34.0-dev1.0.20200722151356-96d84601a75a/CHANGELOG_PENDING.md (about)

     1  ## v0.34
     2  
     3  \*\*
     4  
     5  Special thanks to external contributors on this release:
     6  
     7  Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermint).
     8  
     9  ### BREAKING CHANGES:
    10  
    11  - CLI/RPC/Config
    12  
    13    - [evidence] \#4959 Add json tags to `DuplicateVoteEvidence`
    14    - [light] \#4946 `tendermint lite` cmd has been renamed to `tendermint light`
    15    - [privval] \#4582 `round` in private_validator_state.json is no longer a string in json it is now a number
    16    - [rpc] [\#4792](https://github.com/tendermint/tendermint/pull/4792) `/validators` are now sorted by voting power (@melekes)
    17    - [rpc] \#4937 Return an error when `page` pagination param is 0 in `/validators`, `tx_search` (@melekes)
    18    - [rpc] \#5137 The json tags of `gasWanted` & `gasUsed` in `ResponseCheckTx` & `ResponseDeliverTx` have been made snake_case. (`gas_wanted` & `gas_used`)
    19  
    20  - Apps
    21  
    22    - [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.
    23    - [abci] \#4989 `Proof` within `ResponseQuery` has been renamed to `ProofOps`
    24    - [abci] `CheckTxType` Protobuf enum names are now uppercase, to follow Protobuf style guide
    25  
    26  - P2P Protocol
    27  
    28    - [blockchain] \#4637 Migrate blockchain reactor(s) to Protobuf encoding
    29    - [evidence] \#4949 Migrate evidence reactor to Protobuf encoding
    30    - [mempool] \#4940 Migrate mempool from to Protobuf encoding
    31    - [p2p/pex] \#4973 Migrate `p2p/pex` reactor to Protobuf encoding
    32    - [statesync] \#4943 Migrate state sync reactor to Protobuf encoding
    33  
    34  - Blockchain Protocol
    35  
    36    - [evidence] [\#4780](https://github.com/tendermint/tendermint/pull/4780) Cap evidence to an absolute number (@cmwaters)
    37      - Add `max_num` to consensus evidence parameters (default: 50 items).
    38    - [evidence] \#4725 Remove `Pubkey` from `DuplicateVoteEvidence`
    39    - [state] \#4845 Include `BeginBlock#Events`, `EndBlock#Events`, `DeliverTx#Events`, `GasWanted` and `GasUsed` into `LastResultsHash` (@melekes)
    40    - [types] [\#4792](https://github.com/tendermint/tendermint/pull/4792) Sort validators by voting power to enable faster commit verification (@melekes)
    41  
    42  - On-disk serialization
    43  
    44    - [state] \#4679 Migrate state module to Protobuf encoding
    45      - `BlockStoreStateJSON` is now `BlockStoreState` and is encoded as binary in the database
    46    - [store] \#4778 Migrate store module to Protobuf encoding
    47  
    48  - Light client, private validator
    49  
    50    - [light] \#4964 Migrate light module migration to Protobuf encoding
    51    - [privval] \#4985 Migrate `privval` module to Protobuf encoding
    52  
    53  - Go API
    54  
    55    - [light] \#4946 Rename `lite2` pkg to `light`. Remove `lite` implementation.
    56    - [crypto] [\#4721](https://github.com/tendermint/tendermint/pull/4721) Remove `SimpleHashFromMap()` and `SimpleProofsFromMap()` (@erikgrinaker)
    57    - [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.
    58    - [crypto] \4988 Removal of key type multisig
    59      - The key has been moved to the [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/blob/master/crypto/types/multisig/multisignature.go)
    60    - [crypto] \#4989 Remove `Simple` prefixes from `SimpleProof`, `SimpleValueOp` & `SimpleProofNode`.
    61      - `merkle.Proof` has been renamed to `ProofOps`.
    62      - Protobuf messages `Proof` & `ProofOp` has been moved to `proto/crypto/merkle`
    63      - `SimpleHashFromByteSlices` has been renamed to `HashFromByteSlices`
    64      - `SimpleHashFromByteSlicesIterative` has been renamed to `HashFromByteSlicesIterative`
    65      - `SimpleProofsFromByteSlices` has been renamed to `ProofsFromByteSlices`
    66    - [crypto] \#4941 Remove suffixes from all keys.
    67      - ed25519: type `PrivKeyEd25519` is now `PrivKey`
    68      - ed25519: type `PubKeyEd25519` is now `PubKey`
    69      - secp256k1: type`PrivKeySecp256k1` is now `PrivKey`
    70      - secp256k1: type`PubKeySecp256k1` is now `PubKey`
    71      - sr25519: type `PrivKeySr25519` is now `PrivKey`
    72      - sr25519: type `PubKeySr25519` is now `PubKey`
    73      - multisig: type `PubKeyMultisigThreshold` is now `PubKey`
    74    - [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)
    75    - [rpc/client] \#4947 `Validators`, `TxSearch` `page`/`per_page` params become pointers (@melekes)
    76      - `UnconfirmedTxs` `limit` param is a pointer
    77    - [proto] \#5025 All proto files have been moved to `/proto` directory.
    78      - Using the recommended the file layout from buf, [see here for more info](https://buf.build/docs/lint-checkers#file_layout)
    79    - [state] \#4679 `TxResult` is a Protobuf type defined in `abci` types directory
    80    - [types] \#4939  `SignedMsgType` has moved to a Protobuf enum types
    81    - [types] \#4962 `ConsensusParams`, `BlockParams`, `EvidenceParams`, `ValidatorParams` & `HashedParams` are now Protobuf types
    82    - [types] \#4852 Vote & Proposal `SignBytes` is now func `VoteSignBytes` & `ProposalSignBytes`
    83    - [types] \#4798 Simplify `VerifyCommitTrusting` func + remove extra validation (@melekes)
    84    - [types] \#4845 Remove `ABCIResult`
    85    - [types] \#5029 Rename all values from `PartsHeader` to `PartSetHeader` to have consistency
    86    - [types] \#4939 `Total` in `Parts` & `PartSetHeader` has been changed from a `int` to a `uint32`
    87    - [types] \#4939 Vote: `ValidatorIndex` & `Round` are now `int32`
    88    - [types] \#4939 Proposal: `POLRound` & `Round` are now `int32`
    89    - [types] \#4939 Block: `Round` is now `int32`
    90    - [consensus] \#4582 RoundState: `Round`, `LockedRound` & `CommitRound` are now `int32`
    91    - [consensus] \#4582 HeightVoteSet: `round` is now `int32`
    92    - [rpc/jsonrpc/server] \#5141 Remove `WriteRPCResponseArrayHTTP` (use `WriteRPCResponseHTTP` instead) (@melekes)
    93  
    94  ### FEATURES:
    95  
    96  - [abci] \#5031 Add `AppVersion` to consensus parameters (@james-ray)
    97    - ... making it possible to update your ABCI application version via `EndBlock` response
    98  - [evidence] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Handle evidence from light clients (@melekes)
    99  - [evidence] [#4821](https://github.com/tendermint/tendermint/pull/4821) Amnesia evidence can be detected, verified and committed (@cmwaters)
   100  - [light] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Submit conflicting headers, if any, to a full node & all witnesses (@melekes)
   101  - [p2p] \#4981 Expose `SaveAs` func on NodeKey (@melekes)
   102  - [rpc] [\#4532](https://github.com/tendermint/tendermint/pull/4923) Support `BlockByHash` query (@fedekunze)
   103  - [rpc] \#4979 Support EXISTS operator in `/tx_search` query (@melekes)
   104  - [rpc] \#5017 Add `/check_tx` endpoint to check transactions without executing them or adding them to the mempool (@melekes)
   105  - [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.
   106  - [rpc] [\#5108](https://github.com/tendermint/tendermint/pull/5108) Subscribe using the websocket for new evidence events (@cmwaters)
   107  
   108  ### IMPROVEMENTS:
   109  
   110  - [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)
   111    - The original WAL file will be backed up to `data/cs.wal/wal.CORRUPTED`.
   112  - [evidence] [\#4722](https://github.com/tendermint/tendermint/pull/4722) Improved evidence db (@cmwaters)
   113  - [evidence] [\#4839](https://github.com/tendermint/tendermint/pull/4839) Reject duplicate evidence from being proposed (@cmwaters)
   114  - [evidence] [\#4892](https://github.com/tendermint/tendermint/pull/4892) Remove redundant header from phantom validator evidence (@cmwaters)
   115  - [light] [\#4935](https://github.com/tendermint/tendermint/pull/4935) Fetch and compare a new header with witnesses in parallel (@melekes)
   116  - [light] [\#4929](https://github.com/tendermint/tendermint/pull/4929) compare header w/ witnesses only when doing bisection (@melekes)
   117  - [light] [\#4916](https://github.com/tendermint/tendermint/pull/4916) validate basic for inbound validator sets and headers before further processing them (@cmwaters)
   118  - [p2p/conn] \#4795 Return err on `signChallenge()` instead of panic
   119  - [state] [\#4781](https://github.com/tendermint/tendermint/pull/4781) Export `InitStateVersion` for the initial state version (@erikgrinaker)
   120  - [txindex] [\#4466](https://github.com/tendermint/tendermint/pull/4466) Allow to index an event at runtime (@favadi)
   121    - `abci.EventAttribute` replaces `KV.Pair`
   122  - [libs] \#5126 Add a sync package which wraps sync.(RW)Mutex & deadlock.(RW)Mutex and use a build flag (deadlock) in order to enable deadlock checking
   123  - [types] [\#4905](https://github.com/tendermint/tendermint/pull/4905) Add `ValidateBasic` to validator and validator set (@cmwaters)
   124  - [rpc] \#4968 JSON encoding is now handled by `libs/json`, not Amino
   125  - [mempool] Add RemoveTxByKey() exported function for custom mempool cleaning (@p4u)
   126  
   127  ### BUG FIXES:
   128  
   129  - [blockchain/v2] Correctly set block store base in status responses (@erikgrinaker)
   130  - [consensus] [\#4895](https://github.com/tendermint/tendermint/pull/4895) Cache the address of the validator to reduce querying a remote KMS (@joe-bowman)
   131  - [consensus] \#4970 Stricter on `LastCommitRound` check (@cuonglm)
   132  - [p2p][\#5136](https://github.com/tendermint/tendermint/pull/5136) Fix error for peer with the same ID but different IPs (@valardragon)
   133  - [proxy] \#5078 Fix a bug, where TM does not exit when ABCI app crashes (@melekes)