Skip to main content
Release
v0.38.18

IMPROVEMENTS

  • Adds metrics that emit precommit data; precommit quorum delay from proposal, and precommit vote count and stake weight within timeout commit period.
Release
v0.38.17

BUG FIXES

  • (blocksync) Ban peer if it reports height lower than what was previously reported
  • (types) Check that Part.Index equals Part.Proof.Index

DEPENDENCIES

  • (go/runtime) Bump minimum Go version to 1.22.11
Release
v0.38.16

CHANGES

  • fixes a bug that caused a node produce errors caused by the sending of next PEX requests too soon.
  • Adds a proper description of ExtendedVoteInfo and VoteInfo in the spec.

BUG FIXES

  • (mocks) Mockery v2.49.0 broke the mocks. We had to add a .mockery.yaml to
Release
v0.38.14

BUG FIXES

  • (consensus) Do not panic if the validator index of a Vote message is out

DEPENDENCIES

  • Bump cometbft-db version to v0.15.0
  • (go/runtime) Bump Go version to 1.23

IMPROVEMENTS

  • (p2p) fix exponential backoff logic to increase reconnect retries close to 24 hours
Release
v0.38.13

BUG FIXES

  • (metrics) Call unused rejected_txs metric in mempool
  • (state/indexer) Fix the tx_search results not returning all results by changing the logic in the indexer to copy the key and values instead of reusing an iterator. This issue only arises when upgrading to cometbft-db v0.13 or later.

DEPENDENCIES

  • (go/runtime) Bump Go version to 1.22
  • Bump cometbft-db version to v0.14.1

FEATURES

  • #4294 (crypto) use decred secp256k1 directly ()

IMPROVEMENTS

  • (metrics) Add evicted_txs metric to mempool
  • (log) Change “mempool is full” log to debug level
Release
v0.38.12

