**
This release contains breaking changes to the Block#Header
, specifically
NumTxs
and TotalTxs
were removed (#2521). Here's how this change affects
different modules:
State
on diskHeader
brokeAlso, blocks are significantly smaller 🔥 because we got rid of the redundant
information in Block#LastCommit
. Commit
now mainly consists of a signature
and a validator address plus a timestamp. Note we may remove the validator
address & timestamp fields in the future (see ADR-25).
Special thanks to external contributors on this release: @erikgrinaker, @PSalant726, @gchaincl, @gregzaitsev
Friendly reminder, we have a bug bounty program.
CLI/RPC/Config
/validators
response (default: 30 vals per page)BlockMeta
in ResultBlock
in favor of BlockId
for /block
/block_results
response format updated (see RPC docs for details)
{
"jsonrpc": "2.0",
"id": "",
"result": {
"height": "2109",
"txs_results": null,
"begin_block_events": null,
"end_block_events": null,
"validator_updates": null,
"consensus_param_updates": null
}
}
#event
suffix from the ID in event responses.
{"jsonrpc": "2.0", "id": 0, "result": ...}
json-client-XYZ
id=0 method=/subscribe
id=0 result=...
id=1 method=/abci_query
id=1 result=...
Apps
Go API
Validators
now requires two more args: page
and perPage
Task
(@PSalant726)GotVoteFromUnwantedRoundError
to ErrGotVoteFromUnwantedRound
(@PSalant726)errors.go
from libs/common
Blockchain Protocol
P2P Protocol
SecretConnection
non-malleable[proto] #3986 Prefix protobuf types to avoid name conflicts.
tendermint.abci.types
with the new API endpoint /tendermint.abci.types.ABCIApplication/
tendermint.rpc.grpc
with the new API endpoint /tendermint.rpc.grpc.BroadcastAPI/
tendermint.crypto.merkle
tendermint.libs.common
tendermint.types.proto3
unconditional_peer_ids
and persistent_peers_max_dial_period
config variables (see ADR-050) (@dongsam)block_size
to BlockMeta
this is reflected in /blockchain
NumTxs
to BlockMeta
and EventDataNewBlockHeader
SecretConnection
handshake with merlin--consensus.create_empty_blocks_interval
flag (@jgimeno)--consensus.create_empty_blocks_interval
flag (@jgimeno)SecretConnection
: use the transcript solely for authentication (i.e. MAC)