mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-07 05:46:32 +00:00
Closes #1581
This fixes the error in #1581, and also documents the purpose of this line. It ensures that if a peer tells us an address we know about, whose ID is the same as our current ID, we ignore it.
This removes the previous case where the ID's matched, but the IP's did not, which could yield a potential overwrite of the IP associated with the address later on. (This then would yield an eclipse attack)
This was not a vulnerability before though, thanks to a defensive check here 95fc7e58ee/p2p/pex/addrbook.go (L522))
9.4 KiB
9.4 KiB
v0.34
**
Special thanks to external contributors on this release:
Friendly reminder, we have a bug bounty program.
BREAKING CHANGES:
-
CLI/RPC/Config
- [evidence] #4959 Add json tags to
DuplicateVoteEvidence - [light] #4946
tendermint litecmd has been renamed totendermint light - [privval] #4582
roundin private_validator_state.json is no longer a string in json it is now a number - [rpc] #4792
/validatorsare now sorted by voting power (@melekes) - [rpc] #4937 Return an error when
pagepagination param is 0 in/validators,tx_search(@melekes) - [rpc] #5137 The json tags of
gasWanted&gasUsedinResponseCheckTx&ResponseDeliverTxhave been made snake_case. (gas_wanted&gas_used)
- [evidence] #4959 Add json tags to
-
Apps
- [abci] #4704 Add ABCI methods
ListSnapshots,LoadSnapshotChunk,OfferSnapshot, andApplySnapshotChunkfor state sync snapshots.ABCIVersionbumped to 0.17.0. - [abci] #4989
ProofwithinResponseQueryhas been renamed toProofOps - [abci]
CheckTxTypeProtobuf 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/pexreactor 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_numto consensus evidence parameters (default: 50 items).
- Add
- [evidence] #4725 Remove
PubkeyfromDuplicateVoteEvidence - [state] #4845 Include
BeginBlock#Events,EndBlock#Events,DeliverTx#Events,GasWantedandGasUsedintoLastResultsHash(@melekes) - [types] #4792 Sort validators by voting power to enable faster commit verification (@melekes)
- [evidence] #4780 Cap evidence to an absolute number (@cmwaters)
-
On-disk serialization
- [state] #4679 Migrate state module to Protobuf encoding
BlockStoreStateJSONis nowBlockStoreStateand is encoded as binary in the database
- [store] #4778 Migrate store module to Protobuf encoding
- [state] #4679 Migrate state module to Protobuf encoding
-
Light client, private validator
- [light] #4964 Migrate light module migration to Protobuf encoding
- [privval] #4985 Migrate
privvalmodule to Protobuf encoding
-
Go API
- [light] #4946 Rename
lite2pkg tolight. Removeliteimplementation. - [crypto] #4721 Remove
SimpleHashFromMap()andSimpleProofsFromMap()(@erikgrinaker) - [crypto] #4940 All keys have become
[]byteinstead of[<size>]byte. The byte method no longer returns the marshaled value but just the[]byteform of the data. - [crypto] \4988 Removal of key type multisig
- The key has been moved to the Cosmos-SDK
- [crypto] #4989 Remove
Simpleprefixes fromSimpleProof,SimpleValueOp&SimpleProofNode.merkle.Proofhas been renamed toProofOps.- Protobuf messages
Proof&ProofOphas been moved toproto/crypto/merkle SimpleHashFromByteSliceshas been renamed toHashFromByteSlicesSimpleHashFromByteSlicesIterativehas been renamed toHashFromByteSlicesIterativeSimpleProofsFromByteSliceshas been renamed toProofsFromByteSlices
- [crypto] #4941 Remove suffixes from all keys.
- ed25519: type
PrivKeyEd25519is nowPrivKey - ed25519: type
PubKeyEd25519is nowPubKey - secp256k1: type
PrivKeySecp256k1is nowPrivKey - secp256k1: type
PubKeySecp256k1is nowPubKey - sr25519: type
PrivKeySr25519is nowPrivKey - sr25519: type
PubKeySr25519is nowPubKey - multisig: type
PubKeyMultisigThresholdis nowPubKey
- ed25519: type
- [libs] #4831 Remove
Bech32pkg from Tendermint. This pkg now lives in the cosmos-sdk - [rpc/client] #4947
Validators,TxSearchpage/per_pageparams become pointers (@melekes)UnconfirmedTxslimitparam is a pointer
- [proto] #5025 All proto files have been moved to
/protodirectory.- Using the recommended the file layout from buf, see here for more info
- [state] #4679
TxResultis a Protobuf type defined inabcitypes directory - [types] #4939
SignedMsgTypehas moved to a Protobuf enum types - [types] #4962
ConsensusParams,BlockParams,EvidenceParams,ValidatorParams&HashedParamsare now Protobuf types - [types] #4852 Vote & Proposal
SignBytesis now funcVoteSignBytes&ProposalSignBytes - [types] #4798 Simplify
VerifyCommitTrustingfunc + remove extra validation (@melekes) - [types] #4845 Remove
ABCIResult - [types] #5029 Rename all values from
PartsHeadertoPartSetHeaderto have consistency - [types] #4939
TotalinParts&PartSetHeaderhas been changed from aintto auint32 - [types] #4939 Vote:
ValidatorIndex&Roundare nowint32 - [types] #4939 Proposal:
POLRound&Roundare nowint32 - [types] #4939 Block:
Roundis nowint32 - [consensus] #4582 RoundState:
Round,LockedRound&CommitRoundare nowint32 - [consensus] #4582 HeightVoteSet:
roundis nowint32 - [rpc/jsonrpc/server] #5141 Remove
WriteRPCResponseArrayHTTP(useWriteRPCResponseHTTPinstead) (@melekes)
- [light] #4946 Rename
FEATURES:
- [abci] #5031 Add
AppVersionto consensus parameters (@james-ray)- ... making it possible to update your ABCI application version via
EndBlockresponse
- ... 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
SaveAsfunc on NodeKey (@melekes) - [rpc] #4532 Support
BlockByHashquery (@fedekunze) - [rpc] #4979 Support EXISTS operator in
/tx_searchquery (@melekes) - [rpc] #5017 Add
/check_txendpoint 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
InitStateVersionfor the initial state version (@erikgrinaker) - [txindex] #4466 Allow to index an event at runtime (@favadi)
abci.EventAttributereplacesKV.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
ValidateBasicto 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:
- [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
LastCommitRoundcheck (@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)