**
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, @princesinha19, @Stumble
Friendly reminder, we have a bug bounty program.
CLI/RPC/Config
[rpc] #3471 Paginate /validators
response (default: 30 vals per page)
[rpc] #3188 Remove BlockMeta
in ResultBlock
in favor of BlockId
for /block
[rpc] /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
}
}
[rpc] #4141 Remove #event
suffix from the ID in event responses.
{"jsonrpc": "2.0", "id": 0, "result": ...}
[rpc] #4141 Switch to integer IDs instead of json-client-XYZ
id=0 method=/subscribe
id=0 result=...
id=1 method=/abci_query
id=1 result=...
[config] #4046 Rename tag(s) to CompositeKey & places where tag is still present it was renamed to event or events. Find how a compositeKey is constructed here
[genesis] #2565 Add consensus_params.evidence.max_age_duration
. Rename
consensus_params.evidence.max_age
to max_age_num_blocks
.
Apps
Go API
Validators
now requires two more args: page
and perPage
Task
(@PSalant726)GotVoteFromUnwantedRoundError
to ErrGotVoteFromUnwantedRound
(@PSalant726)errors.go
from libs/common
KV
out of common to its own pkgcmn.KVPair(s)
to kv.Pair(s)
sService
& BaseService
from libs/common
to libs/service
common/nil.go
to types/utils.go
& make the functions privatelibs/common
into pkg rand
libs/common
into pkg bytes
libs/common
into pkg timer
libs/common
into pkg tempfile
libs/common
into pkg os
libs/common
into pkg net
libs/common
to math
pkglibs/common
to strings
pkglibs/common
to async
pkglibs/common
to bits
pkglibs/common
to cmap
pkgRand
from all rand
pkg functionsMockBadEvidence
& MockGoodEvidence
in favor of MockEvidence
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)tendermint debug kill
and
tendermint debug dump
commands for Tendermint node debugging functionality. See --help
in both
commands for further documentation and usage.--db_backend and --db_dir
flags (@princesinha19)--genesis_hash
flag to check genesis hash upon startup/block_by_hash
endpoint, which allows to fetch a block by its hash (@princesinha19)consensus_validator_power
: track your validators powerconsensus_validator_last_signed_height
: track at which height the validator last signedconsensus_validator_missed_blocks
: total amount of missed blocks for a validator
as gauges in prometheus for validator specific metricsblock_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)LastBlockHeight
and LastBlockAppHash
in Info
(@princesinha19)proposer
to /consensus_state
response (@princesinha19)SecretConnection
: use the transcript solely for authentication (i.e. MAC)outCapacity
to eventBus#Subscribe
when subscribing using a local client