tendermint v0.34.0-rc2 Release Notes
Release Date: 2020-07-30 // over 3 years ago-
July 30, 2020
๐ Special thanks to external contributors on this release: @james-ray, @fedekunze, @favadi, @alessio, @joe-bowman, @cuonglm
Friendly reminder, we have a bug bounty program.
๐ฅ BREAKING CHANGES:
CLI/RPC/Config
- [evidence] #4959 Add json tags to
DuplicateVoteEvidence
- [light] #4946
tendermint lite
cmd has been renamed totendermint light
- [privval] #4582
round
in private_validator_state.json is no longer a string in json it is now a number - [rpc] #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] #5137 The json tags of
gasWanted
&gasUsed
inResponseCheckTx
&ResponseDeliverTx
have been made snake_case. (gas_wanted
&gas_used
)
- [evidence] #4959 Add json tags to
Apps
- [abci] #4704 Add ABCI methods
ListSnapshots
,LoadSnapshotChunk
,OfferSnapshot
, andApplySnapshotChunk
for state sync snapshots.ABCIVersion
bumped to 0.17.0. - [abci] #4989
Proof
withinResponseQuery
has been renamed toProofOps
- [abci]
CheckTxType
Protobuf enum names are now uppercase, to follow Protobuf style guide
- [abci] #4704 Add ABCI methods
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 Cap evidence to an absolute number (@cmwaters)
- Add
max_num
to consensus evidence parameters (default: 50 items). - [evidence] #4725 Remove
Pubkey
fromDuplicateVoteEvidence
- [state] #4845 Include
GasWanted
andGasUsed
intoLastResultsHash
(@melekes) - [types] #4792 Sort validators by voting power to enable faster commit verification (@melekes)
On-disk serialization
Light client, private validator
Go API
- [light] #4946 Rename
lite2
pkg tolight
. Removelite
implementation. - [crypto] #4721 Remove
SimpleHashFromMap()
andSimpleProofsFromMap()
(@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
- [crypto] #4989 Remove
Simple
prefixes fromSimpleProof
,SimpleValueOp
&SimpleProofNode
. merkle.Proof
has been renamed toProofOps
.- Protobuf messages
Proof
&ProofOp
has been moved toproto/crypto/merkle
SimpleHashFromByteSlices
has been renamed toHashFromByteSlices
SimpleHashFromByteSlicesIterative
has been renamed toHashFromByteSlicesIterative
SimpleProofsFromByteSlices
has been renamed toProofsFromByteSlices
- [crypto] #4941 Remove suffixes from all keys.
- ed25519: type
PrivKeyEd25519
is nowPrivKey
- ed25519: type
PubKeyEd25519
is nowPubKey
- secp256k1: type
PrivKeySecp256k1
is nowPrivKey
- secp256k1: type
PubKeySecp256k1
is nowPubKey
- sr25519: type
PrivKeySr25519
is nowPrivKey
- sr25519: type
PubKeySr25519
is nowPubKey
- multisig: type
PubKeyMultisigThreshold
is nowPubKey
- [libs] #4831 Remove
Bech32
pkg from Tendermint. This pkg now lives in the cosmos-sdk - [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
- [state] #4679
TxResult
is a Protobuf type defined inabci
types directory - [types] #4939
SignedMsgType
has moved to a Protobuf enum types - [types] #4962
ConsensusParams
,BlockParams
,EvidenceParams
,ValidatorParams
&HashedParams
are now Protobuf types - [types] #4852 Vote & Proposal
SignBytes
is now funcVoteSignBytes
&ProposalSignBytes
- [types] #4798 Simplify
VerifyCommitTrusting
func + remove extra validation (@melekes) - [types] #4845 Remove
ABCIResult
- [types] #5029 Rename all values from
PartsHeader
toPartSetHeader
to have consistency - [types] #4939
Total
inParts
&PartSetHeader
has been changed from aint
to auint32
- [types] #4939 Vote:
ValidatorIndex
&Round
are nowint32
- [types] #4939 Proposal:
POLRound
&Round
are nowint32
- [types] #4939 Block:
Round
is nowint32
- [consensus] #4582 RoundState:
Round
,LockedRound
&CommitRound
are nowint32
- [consensus] #4582 HeightVoteSet:
round
is nowint32
- [rpc/jsonrpc/server] #5141 Remove
WriteRPCResponseArrayHTTP
(useWriteRPCResponseHTTP
instead) (@melekes)
- [light] #4946 Rename
๐ 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
- [evidence] #4532 Handle evidence from light clients (@melekes)
- [evidence] #4821 Amnesia evidence can be detected, verified and committed (@cmwaters)
- [light] #4532 Submit conflicting headers, if any, to a full node & all witnesses (@melekes)
- [p2p] #4981 Expose
SaveAs
func on NodeKey (@melekes) - ๐ [rpc] #4532 Support
BlockByHash
query (@fedekunze) - ๐ [rpc] #4979 Support EXISTS operator in
/tx_search
query (@melekes) - [rpc] #5017 Add
/check_tx
endpoint to check transactions without executing them or adding them to the mempool (@melekes) - ๐ [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. - [rpc] #5108 Subscribe using the websocket for new evidence events (@cmwaters)
๐ IMPROVEMENTS:
- [consensus] #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
.
- The original WAL file will be backed up to
- [evidence] #4722 Improved evidence db (@cmwaters)
- [evidence] #4839 Reject duplicate evidence from being proposed (@cmwaters)
- ๐ [evidence] #4892 Remove redundant header from phantom validator evidence (@cmwaters)
- [light] #4935 Fetch and compare a new header with witnesses in parallel (@melekes)
- [light] #4929 compare header w/ witnesses only when doing bisection (@melekes)
- [light] #4916 validate basic for inbound validator sets and headers before further processing them (@cmwaters)
- [p2p/conn] #4795 Return err on
signChallenge()
instead of panic - [state] #4781 Export
InitStateVersion
for the initial state version (@erikgrinaker) - [txindex] #4466 Allow to index an event at runtime (@favadi)
abci.EventAttribute
replacesKV.Pair
- ๐ [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
- [types] #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)
- [consensus] #5143 Only call
privValidator.GetPubKey
once per block (@melekes)
๐ BUG FIXES:
- [blockchain/v2] Correctly set block store base in status responses (@erikgrinaker)
- [consensus] #4895 Cache the address of the validator to reduce querying a remote KMS (@joe-bowman)
- [consensus] #4970 Stricter on
LastCommitRound
check (@cuonglm) - [p2p]#5136 Fix error for peer with the same ID but different IPs (@valardragon)
- [proxy] #5078 Fix a bug, where TM does not exit when ABCI app crashes (@melekes)