BUG FIXES

  • (light) Cross-check proposer priorities in retrieved validator sets
  • (privval) Ignore duplicate privval listen when already connected (#3828

DEPENDENCIES

  • (crypto/secp256k1) Adjust to breaking interface changes in
  • pinned mockery’s version to v2.49.2 to prevent potential

IMPROVEMENTS

  • (types) Check that proposer is one of the validators in ValidateBasic
  • (e2e) Add log_level option to manifest file
  • (e2e) Add log_format option to manifest file
Release
v0.38.11

BUG FIXES

  • (types) Only check IFF vote is a non-nil Precommit if extensionsEnabled

IMPROVEMENTS

  • (indexer) Fixed ineffective select break statements; they now
Release
v0.38.10

BUG FIXES

  • (p2p) Node respects configured max_num_outbound_peers limit when dialing
  • (rpc) Fix an issue where a legacy ABCI response, created on v0.37 or before, is not returned properly in v0.38 and up
  • (blocksync) Do not stay in blocksync if the node’s validator voting power

IMPROVEMENTS

  • (p2p/conn) Update send monitor, used for sending rate limiting, once per batch of packets sent
  • (libs/pubsub) Allow dash (-) in event tags
  • (p2p/conn) Remove the usage of a synchronous pool of buffers in secret connection, storing instead the buffer in the connection struct. This reduces the synchronization primitive usage, speeding up the code.
Release
v0.38.9

BREAKING CHANGES

  • (mempool) Revert adding the method PreUpdate() to the Mempool interface, recently introduced

BUG FIXES

  • (rpc) Fix nil pointer error in /tx and /tx_search when block is
Release
v0.38.8

BREAKING CHANGES

  • (mempool) Add to the Mempool interface a new method PreUpdate(). This method should be

BUG FIXES

  • (blockstore) Added peer banning in blockstore
  • (blockstore) Send correct error message when vote extensions do not align with received packet
  • [mempool] Fix data race when rechecking with async ABCI client
  • (consensus) Fix a race condition in the consensus timeout ticker. Race is caused by two timeouts being scheduled at the same time.
  • (types) Do not batch verify a commit if the validator set keys have different

IMPROVEMENTS

  • (config) Added recheck_timeout mempool parameter to set how much time to wait for recheck
  • (rpc) Add a configurable maximum batch size for RPC requests.
  • (event-bus) Remove the debug logs in PublishEventTx, which were noticed production slowdowns.
  • (state/execution) Cache the block hash computation inside of the Block Type, so we only compute it once.
  • (consensus/state) Remove a redundant VerifyBlock call in FinalizeCommit
  • (p2p/channel) Speedup ProtoIO writer creation time, and thereby speedup channel writing by 5%.
  • (p2p/conn) Minor speedup (3%) to connection.WritePacketMsgTo, by removing MinInt calls.
  • (internal/bits) 10x speedup creating initialized bitArrays, which speedsup extendedCommit.BitArray(). This is used in consensus vote gossip.
  • (blockstore) Remove a redundant Header.ValidateBasic call in LoadBlockMeta, 75% reducing this time.
  • (p2p/conn) Speedup connection.WritePacketMsgTo, by reusing internal buffers rather than re-allocating.
  • [blockstore] Use LRU caches in blockstore, significiantly improving consensus gossip routine performance
  • [consensus] Improve performance of consensus metrics by lowering string operations
  • [protoio] Remove one allocation and new object call from ReadMsg,
  • (mempool) Before updating the mempool, consider it as full if rechecking is still in progress.
Release
v0.38.7

BUG FIXES

  • [mempool] Panic when a CheckTx request to the app returns an error
  • [bits] prevent BitArray.UnmarshalJSON from crashing on 0 bits

FEATURES

  • [node] Add BootstrapStateWithGenProvider to boostrap state using a custom

IMPROVEMENTS

  • (state/indexer) Lower the heap allocation of transaction searches
  • (internal/bits) 10x speedup and remove heap overhead of bitArray.PickRandom (used extensively in consensus gossip)
  • (libs/json) Lower the memory overhead of JSON encoding by using JSON encoders internally
Release
v0.38.6

BUG FIXES

  • (privval) Retry accepting a connection (#2047)
  • (state) Fix rollback to a specific height

FEATURES

  • (e2e) Add block_max_bytes option to the manifest file.

IMPROVEMENTS

  • (blocksync) Avoid double-calling types.BlockFromProto for performance
  • (e2e) Add manifest option load_max_txs to limit the number of transactions generated by the
  • #2434 (jsonrpc) enable HTTP basic auth in websocket client ()
  • (blocksync) make the max number of downloaded blocks dynamic.
  • (blocksync) Request a block from peer B if we are approaching pool’s height
  • (blocksync) Request the block N from peer B immediately after getting
  • (blocksync) Sort peers by download rate (the fastest peer is picked first)
Release
v0.38.5

IMPROVEMENTS

  • (consensus) Add chain_size_bytes metric for measuring the size of the blockchain in bytes
Release
v0.38.4

IMPROVEMENTS

  • (e2e) Add manifest option VoteExtensionsUpdateHeight to test
Release
v0.38.3

BUG FIXES

  • (consensus) Fix for “Validation of VoteExtensionsEnableHeight can cause chain halt”
  • (mempool) Fix data races in CListMempool by making atomic the types of height, txsBytes, and
  • (mempool) The calculation method of tx size returned by calling proxyapp should be consistent with that of mempool
  • (evidence) When VerifyCommitLight & VerifyCommitLightTrusting are called as part
  • (crypto) SupportsBatchVerifier returns false
  • (blocksync) wait for poolRoutine to stop in (*Reactor).OnStop

IMPROVEMENTS

  • (types) Validate Validator#Address in ValidateBasic (#1715)
  • (abci) Increase ABCI socket message size limit to 2GB (#1730: @troykessler)
  • (state) Save the state using a single DB batch (#1735)
  • (store) Save block using a single DB batch if block is less than 640kB, otherwise each block part is saved individually
  • (rpc) Support setting proxy from env to DefaultHttpClient.
  • (rpc) Use default port for HTTP(S) URLs when there is no explicit port (#1903)
  • #1921 (crypto/merkle) faster calculation of hashes ()
Release
v0.38.2

BUG FIXES

  • (mempool) Avoid infinite wait in transaction sending routine when

FEATURES

  • (mempool) Add nop mempool (#1643)
Release
v0.38.1

BUG FIXES

  • (state/indexer) Respect both height params while querying for events

FEATURES

  • (metrics) Add metric for mempool size in bytes SizeBytes.

IMPROVEMENTS

  • (mempool) Add experimental feature to limit the number of persistent peers and non-persistent
  • (config) Add mempool parameters experimental_max_gossip_connections_to_persistent_peers and
Release
v0.38.0

BREAKING CHANGES

  • (mempool) Remove priority mempool.
  • (config) Remove Version field from MempoolConfig.
  • (protobuf) Remove fields sender, priority, and mempool_error from
  • (crypto/merkle) Do not allow verification of Merkle Proofs against empty trees (nil root). Proof.ComputeRootHash now panics when it encounters an error, but Proof.Verify does not panic
  • (state/kvindexer) Remove the function type from the event key stored in the database. This should be breaking only
  • (rpc) Removed begin_block_events and end_block_events from BlockResultsResponse.
  • (pubsub) Added support for big integers and big floats in the pubsub event query system.
  • (kvindexer) Added support for big integers and big floats in the kvindexer.
  • (mempool) Application can now set ConsensusParams.Block.MaxBytes to -1
  • (node/state) Add Go API to bootstrap block store and state store to a height. Make sure block sync starts syncing from bootstrapped height.
  • (state/store) Added Go functions to save height at which offline state sync is performed.
  • (p2p) Remove UPnP functionality
  • (node) Removed ConsensusState() accessor from Node
  • (state) Signature of ExtendVote changed in BlockExecutor.
  • (state) Move pruneBlocks from node/state to state/execution.
  • (abci) Move app_hash parameter from Commit to FinalizeBlock
  • (abci) Introduce FinalizeBlock which condenses BeginBlock, DeliverTx
  • (p2p) Remove unused p2p/trust package
  • (rpc) Remove global environment and replace with constructor
  • (node) Move DBContext and DBProvider from the node package to the config
  • (inspect) Add a new inspect command for introspecting
  • (metrics) Move state-syncing and block-syncing metrics to

BUG FIXES

  • (kvindexer) Forward porting the fixes done to the kvindexer in 0.37 in PR #77
  • (consensus) Unexpected error conditions in ApplyBlock are non-recoverable, so ignoring the error and carrying on is a bug. We replaced a return that disregarded the error by a panic.
  • (consensus) Rename (*PeerState).ToJSON to MarshalJSON to fix a logging data race
  • (light) Fixed an edge case where a light client would panic when attempting
  • and* keep the node in its list of providers in the same way it would if
  • (abci) Restore the snake_case naming in JSON serialization of
  • (consensus) Avoid recursive call after rename to (*PeerState).MarshalJSON
  • (mempool/clist_mempool) Prevent a transaction to appear twice in the mempool
  • (docker) Ensure Docker image uses consistent version of Go.
  • (abci-cli) Fix broken abci-cli help command.

DEPRECATIONS

  • (rpc/grpc) Mark the gRPC broadcast API as deprecated.

FEATURES

  • (node/state) Add Go API to bootstrap block store and state store to a height
  • (proxy) Introduce NewConnSyncLocalClientCreator, which allows local ABCI
  • (proxy) Introduce NewUnsyncLocalClientCreator, which allows local ABCI
  • (abci) New ABCI methods VerifyVoteExtension and ExtendVote allow validators to validate the vote extension data attached to a pre-commit message and allow applications to let their validators do more than just validate within consensus (#9836)

IMPROVEMENTS

  • (blocksync) Generate new metrics during BlockSync
  • (jsonrpc/client) Improve the error message for client errors stemming from
  • (rpc) Remove response data from response failure logs in order
  • (pubsub/kvindexer) Numeric query conditions and event values are represented as big floats with default precision of 125.
  • (node) Make handshake cancelable (cometbft/cometbft#857)
  • (consensus) New metrics (counters) to track duplicate votes and block parts.
  • (mempool) Application can now set ConsensusParams.Block.MaxBytes to -1
  • (node) Close evidence.db OnStop (cometbft/cometbft#1210: @chillyvee)
  • (state) Make logging block_app_hash and app_hash consistent by logging them both as hex.
  • (crypto/merkle) Improve HashAlternatives performance
  • (p2p/pex) Improve addrBook.hash performance
  • (crypto/merkle) Improve HashAlternatives performance
  • (pubsub) Performance improvements for the event query API