All Versions
157
Latest Version
Avg Release Cycle
26 days
Latest Release
-

Changelog History
Page 1

  • v0.35.8 Changes

    July 12, 2022

    ๐Ÿš€ Special thanks to external contributors on this release: @joeabbey

    ๐Ÿš€ This release fixes an unbounded heap growth issue in the implementation of the ๐Ÿ”ง priority mempool, as well as some configuration, logging, and peer dialing ๐Ÿ‘Œ improvements in the non-legacy p2p stack. It also adds a new opt-in "simple-priority" value for the p2p.queue-type setting, that should improve ๐ŸŽ gossip performance for non-legacy peer networks.

    ๐Ÿ’ฅ BREAKING CHANGES

    • CLI/RPC/Config

      • [node] #8902 Always start blocksync and avoid misconfiguration (@tychoish)

    ๐Ÿ”‹ FEATURES

    • [cli] #8675 Add command to force compact goleveldb databases (@cmwaters)

    ๐Ÿ‘Œ IMPROVEMENTS

    • [p2p] #8914 #8875 Improvements to peer dialing (backported). (@tychoish)
    • [p2p] #8820 add eviction metrics and cleanup dialing error handling (backport #8819) (@tychoish)
    • ๐ŸŒฒ [logging] #8896 Do not pre-process log results (backport #8895). (@tychoish)
    • [p2p] #8956 Simpler priority queue (backport #8929). (@tychoish)

    ๐Ÿ› BUG FIXES

    • [mempool] #8944 Fix unbounded heap growth in the priority mempool. (@creachadair)
    • [p2p] #8869 Set empty timeouts to configed values. (backport #8847). (@williambanfield)
  • v0.35.7 Changes

    June 16, 2022

    ๐Ÿ› BUG FIXES

    • ๐Ÿ”ง [p2p] #8692 scale the number of stored peers by the configured maximum connections (#8684)
    • [rpc] #8715 always close http bodies (backport #8712)
    • [p2p] #8760 accept should not abort on first error (backport #8759)

    ๐Ÿ’ฅ BREAKING CHANGES

    • P2P Protocol

      • [p2p] #8737 Introduce "inactive" peer label to avoid re-dialing incompatible peers. (@tychoish)
      • [p2p] #8737 Increase frequency of dialing attempts to reduce latency for peer acquisition. (@tychoish)
      • [p2p] #8737 Improvements to peer scoring and sorting to gossip a greater variety of peers during PEX. (@tychoish)
      • [p2p] #8737 Track incoming and outgoing peers separately to ensure more peer slots open for incoming connections. (@tychoish)
  • v0.35.6 Changes

    June 3, 2022

    ๐Ÿ”‹ FEATURES

    • [migrate] #8672 provide function for database production (backport #8614) (@tychoish)

    ๐Ÿ› BUG FIXES

    • [consensus] #8651 restructure peer catchup sleep (@tychoish)
    • [pex] #8657 align max address thresholds (@cmwaters)
    • [cmd] #8668 don't used global config for reset commands (@cmwaters)
    • [p2p] #8681 shed peers from store from other networks (backport #8678) (@tychoish)
  • v0.35.5 Changes

    May 26, 2022

    ๐Ÿ› BUG FIXES

    • [p2p] #8371 fix setting in con-tracker (backport #8370) (@tychoish)
    • [blocksync] #8496 validate block against state before persisting it to disk (@cmwaters)
    • [statesync] #8494 avoid potential race (@tychoish)
    • [keymigrate] #8467 improve filtering for legacy transaction hashes (backport #8466) (@creachadair)
    • [rpc] #8594 fix encoding of block_results responses (@creachadair)
  • v0.35.4 Changes

    April 18, 2022

    ๐Ÿš€ Special thanks to external contributors on this release: @firelizzard18

    ๐Ÿ”‹ FEATURES

    • โšก๏ธ [cli] #8300 Add a tool to update old config files to the latest version [backport #8281]. (@creachadair)

    ๐Ÿ‘Œ IMPROVEMENTS

    ๐Ÿ› BUG FIXES

    • [cli] #8294 keymigrate: ensure block hash keys are correctly translated. (@creachadair)
    • [cli] #8352 keymigrate: ensure transaction hash keys are correctly translated. (@creachadair)
  • v0.35.3 Changes

    April 8, 2022

    ๐Ÿ”‹ FEATURES

    • [cli] #8081 add a safer-to-use reset-state command. (@marbar3778)

    ๐Ÿ‘Œ IMPROVEMENTS

    • ๐Ÿ”’ [consensus] #8138 change lock handling in reactor and handleMsg for RoundState. (@williambanfield)

    ๐Ÿ› BUG FIXES

    • [cli] #8276 scmigrate: ensure target key is correctly renamed. (@creachadair)
  • v0.35.2 Changes

    February 28, 2022

    ๐Ÿš€ Special thanks to external contributors on this release: @ashcherbakov, @yihuang, @waelsy123

    ๐Ÿ‘Œ IMPROVEMENTS

    • [consensus] #7875 additional timing metrics. (@williambanfield)

    ๐Ÿ› BUG FIXES

    • โช [abci] #7990 revert buffer limit change. (@williambanfield)
    • โช [cli] #7837 fix app hash in state rollback. (@yihuang)
    • ๐Ÿš€ [cli] #7869 Update unsafe-reset-all command to match release v35. (waelsy123)
    • [light] #7640 Light Client: fix absence proof verification (@ashcherbakov)
    • โœ… [light] #7641 Light Client: fix querying against the latest height (@ashcherbakov)
    • [mempool] #7718 return duplicate tx errors more consistently. (@tychoish)
    • [rpc] #7744 fix layout of endpoint list. (@creachadair)
    • [statesync] #7886 assert app version matches. (@cmwaters)
  • v0.35.1 Changes

    January 26, 2022

    ๐Ÿš€ Special thanks to external contributors on this release: @altergui, @odeke-em, @thanethomson

    ๐Ÿ’ฅ BREAKING CHANGES

    • CLI/RPC/Config

      • [config] #7276 rpc: Add experimental config params to allow for subscription buffer size control (@thanethomson).
    • P2P Protocol

      • [p2p] #7265 Peer manager reduces peer score for each failed dial attempts for peers that have not successfully dialed. (@tychoish)
      • [p2p] #7594 always advertise self, to enable mutual address discovery. (@altergui)

    ๐Ÿ”‹ FEATURES

    • [rpc] #7270 Add header and header_by_hash RPC Client queries. (@fedekunze) (@cmwaters)

    ๐Ÿ‘Œ IMPROVEMENTS

    • โšก๏ธ [internal/protoio] #7325 Optimized MarshalDelimited by inlining the common case and using a sync.Pool in the worst case. (@odeke-em)
    • ๐ŸŽ #7338 pubsub: Performance improvements for the event query API (backport of #7319) (@creachadair)
    • ๐Ÿ“ฆ #7252 Add basic metrics to the indexer package. (@creachadair)
    • ๐ŸŽ #7338 Performance improvements for the event query API. (@creachadair)

    ๐Ÿ› BUG FIXES

    • ๐Ÿ›  #7310 pubsub: Report a non-nil error when shutting down (fixes #7306).
    • โœ… #7355 Fix incorrect tests using the PSQL sink. (@creachadair)
    • #7683 rpc: check error code for broadcast_tx_commit. (@tychoish)
  • v0.35.0 Changes

    November 4, 2021

    ๐Ÿš€ Special thanks to external contributors on this release: @JayT106, @bipulprasad, @alessio, @Yawning, @silasdavis, @cuonglm, @tanyabouman, @JoeKash, @githubsands, @jeebster, @crypto-facs, @liamsi, and @gotjoshua

    ๐Ÿ”‹ FEATURES

    • โช [cli] #7033 Add a rollback command to rollback to the previous tendermint state in the event of an incorrect app hash. (@cmwaters)
    • [config] #7174 expose ability to write config to arbitrary paths. (@tychoish)
    • ๐Ÿšš [mempool, rpc] #7065 add removetx rpc method (backport of #7047) (@tychoish).
    • ๐Ÿ”€ #6982 tendermint binary has built-in suppport for running the e2e application (with state sync support) (@cmwaters).
    • ๐Ÿ‘€ [config] Add --mode flag and config variable. See ADR-52 @dongsam
    • [rpc] #6329 Don't cap page size in unsafe mode (@gotjoshua, @cmwaters)
    • [pex] #6305 v2 pex reactor with backwards compatability. Introduces two new pex messages to accomodate for the new p2p stack. Removes the notion of seeds and crawling. All peer exchange reactors behave the same. (@cmwaters)
    • [crypto] #6376 Enable sr25519 as a validator key type
    • [mempool] #6466 Introduction of a prioritized mempool. (@alexanderbez)
      • Priority and Sender have been introduced into the ResponseCheckTx type, where the priority will determine the prioritization of the transaction when a proposer reaps transactions for a block proposal. The sender field acts as an index.
      • Operators may toggle between the legacy mempool reactor, v0, and the new prioritized reactor, v1, by setting the mempool.version configuration, where v1 is the default configuration.
      • Applications that do not specify a priority, i.e. zero, will have transactions reaped by the order in which they are received by the node.
      • Transactions are gossiped in FIFO order as they are in v0.
    • ๐Ÿ‘ [config/indexer] #6411 Introduce support for custom event indexing data sources, specifically PostgreSQL. (@JayT106)
    • [blocksync/event] #6619 Emit blocksync status event when switching consensus/blocksync (@JayT106)
    • [statesync/event] #6700 Emit statesync status start/end event (@JayT106)
    • [inspect] #6785 Add a new inspect command for introspecting the state and block store of a crashed tendermint node. (@williambanfield)

    ๐Ÿ› BUG FIXES

    • โช #7106 Revert mutex change to ABCI Clients (@tychoish).
    • ๐Ÿšš #7142 mempool: remove panic when recheck-tx was not sent to ABCI application (@williambanfield).
    • [consensus]: #7060 <!-- markdown-link-check-disable-line --> wait until peerUpdates channel is closed to close remaining peers (@williambanfield)
    • โฑ [privval] #5638 Increase read/write timeout to 5s and calculate ping interval based on it (@JoeKash)
    • [evidence] #6375 Fix bug with inconsistent LightClientAttackEvidence hashing (cmwaters)
    • [rpc] #6507 Ensure RPC client can handle URLs without ports (@JayT106)
    • ๐Ÿ”€ [statesync] #6463 Adds Reverse Sync feature to fetch historical light blocks after state sync in order to verify any evidence (@cmwaters)
    • โšก๏ธ [blocksync] #6590 Update the metrics during blocksync (@JayT106)

    ๐Ÿ’ฅ BREAKING CHANGES

    • Go API

      • [crypto/armor]: #6963 remove package which is unused, and based on deprecated fundamentals. Downstream users should maintain this library. (@tychoish)
      • [state] [store] [proxy] [rpc/core]: #6937 move packages to internal to prevent consumption of these internal APIs by external users. (@tychoish)
      • [pubsub] #6634 The Query#Matches method along with other pubsub methods, now accepts a []abci.Event instead of map[string][]string. (@alexanderbez)
      • [p2p] #6618 #6583 Move p2p.NodeInfo, p2p.NodeID and p2p.NetAddress into types to support use in external packages. (@tychoish)
      • [node] #6540 Reduce surface area of the node package by making most of the implementation details private. (@tychoish)
      • [p2p] #6547 Move the entire p2p package and all reactor implementations into internal. (@tychoish)
      • [libs/log] #6534 Remove the existing custom Tendermint logger backed by go-kit. The logging interface, Logger, remains. Tendermint still provides a default logger backed by the performant zerolog logger. (@alexanderbez)
      • [libs/time] #6495 Move types/time to libs/time to improve consistency. (@tychoish)
      • [mempool] #6529 The Context field has been removed from the TxInfo type. CheckTx now requires a Context argument. (@alexanderbez)
      • [abci/client, proxy] #5673 Async funcs return an error, Sync and Async funcs accept context.Context (@melekes)
      • [p2p] Remove unused function MakePoWTarget. (@erikgrinaker)
      • [libs/bits] #5720 Validate BitArray in FromProto, which now returns an error (@melekes)
      • [proto/p2p] Rename DefaultNodeInfo and DefaultNodeInfoOther to NodeInfo and NodeInfoOther (@erikgrinaker)
      • [proto/p2p] Rename NodeInfo.default_node_id to node_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 and tm2pb.NewValidatorUpdate.
      • Each of the above types has a ToProto and FromProto method or function which replaced this logic.
      • [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 blocksync v2
      • [rpc/client/http] #6176 Remove endpoint arg from New, NewWithTimeout and NewWithClient (@melekes)
      • [rpc/client/http] #6176 Unexpose WSEvents (@melekes)
      • [rpc/jsonrpc/client/ws_client] #6176 NewWS no longer accepts options (use NewWSWithOptions and OnReconnect funcs to configure the client) (@melekes)
      • [internal/libs] #6366 Move autofile, clist,fail,flowrate, protoio, sync, tempfile, test and timer lib packages to an internal folder
      • [libs/rand] #6364 Remove most of libs/rand in favour of standard lib's math/rand (@liamsi)
      • [mempool] #6466 The original mempool reactor has been versioned as v0 and moved to a sub-package under the root mempool package. Some core types have been kept in the mempool package such as TxCache and it's implementations, the Mempool interface itself and TxInfo. (@alexanderbez)
      • [crypto/sr25519] #6526 Do not re-execute the Ed25519-style key derivation step when doing signing and verification. The derivation is now done once and only once. This breaks sr25519.GenPrivKeyFromSecret output compatibility. (@Yawning)
      • [types] #6627 Move NodeKey to types to make the type public.
      • [config] #6627 Extend config to contain methods LoadNodeKeyID and LoadorGenNodeKeyID
      • [blocksync] #6755 Rename FastSync and Blockchain package to BlockSync (@cmwaters)
    • CLI/RPC/Config

      • [pubsub/events] #6634 The ResultEvent.Events field is now of type []abci.Event preserving event order instead of map[string][]string. (@alexanderbez)
      • [config] #5598 The test_fuzz and test_fuzz_config P2P settings have been removed. (@erikgrinaker)
      • [config] #5728 fastsync.version = "v1" is no longer supported (@melekes)
      • [cli] #5772 gen_node_key prints JSON-encoded NodeKey rather than ID and does not save it to node_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] #6462 Move PrivValidator configuration out of BaseConfig into its own section. (@tychoish)
      • [rpc] #6610 Add MaxPeerBlockHeight into /status rpc call (@JayT106)
      • [blocksync/rpc] #6620 Add TotalSyncedTime & RemainingTime to SyncInfo in /status RPC (@JayT106)
      • [rpc/grpc] #6725 Mark gRPC in the RPC layer as deprecated.
      • [blocksync/v2] #6730 Fast Sync v2 is deprecated, please use v0
      • [rpc] Add genesis_chunked method to support paginated and parallel fetching of large genesis documents.
      • [rpc/jsonrpc/server] #6785 Listen function updated to take an int argument, maxOpenConnections, instead of an entire config object. (@williambanfield)
      • [rpc] #6820 Update RPC methods to reflect changes in the p2p layer, disabling support for UnsafeDialPeers and UnsafeDialPeers when used with the new p2p layer, and changing the response format of the peer list in NetInfo for all users.
      • [cli] #6854 Remove deprecated snake case commands. (@tychoish)
      • [tools] #6498 Set OS home dir to instead of the hardcoded PATH. (@JayT106)
      • [cli/indexer] #6676 Reindex events command line tooling. (@JayT106)
    • Apps

      • [ABCI] #6408 Change the key and value fields from []byte to string in the EventAttribute type. (@alexanderbez)
      • [ABCI] #5447 Remove SetOption method from ABCI.Client interface
      • [ABCI] #5447 Reset Oneof indexes for Request and Response.
      • [ABCI] #5818 Use protoio for msg length delimitation. Migrates from int64 to uint64 length delimiters.
      • [ABCI] #3546 Add mempool_error field to ResponseCheckTx. This field will contain an error string if Tendermint encountered an error while adding a transaction to the mempool. (@williambanfield)
      • [Version] #6494 TMCoreSemVer has been renamed to TMVersion.
      • It is not required any longer to set ldflags to set version strings
      • [abci/counter] #6684 Delete counter example app
    • Data Storage

      • [store/state/evidence/light] #5771 Use an order-preserving varint key encoding (@cmwaters)
      • [mempool] #6396 Remove mempool's write ahead log (WAL), (previously unused by the tendermint code). (@tychoish)
      • [state] #6541 Move pruneBlocks from consensus/state to state/execution. (@JayT106)

    ๐Ÿ‘Œ IMPROVEMENTS

    • ๐ŸŒฒ [libs/log] Console log formatting changes as a result of #6534 and #6589. (@tychoish)
    • ๐Ÿ”ง [statesync] #6566 Allow state sync fetchers and request timeout to be configurable. (@alexanderbez)
    • [types] #6478 Add block_id to newblock event (@jeebster)
    • [crypto/ed25519] #5632 Adopt zip215 ed25519 verification. (@marbar3778)
    • [crypto/ed25519] #6526 Use curve25519-voi for ed25519 signing and verification. (@Yawning)
    • [crypto/sr25519] #6526 Use curve25519-voi for sr25519 signing and verification. (@Yawning)
    • โœ… [privval] #5603 Add --key to init, gen_validator, testnet & unsafe_reset_priv_validator for use in generating secp256k1 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 to RequestInfo allowing applications to check ABCI version when connecting to Tendermint. (@marbar3778)
    • ๐Ÿšš [blocksync/v1] #5728 Remove blocksync v1 (@melekes)
    • ๐Ÿ”€ [blocksync/v0] #5741 Relax termination conditions and increase sync timeout (@melekes)
    • [cli] #5772 gen_node_key output now contains node ID (id field) (@melekes)
    • [blocksync/v2] #5774 Send status request when new peer joins (@melekes)
    • [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 and #5792 Remove the time_iota_ms consensus parameter. Merge tmproto.ConsensusParams and abci.ConsensusParams. (@marbar3778, @valardragon)
    • [types] #5994 Reduce the use of protobuf types in core logic. (@marbar3778)
      • ConsensusParams, BlockParams, ValidatorParams, EvidenceParams, VersionParams, sm.Version and version.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.
    • [node/state] #6370 graceful shutdown in the consensus reactor (@JayT106)
    • ๐ŸŽ [crypto/merkle] #6443 Improve HashAlternatives performance (@cuonglm)
    • โšก๏ธ [crypto/merkle] #6513 Optimize HashAlternatives (@marbar3778)
    • ๐ŸŽ [p2p/pex] #6509 Improve addrBook.hash performance (@cuonglm)
    • ๐Ÿ‘ [consensus/metrics] #6549 Change block_size gauge to a histogram for better observability over time (@marbar3778)
    • [statesync] #6587 Increase chunk priority and re-request chunks that don't arrive (@cmwaters)
    • [state/privval] #6578 No GetPubKey retry beyond the proposal/voting window (@JayT106)
    • [rpc] #6615 Add TotalGasUsed to block_results response (@crypto-facs)
    • โœ… [cmd/tendermint/commands] #6623 replace $HOME/.some/test/dir with t.TempDir (@tanyabouman)
    • [statesync] \6807 Implement P2P state provider as an alternative to RPC (@cmwaters)
  • v0.35.0-rc2 Changes

    September 27, 2021

    ๐Ÿ’ฅ BREAKING CHANGES

    • Go API

      • [crypto/armor]: #6963 remove package which is unused, and based on deprecated fundamentals. Downstream users should maintain this library. (@tychoish)
      • [state] [store] [proxy] [rpc/core]: #6937 move packages to internal to prevent consumption of these internal APIs by external users. (@tychoish)

    ๐Ÿ”‹ FEATURES

    • ๐Ÿ”€ #6982 tendermint binary has built-in suppport for running the e2e application (with state sync support) (@cmwaters).