PackageTrack

Go modules · #1844

github.com/cometbft/cometbft

v1.0.1cometbft/cometbft

Release timeline

999 releases since 2018
20182020202220242026

Releases

  1. v0.38.6-0.20240216152701-1e2ce7ef6d4816 Feb 2024pre-release

    Nothing published for this version

  2. v0.38.524 Jan 2024
    Release notes

    January 24, 2024

    This release fixes a problem introduced in v0.38.3: if an application updates the value of ConsensusParam VoteExtensionsEnableHeight to the same value (actually a "noop" update) this is accepted in v0.38.2 but rejected under some conditions in v0.38.3 and v0.38.4. Even if rejecting a useless update would make sense in general, in a point release we should not reject a set of inputs to a function that was previuosly accepted (unless there is a good reason for it). The goal of this release is to accept again all "noop" updates, like v0.38.2 did.

    IMPROVEMENTS

    • [consensus] Add chain_size_bytes metric for measuring the size of the blockchain in bytes (#2093)
    Open source →
  3. v0.38.422 Jan 2024withdrawn: Version retracted: a regression was introduced
    Release notes

    January 22, 2024

    This release is aimed at those projects that have a dependency on CometBFT, release line v0.38.x, and make use of function SaveBlockStoreState in package github.com/cometbft/cometbft/store. This function changed its signature in v0.38.3. This new release reverts the signature change so that upgrading to the latest release of CometBFT on v0.38.x does not require any change in the code depending on CometBFT.

    IMPROVEMENTS

    • [e2e] Add manifest option VoteExtensionsUpdateHeight to test vote extension activation via InitChain and FinalizeBlock. Also, extend the manifest generator to produce different values of this new option (#2065)
    Open source →
  4. v0.38.318 Jan 2024withdrawn: Version retracted: a breaking change was introduced
    Release notes

    January 17, 2024

    This release addresses a high impact security issue reported in advisory (ASA-2024-001). There are other non-security bugs fixes that have been addressed since v0.38.2 was released, as well as some improvements. Please check the list below for further details.

    BUG FIXES

    • [consensus] Fix for "Validation of VoteExtensionsEnableHeight can cause chain halt" (ASA-2024-001)
    • [mempool] Fix data races in CListMempool by making atomic the types of height, txsBytes, and notifiedTxsAvailable. (#642)
    • [mempool] The calculation method of tx size returned by calling proxyapp should be consistent with that of mempool (#1687)
    • [evidence] When VerifyCommitLight & VerifyCommitLightTrusting are called as part of evidence verification, all signatures present in the evidence must be verified (#1749)
    • [crypto] SupportsBatchVerifier returns false if public key is nil instead of dereferencing nil. (#1825)
    • [blocksync] wait for poolRoutine to stop in (*Reactor).OnStop (#1879)

    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 (#1755)
    • [rpc] Support setting proxy from env to DefaultHttpClient. (#1900)
    • [rpc] Use default port for HTTP(S) URLs when there is no explicit port (#1903)
    • [crypto/merkle] faster calculation of hashes (#1921)
    Open source →
  5. v0.38.3-0.20240117033245-e65a966827e017 Jan 2024pre-release

    Nothing published for this version

  6. v0.38.3-0.20240112162522-07581a6c38fb12 Jan 2024pre-release

    Nothing published for this version

  7. v0.38.3-0.20240108012115-1e434f11faa28 Jan 2024pre-release

    Nothing published for this version

  8. v0.38.227 Nov 2023withdrawn: Version retracted: superseeded by v0.38.3 because of ASA-2024-001
    Release notes

    November 27, 2023

    This release provides the nop mempool for applications that want to build their own mempool. Using this mempool effectively disables all mempool functionality in CometBFT, including transaction dissemination and the broadcast_tx_* endpoints.

    Also fixes a small bug in the mempool for an experimental feature.

    BUG FIXES

    • [mempool] Avoid infinite wait in transaction sending routine when using experimental parameters to limiting transaction gossiping to peers (#1654)

    FEATURES

    • [mempool] Add nop mempool (#1643)

      If you want to use it, change mempool's type to nop:

      [mempool]
      
      # The type of mempool for this node to use.
      #
      # Possible types:
      # - "flood" : concurrent linked list mempool with flooding gossip protocol
      # (default)
      # - "nop"   : nop-mempool (short for no operation; the ABCI app is responsible
      # for storing, disseminating and proposing txs). "create_empty_blocks=false"
      # is not supported.
      type = "nop"
      
    Open source →
  9. v0.38.117 Nov 2023withdrawn: Version retracted: superseeded by v0.38.3 because of ASA-2024-001
    Release notes

    November 17, 2023

    This release contains, among other things, an opt-in, experimental feature to help reduce the bandwidth consumption associated with the mempool's transaction gossip.

    BUG FIXES

    • [state/indexer] Respect both height params while querying for events (#1529)

    FEATURES

    • [metrics] Add metric for mempool size in bytes SizeBytes. (#1512)

    IMPROVEMENTS

    • [mempool] Add experimental feature to limit the number of persistent peers and non-persistent peers to which the node gossip transactions. (#1558) (#1584)
    • [config] Add mempool parameters experimental_max_gossip_connections_to_persistent_peers and experimental_max_gossip_connections_to_non_persistent_peers for limiting the number of peers to which the node gossip transactions. (#1558) (#1584)
    Open source →
  10. v0.38.1-0.20231030194556-8cadcaeddc2b30 Oct 2023pre-releasewithdrawn: Version retracted: superseeded by v0.38.3 because of ASA-2024-001

    Nothing published for this version

  11. v0.38.1-0.20230928115051-ea04ac7fb41028 Sept 2023pre-releasewithdrawn: Version retracted: superseeded by v0.38.3 because of ASA-2024-001

    Nothing published for this version

  12. v0.38.012 Sept 2023withdrawn: Version retracted: superseeded by v0.38.3 because of ASA-2024-001
    Release notes

    September 12, 2023

    This release includes the second part of ABCI++, called ABCI 2.0. ABCI 2.0 introduces ABCI methods ExtendVote and VerifyVoteExtension. These new methods allow the application to add data (opaque to CometBFT), called vote extensions to precommit votes sent by validators. These vote extensions are made available to the proposer(s) of the next height. Additionally, ABCI 2.0 coalesces BeginBlock, DeliverTx, and EndBlock into one method, FinalizeBlock, whose Request* and Response* data structures contain the sum of all data previously contained in the respective Request* and Response* data structures in BeginBlock, DeliverTx, and EndBlock. See the specification for more details on ABCI 2.0.

    BREAKING CHANGES

    • [mempool] Remove priority mempool. (#260)
    • [config] Remove Version field from MempoolConfig. (#260)
    • [protobuf] Remove fields sender, priority, and mempool_error from ResponseCheckTx. (#260)
    • [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 (#558)
    • [state/kvindexer] Remove the function type from the event key stored in the database. This should be breaking only for people who forked CometBFT and interact directly with the indexers kvstore. (#774)
    • [rpc] Removed begin_block_events and end_block_events from BlockResultsResponse. The events are merged into one field called finalize_block_events. (#9427)
    • [pubsub] Added support for big integers and big floats in the pubsub event query system. Breaking changes: function Number in package libs/pubsub/query/syntax changed its return value. (#797)
    • [kvindexer] Added support for big integers and big floats in the kvindexer. Breaking changes: function Number in package libs/pubsub/query/syntax changed its return value. (#797)
    • [mempool] Application can now set ConsensusParams.Block.MaxBytes to -1 to have visibility on all transactions in the mempool at PrepareProposal time. This means that the total size of transactions sent via RequestPrepareProposal might exceed RequestPrepareProposal.max_tx_bytes. If that is the case, the application MUST make sure that the total size of transactions returned in ResponsePrepareProposal.txs does not exceed RequestPrepareProposal.max_tx_bytes, otherwise CometBFT will panic. (#980)
    • [node/state] Add Go API to bootstrap block store and state store to a height. Make sure block sync starts syncing from bootstrapped height. (#1057) (@yihuang)
    • [state/store] Added Go functions to save height at which offline state sync is performed. (#1057) (@jmalicevic)
    • [p2p] Remove UPnP functionality (#1113)
    • [node] Removed ConsensusState() accessor from Node struct - all access to consensus state should go via the reactor (#1120)
    • [state] Signature of ExtendVote changed in BlockExecutor. It now includes the block whose precommit will be extended, an the state object. (#1270)
    • [state] Move pruneBlocks from node/state to state/execution. (#6541)
    • [abci] Move app_hash parameter from Commit to FinalizeBlock (#8664)
    • [abci] Introduce FinalizeBlock which condenses BeginBlock, DeliverTx and EndBlock into a single method call (#9468)
    • [p2p] Remove unused p2p/trust package (#9625)
    • [rpc] Remove global environment and replace with constructor (#9655)
    • [node] Move DBContext and DBProvider from the node package to the config package. (#9655)
    • [inspect] Add a new inspect command for introspecting the state and block store of a crashed tendermint node. (#9655)
    • [metrics] Move state-syncing and block-syncing metrics to their respective packages. Move labels from block_syncing -> blocksync_syncing and state_syncing -> statesync_syncing (#9682)

    BUG FIXES

    • [kvindexer] Forward porting the fixes done to the kvindexer in 0.37 in PR #77 (#423)
    • [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. (#496)
    • [consensus] Rename (*PeerState).ToJSON to MarshalJSON to fix a logging data race (#524)
    • [light] Fixed an edge case where a light client would panic when attempting to query a node that (1) has started from a non-zero height and (2) does not yet have any data. The light client will now, correctly, not panic and keep the node in its list of providers in the same way it would if it queried a node starting from height zero that does not yet have data (#575)
    • [abci] Restore the snake_case naming in JSON serialization of ExecTxResult (#855).
    • [consensus] Avoid recursive call after rename to (*PeerState).MarshalJSON (#863)
    • [mempool/clist_mempool] Prevent a transaction to appear twice in the mempool (#890: @otrack)
    • [docker] Ensure Docker image uses consistent version of Go. (#9462)
    • [abci-cli] Fix broken abci-cli help command. (#9717)

    DEPRECATIONS

    • [rpc/grpc] Mark the gRPC broadcast API as deprecated. It will be superseded by a broader API as part of #81 (#650)

    FEATURES

    • [node/state] Add Go API to bootstrap block store and state store to a height (#1057) (@yihuang)
    • [proxy] Introduce NewConnSyncLocalClientCreator, which allows local ABCI clients to have the same concurrency model as remote clients (i.e. one mutex per client "connection", for each of the four ABCI "connections"). (tendermint/tendermint#9830 and #1145)
    • [proxy] Introduce NewUnsyncLocalClientCreator, which allows local ABCI clients to have the same concurrency model as remote clients (i.e. one mutex per client "connection", for each of the four ABCI "connections"). (#9830)
    • [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 (#543)
    • [jsonrpc/client] Improve the error message for client errors stemming from bad HTTP responses. (cometbft/cometbft#638)
    • [rpc] Remove response data from response failure logs in order to prevent large quantities of log data from being produced (#654)
    • [pubsub/kvindexer] Numeric query conditions and event values are represented as big floats with default precision of 125. Integers are read as "big ints" and represented with as many bits as they need when converting to floats. (#797)
    • [node] Make handshake cancelable (cometbft/cometbft#857)
    • [consensus] New metrics (counters) to track duplicate votes and block parts. (#896)
    • [mempool] Application can now set ConsensusParams.Block.MaxBytes to -1 to gain more control on the max size of transactions in a block. It also allows the application to have visibility on all transactions in the mempool at PrepareProposal time. (#980)
    • [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. (#1264)
    • [crypto/merkle] Improve HashAlternatives performance (#6443)
    • [p2p/pex] Improve addrBook.hash performance (#6509)
    • [crypto/merkle] Improve HashAlternatives performance (#6513)
    • [pubsub] Performance improvements for the event query API (#7319)
    Open source →
    Additional notes

    September 12, 2023

    This release includes the second part of ABCI++, called ABCI 2.0. ABCI 2.0 introduces ABCI methods ExtendVote and VerifyVoteExtension. These new methods allow the application to add data (opaque to CometBFT), called vote extensions to precommit votes sent by validators. These vote extensions are made available to the proposer(s) of the next height. Additionally, ABCI 2.0 coalesces BeginBlock, DeliverTx, and EndBlock into one method, FinalizeBlock, whose Request* and Response* data structures contain the sum of all data previously contained in the respective Request* and Response* data structures in BeginBlock, DeliverTx, and EndBlock. See the specification for more details on ABCI 2.0.

    BREAKING CHANGES

    • [abci] Introduce FinalizeBlock which condenses BeginBlock, DeliverTx and EndBlock into a single method call (#9468)
    • [abci] Move app_hash parameter from Commit to FinalizeBlock (#8664)
    • [config] Remove Version field from MempoolConfig. (#260)
    • [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 (#558)
    • [inspect] Add a new inspect command for introspecting the state and block store of a crashed tendermint node. (#9655)
    • [kvindexer] Added support for big integers and big floats in the kvindexer. Breaking changes: function Number in package libs/pubsub/query/syntax changed its return value. (#797)
    • [mempool] Application can now set ConsensusParams.Block.MaxBytes to -1 to have visibility on all transactions in the mempool at PrepareProposal time. This means that the total size of transactions sent via RequestPrepareProposal might exceed RequestPrepareProposal.max_tx_bytes. If that is the case, the application MUST make sure that the total size of transactions returned in ResponsePrepareProposal.txs does not exceed RequestPrepareProposal.max_tx_bytes, otherwise CometBFT will panic. (#980)
    • [mempool] Remove priority mempool. (#260)
    • [metrics] Move state-syncing and block-syncing metrics to their respective packages. Move labels from block_syncing -> blocksync_syncing and state_syncing -> statesync_syncing (#9682)
    • [node/state] Add Go API to bootstrap block store and state store to a height. Make sure block sync starts syncing from bootstrapped height. (#1057) (@yihuang)
    • [state/store] Added Go functions to save height at which offline state sync is performed. (#1057) (@jmalicevic)
    • [node] Move DBContext and DBProvider from the node package to the config package. (#9655)
    • [node] Removed ConsensusState() accessor from Node struct - all access to consensus state should go via the reactor (#1120)
    • [p2p] Remove UPnP functionality (#1113)
    • [p2p] Remove unused p2p/trust package (#9625)
    • [protobuf] Remove fields sender, priority, and mempool_error from ResponseCheckTx. (#260)
    • [pubsub] Added support for big integers and big floats in the pubsub event query system. Breaking changes: function Number in package libs/pubsub/query/syntax changed its return value. (#797)
    • [rpc] Remove global environment and replace with constructor (#9655)
    • [rpc] Removed begin_block_events and end_block_events from BlockResultsResponse. The events are merged into one field called finalize_block_events. (#9427)
    • [state/kvindexer] Remove the function type from the event key stored in the database. This should be breaking only for people who forked CometBFT and interact directly with the indexers kvstore. (#774)
    • [state] Move pruneBlocks from node/state to state/execution. (#6541)
    • [state] Signature of ExtendVote changed in BlockExecutor. It now includes the block whose precommit will be extended, an the state object. (#1270)

    BUG FIXES

    • [abci-cli] Fix broken abci-cli help command. (#9717)
    • [abci] Restore the snake_case naming in JSON serialization of ExecTxResult (#855).
    • [consensus] Avoid recursive call after rename to (*PeerState).MarshalJSON (#863)
    • [consensus] Rename (*PeerState).ToJSON to MarshalJSON to fix a logging data race (#524)
    • [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. (#496)
    • [docker] Ensure Docker image uses consistent version of Go. (#9462)
    • [kvindexer] Forward porting the fixes done to the kvindexer in 0.37 in PR #77 (#423)
    • [light] Fixed an edge case where a light client would panic when attempting to query a node that (1) has started from a non-zero height and (2) does not yet have any data. The light client will now, correctly, not panic and keep the node in its list of providers in the same way it would if it queried a node starting from height zero that does not yet have data (#575)
    • [mempool/clist_mempool] Prevent a transaction to appear twice in the mempool (#890: @otrack)

    DEPRECATIONS

    • [rpc/grpc] Mark the gRPC broadcast API as deprecated. It will be superseded by a broader API as part of #81 (#650)

    FEATURES

    • [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)
    • [node/state] Add Go API to bootstrap block store and state store to a height (#1057) (@yihuang)
    • [proxy] Introduce NewConnSyncLocalClientCreator, which allows local ABCI clients to have the same concurrency model as remote clients (i.e. one mutex per client "connection", for each of the four ABCI "connections"). (tendermint/tendermint#9830 and #1145)
    • [proxy] Introduce NewUnsyncLocalClientCreator, which allows local ABCI clients to have the same concurrency model as remote clients (i.e. one mutex per client "connection", for each of the four ABCI "connections"). (#9830)

    IMPROVEMENTS

    • [blocksync] Generate new metrics during BlockSync (#543)
    • [crypto/merkle] Improve HashAlternatives performance (#6443)
    • [crypto/merkle] Improve HashAlternatives performance (#6513)
    • [jsonrpc/client] Improve the error message for client errors stemming from bad HTTP responses. (cometbft/cometbft#638)
    • [mempool] Application can now set ConsensusParams.Block.MaxBytes to -1 to gain more control on the max size of transactions in a block. It also allows the application to have visibility on all transactions in the mempool at PrepareProposal time. (#980)
    • [node] Close evidence.db OnStop (cometbft/cometbft#1210: @chillyvee)
    • [node] Make handshake cancelable (cometbft/cometbft#857)
    • [p2p/pex] Improve addrBook.hash performance (#6509)
    • [pubsub/kvindexer] Numeric query conditions and event values are represented as big floats with default precision of 125. Integers are read as "big ints" and represented with as many bits as they need when converting to floats. (#797)
    • [pubsub] Performance improvements for the event query API (#7319)
    • [rpc] Remove response data from response failure logs in order to prevent large quantities of log data from being produced (#654)
    • [state] Make logging block_app_hash and app_hash consistent by logging them both as hex. (#1264)
    Open source →
  13. v0.38.0-rc3.0.20240122202257-c8dbd06b9f2122 Jan 2024pre-release

    Nothing published for this version

  14. v0.38.0-rc3.0.20240112162522-07581a6c38fb12 Jan 2024pre-release

    Nothing published for this version

  15. v0.38.0-rc3.0.20230821103434-804b8afe6e7821 Aug 2023pre-release

    Nothing published for this version

  16. v0.38.0-rc3.0.20230818140436-3612b344e79318 Aug 2023pre-release

    Nothing published for this version

  17. v0.38.0-rc3.0.20230801143529-d4e59b1def9e1 Aug 2023pre-release

    Nothing published for this version

  18. v0.38.0-rc3.0.20230724200504-14ec61c5eaa024 Jul 2023pre-release

    Nothing published for this version

  19. v0.38.0-rc314 Jul 2023pre-release

    Nothing published for this version

  20. v0.38.0-rc226 Jun 2023pre-release

    Nothing published for this version

  21. v0.38.0-rc1.0.20230626131955-1e3142a068ee26 Jun 2023pre-release

    Nothing published for this version

  22. v0.38.0-rc1.0.20230622091836-aca3a06a091522 Jun 2023pre-release

    Nothing published for this version

  23. v0.38.0-rc1.0.20230619125143-309de2e4565919 Jun 2023pre-release

    Nothing published for this version

  24. v0.38.0-rc1.0.20230616160951-13dc04fb4de816 Jun 2023pre-release

    Nothing published for this version

  25. v0.38.0-rc15 Jun 2023pre-release

    Nothing published for this version

  26. v0.38.0-alpha.2.0.20230601213331-4c9960fea1c01 Jun 2023pre-release

    Nothing published for this version

  27. v0.38.0-alpha.2.0.20230531143400-9af6e1fa0eed31 May 2023pre-release

    Nothing published for this version

  28. v0.38.0-alpha.2.0.20230531132727-7c418bf72b7031 May 2023pre-release

    Nothing published for this version

  29. v0.38.0-alpha.2.0.20230531120929-39d8a80d3f6331 May 2023pre-release

    Nothing published for this version

  30. v0.38.0-alpha.2.0.20230531120548-4468ff781e1331 May 2023pre-release

    Nothing published for this version

  31. v0.38.0-alpha.2.0.20230519094251-e9abb116e29b19 May 2023pre-release

    Nothing published for this version

  32. v0.38.0-alpha.217 May 2023pre-release

    Nothing published for this version

  33. v0.38.0-alpha.1.0.20230517082523-d067be95414517 May 2023pre-release

    Nothing published for this version

  34. v0.38.0-alpha.1.0.20230426124802-2a0c1e6c6acf26 Apr 2023pre-release

    Nothing published for this version

  35. v0.38.0-alpha.1.0.20230411165141-62d3e1ec5e3411 Apr 2023pre-release

    Nothing published for this version

  36. v0.38.0-alpha.129 Mar 2023pre-release

    Nothing published for this version

  37. v0.37.19-0.20260706042317-fd9bfe0556546 Jul 2026pre-release

    Nothing published for this version

  38. v0.37.19-0.20260525053151-8ea0002c695425 May 2026pre-release

    Nothing published for this version

  39. v0.37.1823 Jan 2026

    Nothing published for this version

  40. v0.37.1712 Dec 2025

    Nothing published for this version

  41. v0.37.1614 Oct 2025

    Nothing published for this version

  42. v0.37.153 Feb 2025

    Nothing published for this version

  43. v0.37.1420 Dec 2024

    Nothing published for this version

  44. v0.37.14-0.20241206064752-416bb46a4fb26 Dec 2024pre-release

    Nothing published for this version

  45. v0.37.1331 Oct 2024

    Nothing published for this version

  46. v0.37.1225 Oct 2024

    Nothing published for this version

  47. v0.37.12-0.20240906225724-02bccfb39dcf6 Sept 2024pre-release

    Nothing published for this version

  48. v0.37.113 Sept 2024

    Nothing published for this version

  49. v0.37.11-0.20240903101500-3937e00a339e3 Sept 2024pre-release

    Nothing published for this version

  50. v0.37.1012 Aug 2024

    Nothing published for this version

  51. v0.37.915 Jul 2024

    Nothing published for this version

  52. v0.37.9-0.20240703112902-3f438815c7973 Jul 2024pre-release

    Nothing published for this version

  53. v0.37.81 Jul 2024

    Nothing published for this version

  54. v0.37.727 Jun 2024

    Nothing published for this version

  55. v0.37.7-0.20240627104135-07866e11139127 Jun 2024pre-release

    Nothing published for this version

  56. v0.37.7-0.20240515092623-8a0f4814d1dc15 May 2024pre-release

    Nothing published for this version

  57. v0.37.7-0.20240508173623-b934738b22898 May 2024pre-release

    Nothing published for this version

  58. v0.37.627 Apr 2024

    Nothing published for this version

  59. v0.37.513 Mar 2024

    Nothing published for this version

  60. v0.37.5-0.20240229205854-143787912ab529 Feb 2024pre-release

    Nothing published for this version