NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #2590 by repository stars
Last release 5 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 1.4 years
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
196 releases · first in 2016
Nothing published for this version
Nothing published for this version
[p2p] Remove auth_enc config option, peer connections are always auth encrypted. Technically a breaking change but seems no one was using it and argua…
June 4th, 2018
BREAKING:
auth_enc config option, peer connections are always auth
encrypted. Technically a breaking change but seems no one was using it and
arguably a bug fix :)BUG FIXES
skip_timeout_commit=true and
create_empty_blocks=falseOne column per quarter.
[libs/pubsub] TagMap#Get returns a string value
May 31st, 2018
BREAKING:
FEATURES
IMPROVEMENTS:
Nothing published for this version
Nothing published for this version
[blockchain] Fix fast-sync deadlock during high peer turnover
May 29th, 2018
BUG FIXES
BUG FIX:
Nothing published for this version
Nothing published for this version
[version] Breaking changes to Go APIs will not be reflected in breaking version change, but will be included in changelog.
May 20th, 2018
BREAKING CHANGES
FEATURES
/tx_search takes page (starts at 1) and per_page (max 100, default 30) args to paginate results/unconfirmed_txs takes limit (max 100, default 30) arg to limit the outputmempool.size and mempool.cache_size optionsIMPROVEMENTS
BUG FIXES
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[rpc] New /consensus_state returns just the votes seen at the current height
FEATURES
/consensus_state returns just the votes seen at the current heightIMPROVEMENTS
/dump_consensus_state/dump_consensus_stateBUG FIXES
tendermint initNothing published for this version
Nothing published for this version
[p2p] Allow peers with different Minor versions to connect
FEATURES:
/net_info includes n_peersIMPROVEMENTS:
BUG FIXES:
Nothing published for this version
Nothing published for this version
Note this release includes some small breaking changes in the RPC and one in the config that are really bug fixes. v0.19.1 will work with existing cha…
Note this release includes some small breaking changes in the RPC and one in the config that are really bug fixes. v0.19.1 will work with existing chains, and make Tendermint easier to use and debug. With <3
BREAKING (MINOR)
wal_light setting. If you really needed this, let us knowFEATURES:
gen_node_key commandBUG FIXES
Some of these are breaking in the RPC response, but they're really bugs!
/dump_consensus_state/statusprove in ABCIQuery[cmd] improved testnet command; now it can fill in persistent_peers for you in the config file and much more (see tendermint testnet --help for detail
BREAKING:
testnet command; now it can fill in persistent_peers for you in the config file and much more (see tendermint testnet --help for details)show_node_id now returns an error if there is no node key/status endpoint (see https://godoc.org/github.com/tendermint/tendermint/rpc/core#Status)Upgrade from go-wire to go-amino. This is a sweeping change that breaks everything that is serialized to disk or over the network.
See github.com/tendermint/go-amino for details on the new format.
See scripts/wire2amino.go for a tool to upgrade
genesis/priv_validator/node_key JSON files.
FEATURES
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[types] Merkle tree uses different encoding for varints (see tmlibs v0.8.0)
BREAKING:
FEATURES:
/status/tx and /tx_search responses now include the transaction hash/net_infoIMPROVEMENTS:
persistent_peers)/tx_search results are sorted by heightBUG FIXES:
Nothing published for this version
Nothing published for this version
[types] Actually support app_state in genesis as AppStateJSON
BUG FIXES:
app_state in genesis as AppStateJSON[all] renamed dummy (persistent_dummy) to kvstore (persistent_kvstore) (name "dummy" is deprecated and will not work in the next breaking release)
BREAKING:
IMPROVEMENTS:
dummy (persistent_dummy) to kvstore (persistent_kvstore) (name "dummy" is deprecated and will not work in the next breaking release)app_options field is deprecated. please rename it to app_state in your genesis file(s). app_options will not work in the next breaking releaseauth_enc is true, all dialed peers must have a node ID in their addressFEATURES:
auth_enc flag to enable/disable encryption--p2p.private_peer_ids flag and PrivatePeerIDs config variable (see config for description)/health endpoint, which returns empty result for nowBUG FIXES:
[config] use $TMHOME/config for all config and json files
BREAKING CHANGES:
--p2p.seeds is now --p2p.persistent_peers (persistent peers to which TM will always connect to)--p2p.seeds only used for getting addresses (if addrbook is empty; not persistent)FEATURES:
/dial_peers&persistent=_ unsafe endpoint$THMHOME/config/node_key.jsonID@IP:PORT--p2p.seed_mode)IMPROVEMENT:
pex and connBUG FIX:
[p2p] enable the Peer Exchange reactor by default
BREAKING CHANGES:
FEATURES:
/block_results?height=X returns the DeliverTx results for a given height.IMPROVEMENTS:
BUG FIXES:
tcp://tendermint init to ignore files that are there and generate files that aren't.consensus/wal: removed separator
BREAKING CHANGES:
FEATURES:
tendermint lite command (and lite/proxy pkg) for running a light-client RPC proxy.
NOTE it is currently insecure and its APIs are not yet covered by semverIMPROVEMENTS:
BUG FIXES:
abci: update to v0.8 using gogo/protobuf; includes tx tags, vote info in RequestBeginBlock, data.Bytes everywhere, use int64, etc.
BREAKING CHANGES:
int64 everywhere/subscribe and /unsubscribe take query arg instead of event/status returns the LatestBlockTime in human readable form instead of in nanosecondsFEATURES:
/unsubscribe_all WebSocket RPC endpoint/tx_search endpoint for filtering transactions by more complex queriesIMPROVEMENTS:
tmlibs/pubsubBUG FIXES:
upgrade tmlibs dependency to enable Windows builds for Tendermint
BUG FIXES:
rpc/client: websocket ResultsCh and ErrorsCh unified in ResponsesCh.
BREAKING CHANGES:
proveFEATURES:
Verifiers pkg contains the tendermint light-client library (name subject to change)!/genesis includes the app_options ./abci_query takes an additional height parameter to support historical queries.trusted (set false to get a proof) and height to query a historical height.IMPROVEMENTS:
/genesis result includes app_optionsRPCError satisfies the error interface.BUG FIXES:
blockchain/reactor: respondWithNoResponseMessage for missing height
IMPROVEMENTS:
BUG FIXES:
/dump_consensus_state to have normal json output (NOTE: technically breaking, but worth a bug fix label)genesis file: validator amount is now power
BREAKING:
genesis file: validator amount is now power
abci: Info, BeginBlock, InitChain all take structs
rpc: various changes to match JSONRPC spec (http://www.jsonrpc.org/specification), including breaking ones:
rpctypes.RPCResponse uses new RPCError type instead of string.cmd: if there is no genesis, exit immediately instead of waiting around for one to show.
types: Signer.Sign returns an error.
state: every validator set change is persisted to disk, which required some changes to the State structure.
p2p: new p2p.Peer interface used for all reactor methods (instead of *p2p.Peer struct).
FEATURES:
/validators?height=X allows querying of validators at previous heights.height param empty for /block, /validators, and /commit will return the value for the latest height.IMPROVEMENTS:
.rst, and cleaned up for presentation on tendermint.readthedocs.ioBUG FIXES:
docs: Added Slate docs to each rpc function (see rpc/core)
IMPROVEMENTS:
BUG FIXES:
control over empty block production:
FEATURES:
--consensus.create_empty_blocks; when set to false, blocks are only created when there are txs or when the AppHash changes.consensus.create_empty_blocks_interval; an empty block is created after this many seconds.create_empty_blocks = true and create_empty_blocks_interval = 0, so blocks are being created all the time (as in all previous versions of tendermint). The number of empty blocks can be reduced by increasing create_empty_blocks_interval or by setting create_empty_blocks = false.TxsAvailable() method added to Mempool that returns a channel which fires when txs are available.syncing field to response returned by /status. Is true while in fast-sync mode.IMPROVEMENTS:
BUG FIXES:
Enable lower latency block commits by adding consensus reactor sleep durations and p2p flush throttle timeout to the config
FEATURES:
IMPROVEMENTS:
Use --trace to get stack traces for logged errors
FEATURES:
--trace to get stack traces for logged errorsIMPROVEMENTS:
megacheck tooltcp://. http:// is also accepted as an alias for tcp://BUG FIXES:
Includes major updates to configuration, logging, and json serialization. Also includes the Grand Repo-Merge of 2017.
Includes major updates to configuration, logging, and json serialization. Also includes the Grand Repo-Merge of 2017.
BREAKING CHANGES:
Config and Flags:
config map is replaced with a Config struct,
containing substructs: BaseConfig, P2PConfig, MempoolConfig, ConsensusConfig, RPCConfig--seeds is now --p2p.seeds--node_laddr is now --p2p.laddr--pex is now --p2p.pex--skip_upnp is now --p2p.skip_upnp--rpc_laddr is now --rpc.laddr--grpc_laddr is now --rpc.grpc_laddrconfig.toml, for instance:[p2p]
laddr="tcp://1.2.3.4:46656"
[consensus]
timeout_propose=1000
DefaultConfig() / TestConfig() functions to handle defaults, and remove config/tendermint and config/tendermint_testLogger
log15 logger with a simple interface, and provide a new implementation using go-kit.
See our new logging library and blog post for more detailswarn and notice are removed (you may need to change them in your config.toml!)JSON serialization:
[TypeByte, Xxx] with {"type": "some-type", "data": Xxx} in RPC and all .json files by using go-wire/data. For instance, a public key is now:"pub_key": {
"type": "ed25519",
"data": "83DDF8775937A4A12A2704269E2729FCFCD491B933C4B0A7FFE37FE41D7760D0"
}
[TypeByte, {"jsonrpc": "2.0", ... }] is now just {"jsonrpc": "2.0", ... }[]byte to data.Bytes in all serialized types (for hex encoding)ValidatorSet fieldsEventDataInner for serializing eventsOther:
appBlockHeight == 0Accum field when computing the validator hash. This makes the ValidatorSetHash unique for a given validator set, rather than changing with every block (as the Accum changes)/dial_seeds, and all calls prefixed with unsafe. Use the --rpc.unsafe flag to enable.FEATURES:
state:info,*:error, which means the state package logs at info level, and everything else logs at error leveladdress and pub_key fields in priv_validator.json and overwrite them with the values derrived from the priv_keyIMPROVEMENTS:
tendermint/go-p2p -> tendermint/tendermint/p2p and tendermint/go-rpc -> tendermint/tendermint/rpc/libgo-common -> tmlibs/commongo-data -> go-wire/datago- libs, except go-crypto and go-wire, are merged under tmlibs/blockchain_info call to return a maximum of 20 blocks.Wrap() and .Unwrap() instead of eg. PubKeyS for go-crypto typesjson.MarshalIndent)cmd/tendermint/commands and do not read config from file for testsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix bug in ResetPrivValidator where we were using the global config and log (causing external consumers, eg. basecoin, to fail).
BUG FIXES:
ResetPrivValidator where we were using the global config and log (causing external consumers, eg. basecoin, to fail).Transaction indexing - txs are indexed by their hash using a simple key-value store; easily extended to more advanced indexers
FEATURES:
/tx?hash=X endpoint to query for transactions and their DeliverTx result by hash. Optionally returns a proof of the tx's inclusion in the blocktendermint testnet command initializes files for a testnetIMPROVEMENTS:
/broadcast_tx_XXX also returns the Hash (can be used to query for the tx)/broadcast_tx_commit also returns the height the block was committed in--seeds, under seeds in the config, or in /dial_seeds are now persistent, and will be reconnected to if the connection breaksBUG FIXES:
Update ABCI to v0.4.0, where Query is now Query(RequestQuery) ResponseQuery, enabling precise proofs at particular heights:
BREAKING CHANGES:
Query(RequestQuery) ResponseQuery, enabling precise proofs at particular heights:message RequestQuery{
bytes data = 1;
string path = 2;
uint64 height = 3;
bool prove = 4;
}
message ResponseQuery{
CodeType code = 1;
int64 index = 2;
bytes key = 3;
bytes value = 4;
bytes proof = 5;
uint64 height = 6;
string log = 7;
}
BlockMeta data type unifies its Hash and PartSetHash under a BlockID:type BlockMeta struct {
BlockID BlockID `json:"block_id"` // the block hash and partsethash
Header *Header `json:"header"` // The block's Header
}
ValidatorSet.Proposer is exposed as a field and persisted with the State. Use GetProposer() to initialize or update after validator-set changes.
tendermint gen_validator command output is now pure JSON
FEATURES:
/commit?height=X returns header and commit for block at height XIMPROVEMENTS:
Node is now a BaseServiceCONTRIBUTING.md, Github ISSUE_TEMPLATE, CHANGELOG.mdBUG FIXES:
/dial_seeds with invalid addressesaccumComparableValidatorSet.Proposer across restarts by persisting it in the StateNew data type BlockID to represent blocks:
BREAKING CHANGES:
BlockID to represent blocks:type BlockID struct {
Hash []byte `json:"hash"`
PartsHeader PartSetHeader `json:"parts"`
}
Vote data type now includes validator address and index:type Vote struct {
ValidatorAddress []byte `json:"validator_address"`
ValidatorIndex int `json:"validator_index"`
Height int `json:"height"`
Round int `json:"round"`
Type byte `json:"type"`
BlockID BlockID `json:"block_id"` // zero if vote is nil.
Signature crypto.Signature `json:"signature"`
}
FEATURES:
Maj23Msg, for peers to alert others they've seen a Maj23,
in order to track and handle conflicting votes intelligently to prevent Byzantine faults from causing halts:type VoteSetMaj23Message struct {
Height int
Round int
Type byte
BlockID types.BlockID
}
IMPROVEMENTS:
BUG FIXES:
Maj23Msg.Enable the Peer Exchange reactor with the --pex flag for more resilient gossip network (feature still in development, beware dragons)
FEATURES:
--pex flag for more resilient gossip network (feature still in development, beware dragons)IMPROVEMENTS:
/dial_seeds to enable manual network configurationFix deadlock in mempool for synchronous apps
IMPROVEMENTS:
BUG FIXES:
Set mustConnect=false so tendermint will retry connecting to the app
BUG FIXES:
New TMSP connection for Query/Info
FEATURES:
tmsp_querytmsp_infoIMPROVEMENTS:
BUG FIXES:
priv_validator.json for recoveryValidation types now called Commit
BREAKING CHANGES:
FEATURES:
cswal_light; logs only the validator's own votes/broadcast_tx_commit, returns when tx is included in a block, else an error/unsafe_flush_mempool, empties the mempoolIMPROVEMENTS:
BUG FIXES:
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →