Special thanks to external contributors on this release:
Friendly reminder: We have a bug bounty program.
-
CLI/RPC/Config
- [config] #5598 The
test_fuzz
andtest_fuzz_config
P2P settings have been removed. (@erikgrinaker) - [config] #5728
fast_sync = "v1"
is no longer supported (@melekes) - [cli] #5772
gen_node_key
prints JSON-encodedNodeKey
rather than ID and does not save it tonode_key.json
(@melekes) - [cli] #5777 use hyphen-case instead of snake_case for all cli commands and config parameters (@cmwaters)
- [rpc] #6019 standardise RPC errors and return the correct status code (@bipulprasad & @cmwaters)
- [rpc] #6168 Change default sorting to desc for
/tx_search
results (@melekes) - [cli] #6282 User must specify the node mode when using
tendermint init
(@cmwaters) - [state/indexer] #6382 reconstruct indexer, move txindex into the indexer package (@JayT106)
- [cli] #6372 Introduce
BootstrapPeers
as part of the new p2p stack. Peers to be connected on startup (@cmwaters)
- [config] #5598 The
-
Apps
- [ABCI] #5447 Remove
SetOption
method fromABCI.Client
interface - [ABCI] #5447 Reset
Oneof
indexes forRequest
andResponse
. - [ABCI] #5818 Use protoio for msg length delimitation. Migrates from int64 to uint64 length delimiters.
- [ABCI] #5447 Remove
-
P2P Protocol
-
Go API
- [abci/client, proxy] #5673
Async
funcs return an error,Sync
andAsync
funcs acceptcontext.Context
(@melekes) - [p2p] Removed unused function
MakePoWTarget
. (@erikgrinaker) - [libs/bits] #5720 Validate
BitArray
inFromProto
, which now returns an error (@melekes) - [proto/p2p] Renamed
DefaultNodeInfo
andDefaultNodeInfoOther
toNodeInfo
andNodeInfoOther
(@erikgrinaker) - [proto/p2p] Rename
NodeInfo.default_node_id
tonode_id
(@erikgrinaker) - [libs/os] Kill() and {Must,}{Read,Write}File() functions have been removed. (@alessio)
- [store] #5848 Remove block store state in favor of using the db iterators directly (@cmwaters)
- [state] #5864 Use an iterator when pruning state (@cmwaters)
- [types] #6023 Remove
tm2pb.Header
,tm2pb.BlockID
,tm2pb.PartSetHeader
andtm2pb.NewValidatorUpdate
.- Each of the above types has a
ToProto
andFromProto
method or function which replaced this logic.
- Each of the above types has a
- [light] #6054 Move
MaxRetryAttempt
option from client to provider.NewWithOptions
now sets the max retry attempts and timeouts (@cmwaters)
- [all] #6077 Change spelling from British English to American (@cmwaters)
- Rename "Subscription.Cancelled()" to "Subscription.Canceled()" in libs/pubsub
- Rename "behaviour" pkg to "behavior" and internalized it in blockchain v2
- [rpc/client/http] #6176 Remove
endpoint
arg fromNew
,NewWithTimeout
andNewWithClient
(@melekes) - [rpc/client/http] #6176 Unexpose
WSEvents
(@melekes) - [rpc/jsonrpc/client/ws_client] #6176
NewWS
no longer accepts options (useNewWSWithOptions
andOnReconnect
funcs to configure the client) (@melekes) - [libs/rand] #6364 Removed most of libs/rand in favour of standard lib's
math/rand
(@liamsi)
- [abci/client, proxy] #5673
-
Blockchain Protocol
-
Data Storage
- [store/state/evidence/light] #5771 Use an order-preserving varint key encoding (@cmwaters)
- [config] Add
--mode
flag and config variable. See ADR-52 @dongsam - [rpc] #6329 Don't cap page size in unsafe mode (@gotjoshua, @cmwaters)
- [crypto] #6376 Enable sr25519 as a validator key
- [crypto/ed25519] #5632 Adopt zip215
ed25519
verification. (@marbar3778) - [privval] #5603 Add
--key
toinit
,gen_validator
,testnet
&unsafe_reset_priv_validator
for use in generatingsecp256k1
keys. - [privval] #5725 Add gRPC support to private validator.
- [privval] #5876
tendermint show-validator
will query the remote signer if gRPC is being used (@marbar3778) - [abci/client] #5673
Async
requests return an error if queue is full (@melekes) - [mempool] #5673 Cancel
CheckTx
requests if RPC client disconnects or times out (@melekes) - [abci] #5706 Added
AbciVersion
toRequestInfo
allowing applications to check ABCI version when connecting to Tendermint. (@marbar3778) - [blockchain/v1] #5728 Remove in favor of v2 (@melekes)
- [blockchain/v0] #5741 Relax termination conditions and increase sync timeout (@melekes)
- [cli] #5772
gen_node_key
output now contains node ID (id
field) (@melekes) - [blockchain/v2] #5774 Send status request when new peer joins (@melekes)
- [consensus] #5792 Deprecates the
time_iota_ms
consensus parameter, to reduce the bug surface. The parameter is no longer used. (@valardragon) - [store] #5888 store.SaveBlock saves using batches instead of transactions for now to improve ACID properties. This is a quick fix for underlying issues around tm-db and ACID guarantees. (@githubsands)
- [consensus] #5987 Remove
time_iota_ms
from consensus params. Mergetmproto.ConsensusParams
andabci.ConsensusParams
. (@marbar3778) - [types] #5994 Reduce the use of protobuf types in core logic. (@marbar3778)
ConsensusParams
,BlockParams
,ValidatorParams
,EvidenceParams
,VersionParams
,sm.Version
andversion.Consensus
have become native types. They still utilize protobuf when being sent over the wire or written to disk.
- [rpc/client/http] #6163 Do not drop events even if the
out
channel is full (@melekes) - [node] #6059 Validate and complete genesis doc before saving to state store (@silasdavis)
- [state] #6067 Batch save state data (@githubsands & @cmwaters)
- [crypto] #6120 Implement batch verification interface for ed25519 and sr25519. (@marbar3778)
- [types] #6120 use batch verification for verifying commits signatures.
- If the key type supports the batch verification API it will try to batch verify. If the verification fails we will single verify each signature.
- [privval/file] #6185 Return error on
LoadFilePV
,LoadFilePVEmptyState
. Allows for better programmatic control of Tendermint. - [privval] #6240 Add
context.Context
to privval interface. - [rpc] #6265 set cache control in http-rpc response header (@JayT106)
- [statesync] #6378 Retry requests for snapshots and add a minimum discovery time (5s) for new snapshots.
- [types] #5523 Change json naming of
PartSetHeader
withinBlockID
fromparts
topart_set_header
(@marbar3778) - [privval] #5638 Increase read/write timeout to 5s and calculate ping interval based on it (@JoeKash)
- [blockchain/v1] #5701 Handle peers without blocks (@melekes)
- [blockchain/v1] #5711 Fix deadlock (@melekes)
- [evidence] #6375 Fix bug with inconsistent LightClientAttackEvidence hashing (cmwaters)