github.com/badrootd/nibiru-cometbft@v0.37.5-0.20240307173500-2a75559eee9b/CHANGELOG.md (about)

     1  # CHANGELOG
     2  
     3  ## v0.37.4
     4  
     5  *November 27, 2023*
     6  
     7  This release provides the **nop** mempool for applications that want to build
     8  their own mempool. Using this mempool effectively disables all mempool
     9  functionality in CometBFT, including transaction dissemination and the
    10  `broadcast_tx_*` endpoints.
    11  
    12  Also fixes a small bug in the mempool for an experimental feature, and reverts
    13  the change from v0.37.3 that bumped the minimum Go version to v1.21.
    14  
    15  ### BUG FIXES
    16  
    17  - `[mempool]` Avoid infinite wait in transaction sending routine when
    18    using experimental parameters to limiting transaction gossiping to peers
    19    ([\#1654](https://github.com/cometbft/cometbft/pull/1654))
    20  
    21  ### FEATURES
    22  
    23  - `[mempool]` Add `nop` mempool ([\#1643](https://github.com/cometbft/cometbft/pull/1643))
    24  
    25    If you want to use it, change mempool's `type` to `nop`:
    26  
    27    ```toml
    28    [mempool]
    29  
    30    # The type of mempool for this node to use.
    31    #
    32    # Possible types:
    33    # - "flood" : concurrent linked list mempool with flooding gossip protocol
    34    # (default)
    35    # - "nop"   : nop-mempool (short for no operation; the ABCI app is responsible
    36    # for storing, disseminating and proposing txs). "create_empty_blocks=false"
    37    # is not supported.
    38    type = "nop"
    39    ```
    40  
    41  ## v0.37.3
    42  
    43  *November 17, 2023*
    44  
    45  This release contains, among other things, an opt-in, experimental feature to
    46  help reduce the bandwidth consumption associated with the mempool's transaction
    47  gossip.
    48  
    49  ### BREAKING CHANGES
    50  
    51  - `[p2p]` Remove unused UPnP functionality
    52    ([\#1113](https://github.com/cometbft/cometbft/issues/1113))
    53  
    54  ### BUG FIXES
    55  
    56  - `[state/indexer]` Respect both height params while querying for events
    57     ([\#1529](https://github.com/cometbft/cometbft/pull/1529))
    58  
    59  ### FEATURES
    60  
    61  - `[node/state]` Add Go API to bootstrap block store and state store to a height
    62    ([\#1057](https://github.com/tendermint/tendermint/pull/#1057)) (@yihuang)
    63  - `[metrics]` Add metric for mempool size in bytes `SizeBytes`.
    64    ([\#1512](https://github.com/cometbft/cometbft/pull/1512))
    65  
    66  ### IMPROVEMENTS
    67  
    68  - `[crypto/sr25519]` Upgrade to go-schnorrkel@v1.0.0 ([\#475](https://github.com/cometbft/cometbft/issues/475))
    69  - `[node]` Make handshake cancelable ([cometbft/cometbft\#857](https://github.com/cometbft/cometbft/pull/857))
    70  - `[node]` Close evidence.db OnStop ([cometbft/cometbft\#1210](https://github.com/cometbft/cometbft/pull/1210): @chillyvee)
    71  - `[mempool]` Add experimental feature to limit the number of persistent peers and non-persistent
    72    peers to which the node gossip transactions (only for "v0" mempool).
    73    ([\#1558](https://github.com/cometbft/cometbft/pull/1558))
    74    ([\#1584](https://github.com/cometbft/cometbft/pull/1584))
    75  - `[config]` Add mempool parameters `experimental_max_gossip_connections_to_persistent_peers` and
    76    `experimental_max_gossip_connections_to_non_persistent_peers` for limiting the number of peers to
    77    which the node gossip transactions. 
    78    ([\#1558](https://github.com/cometbft/cometbft/pull/1558))
    79    ([\#1584](https://github.com/cometbft/cometbft/pull/1584))
    80  
    81  ## v0.37.2
    82  
    83  *June 14, 2023*
    84  
    85  Provides several minor bug fixes, as well as fixes for several low-severity
    86  security issues.
    87  
    88  ### BUG FIXES
    89  
    90  - `[pubsub]` Pubsub queries are now able to parse big integers (larger than
    91    int64). Very big floats are also properly parsed into very big integers
    92    instead of being truncated to int64.
    93    ([\#771](https://github.com/cometbft/cometbft/pull/771))
    94  - `[state/kvindex]` Querying event attributes that are bigger than int64 is now
    95    enabled. We are not supporting reading floats from the db into the indexer
    96    nor parsing them into BigFloats to not introduce breaking changes in minor
    97    releases. ([\#771](https://github.com/cometbft/cometbft/pull/771))
    98  
    99  ### IMPROVEMENTS
   100  
   101  - `[rpc]` Remove response data from response failure logs in order
   102    to prevent large quantities of log data from being produced
   103    ([\#654](https://github.com/cometbft/cometbft/issues/654))
   104  
   105  ### SECURITY FIXES
   106  
   107  - `[rpc/jsonrpc/client]` **Low severity** - Prevent RPC
   108    client credentials from being inadvertently dumped to logs
   109    ([\#787](https://github.com/cometbft/cometbft/pull/787))
   110  - `[cmd/cometbft/commands/debug/kill]` **Low severity** - Fix unsafe int cast in
   111    `debug kill` command ([\#793](https://github.com/cometbft/cometbft/pull/793))
   112  - `[consensus]` **Low severity** - Avoid recursive call after rename to
   113    `(*PeerState).MarshalJSON`
   114    ([\#863](https://github.com/cometbft/cometbft/pull/863))
   115  - `[mempool/clist_mempool]` **Low severity** - Prevent a transaction from
   116    appearing twice in the mempool
   117    ([\#890](https://github.com/cometbft/cometbft/pull/890): @otrack)
   118  
   119  ## v0.37.1
   120  
   121  *April 26, 2023*
   122  
   123  This release fixes several bugs, and has had to introduce one small Go
   124  API-breaking change in the `crypto/merkle` package in order to address what
   125  could be a security issue for some users who directly and explicitly make use of
   126  that code.
   127  
   128  ### BREAKING CHANGES
   129  
   130  - `[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
   131    ([\#558](https://github.com/cometbft/cometbft/issues/558))
   132  
   133  ### BUG FIXES
   134  
   135  - `[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`.
   136    ([\#496](https://github.com/cometbft/cometbft/pull/496))
   137  - `[consensus]` Rename `(*PeerState).ToJSON` to `MarshalJSON` to fix a logging data race
   138    ([\#524](https://github.com/cometbft/cometbft/pull/524))
   139  - `[light]` Fixed an edge case where a light client would panic when attempting
   140    to query a node that (1) has started from a non-zero height and (2) does
   141    not yet have any data. The light client will now, correctly, not panic
   142    _and_ keep the node in its list of providers in the same way it would if
   143    it queried a node starting from height zero that does not yet have data
   144    ([\#575](https://github.com/cometbft/cometbft/issues/575))
   145  
   146  ### IMPROVEMENTS
   147  
   148  - `[jsonrpc/client]` Improve the error message for client errors stemming from
   149    bad HTTP responses.
   150    ([cometbft/cometbft\#638](https://github.com/cometbft/cometbft/pull/638))
   151  
   152  ## v0.37.0
   153  
   154  *March 6, 2023*
   155  
   156  This is the first CometBFT release with ABCI 1.0, which introduces the
   157  `PrepareProposal` and `ProcessProposal` methods, with the aim of expanding the
   158  range of use cases that application developers can address. This is the first
   159  change to ABCI towards ABCI++, and the full range of ABCI++ functionality will
   160  only become available in the next major release with ABCI 2.0. See the
   161  [specification](./spec/abci/) for more details.
   162  
   163  In the v0.34.27 release, the CometBFT Go module is still
   164  `github.com/tendermint/tendermint` to facilitate ease of upgrading for users,
   165  but in this release we have changed this to `github.com/cometbft/cometbft`.
   166  
   167  Please also see our [upgrading guidelines](./UPGRADING.md) for more details on
   168  upgrading from the v0.34 release series.
   169  
   170  Also see our [QA results](https://docs.cometbft.com/v0.37/qa/v037/cometbft) for
   171  the v0.37 release.
   172  
   173  We'd love your feedback on this release! Please reach out to us via one of our
   174  communication channels, such as [GitHub
   175  Discussions](https://github.com/cometbft/cometbft/discussions), with any of your
   176  questions, comments and/or concerns.
   177  
   178  See below for more details.
   179  
   180  ### BREAKING CHANGES
   181  
   182  - The `TMHOME` environment variable was renamed to `CMTHOME`, and all environment variables starting with `TM_` are instead prefixed with `CMT_`
   183    ([\#211](https://github.com/cometbft/cometbft/issues/211))
   184  - `[p2p]` Reactor `Send`, `TrySend` and `Receive` renamed to `SendEnvelope`,
   185    `TrySendEnvelope` and `ReceiveEnvelope` to allow metrics to be appended to
   186    messages and measure bytes sent/received.
   187    ([\#230](https://github.com/cometbft/cometbft/pull/230))
   188  - Bump minimum Go version to 1.20
   189    ([\#385](https://github.com/cometbft/cometbft/issues/385))
   190  - `[abci]` Make length delimiter encoding consistent
   191    (`uint64`) between ABCI and P2P wire-level protocols
   192    ([\#5783](https://github.com/tendermint/tendermint/pull/5783))
   193  - `[abci]` Change the `key` and `value` fields from
   194    `[]byte` to `string` in the `EventAttribute` type.
   195    ([\#6403](https://github.com/tendermint/tendermint/pull/6403))
   196  - `[abci/counter]` Delete counter example app
   197    ([\#6684](https://github.com/tendermint/tendermint/pull/6684))
   198  - `[abci]` Renamed `EvidenceType` to `MisbehaviorType` and `Evidence`
   199    to `Misbehavior` as a more accurate label of their contents.
   200    ([\#8216](https://github.com/tendermint/tendermint/pull/8216))
   201  - `[abci]` Added cli commands for `PrepareProposal` and `ProcessProposal`.
   202    ([\#8656](https://github.com/tendermint/tendermint/pull/8656))
   203  - `[abci]` Added cli commands for `PrepareProposal` and `ProcessProposal`.
   204    ([\#8901](https://github.com/tendermint/tendermint/pull/8901))
   205  - `[abci]` Renamed `LastCommitInfo` to `CommitInfo` in preparation for vote
   206    extensions. ([\#9122](https://github.com/tendermint/tendermint/pull/9122))
   207  - Change spelling from British English to American. Rename
   208    `Subscription.Cancelled()` to `Subscription.Canceled()` in `libs/pubsub`
   209    ([\#9144](https://github.com/tendermint/tendermint/pull/9144))
   210  - `[abci]` Removes unused Response/Request `SetOption` from ABCI
   211    ([\#9145](https://github.com/tendermint/tendermint/pull/9145))
   212  - `[config]` Rename the fastsync section and the
   213    fast\_sync key blocksync and block\_sync respectively
   214    ([\#9259](https://github.com/tendermint/tendermint/pull/9259))
   215  - `[types]` Reduce the use of protobuf types in core logic. `ConsensusParams`,
   216    `BlockParams`, `ValidatorParams`, `EvidenceParams`, `VersionParams` have
   217    become native types.  They still utilize protobuf when being sent over
   218    the wire or written to disk.  Moved `ValidateConsensusParams` inside
   219    (now native type) `ConsensusParams`, and renamed it to `ValidateBasic`.
   220    ([\#9287](https://github.com/tendermint/tendermint/pull/9287))
   221  - `[abci/params]` Deduplicate `ConsensusParams` and `BlockParams` so
   222    only `types` proto definitions are use. Remove `TimeIotaMs` and use
   223    a hard-coded 1 millisecond value to ensure monotonically increasing
   224    block times. Rename `AppVersion` to `App` so as to not stutter.
   225    ([\#9287](https://github.com/tendermint/tendermint/pull/9287))
   226  - `[abci]` New ABCI methods `PrepareProposal` and `ProcessProposal` which give
   227    the app control over transactions proposed and allows for verification of
   228    proposed blocks. ([\#9301](https://github.com/tendermint/tendermint/pull/9301))
   229  
   230  ### BUG FIXES
   231  
   232  - `[consensus]` Fixed a busy loop that happened when sending of a block part failed by sleeping in case of error.
   233    ([\#4](https://github.com/informalsystems/tendermint/pull/4))
   234  - `[state/kvindexer]` Fixed the default behaviour of the kvindexer to index and
   235    query attributes by events in which they occur. In 0.34.25 this was mitigated
   236    by a separated RPC flag. @jmalicevic
   237    ([\#77](https://github.com/cometbft/cometbft/pull/77))
   238  - `[state/kvindexer]` Resolved crashes when event values contained slashes,
   239    introduced after adding event sequences in
   240    [\#77](https://github.com/cometbft/cometbft/pull/77). @jmalicevic
   241    ([\#382](https://github.com/cometbft/cometbft/pull/382))
   242  - `[consensus]` ([\#386](https://github.com/cometbft/cometbft/pull/386)) Short-term fix for the case when `needProofBlock` cannot find previous block meta by defaulting to the creation of a new proof block. (@adizere)
   243    - Special thanks to the [Vega.xyz](https://vega.xyz/) team, and in particular to Zohar (@ze97286), for reporting the problem and working with us to get to a fix.
   244  - `[docker]` enable cross platform build using docker buildx
   245    ([\#9073](https://github.com/tendermint/tendermint/pull/9073))
   246  - `[consensus]` fix round number of `enterPropose`
   247    when handling `RoundStepNewRound` timeout.
   248    ([\#9229](https://github.com/tendermint/tendermint/pull/9229))
   249  - `[docker]` ensure Docker image uses consistent version of Go
   250    ([\#9462](https://github.com/tendermint/tendermint/pull/9462))
   251  - `[p2p]` prevent peers who have errored from being added to `peer_set`
   252    ([\#9500](https://github.com/tendermint/tendermint/pull/9500))
   253  - `[blocksync]` handle the case when the sending
   254    queue is full: retry block request after a timeout
   255    ([\#9518](https://github.com/tendermint/tendermint/pull/9518))
   256  
   257  ### FEATURES
   258  
   259  - `[abci]` New ABCI methods `PrepareProposal` and `ProcessProposal` which give
   260    the app control over transactions proposed and allows for verification of
   261    proposed blocks. ([\#9301](https://github.com/tendermint/tendermint/pull/9301))
   262  
   263  ### IMPROVEMENTS
   264  
   265  - `[e2e]` Add functionality for uncoordinated (minor) upgrades
   266    ([\#56](https://github.com/tendermint/tendermint/pull/56))
   267  - `[tools/tm-signer-harness]` Remove the folder as it is unused
   268    ([\#136](https://github.com/cometbft/cometbft/issues/136))
   269  - `[p2p]` Reactor `Send`, `TrySend` and `Receive` renamed to `SendEnvelope`,
   270    `TrySendEnvelope` and `ReceiveEnvelope` to allow metrics to be appended to
   271    messages and measure bytes sent/received.
   272    ([\#230](https://github.com/cometbft/cometbft/pull/230))
   273  - `[abci]` Added `AbciVersion` to `RequestInfo` allowing
   274    applications to check ABCI version when connecting to CometBFT.
   275    ([\#5706](https://github.com/tendermint/tendermint/pull/5706))
   276  - `[cli]` add `--hard` flag to rollback command (and a boolean to the `RollbackState` method). This will rollback
   277     state and remove the last block. This command can be triggered multiple times. The application must also rollback
   278     state to the same height.
   279    ([\#9171](https://github.com/tendermint/tendermint/pull/9171))
   280  - `[crypto]` Update to use btcec v2 and the latest btcutil.
   281    ([\#9250](https://github.com/tendermint/tendermint/pull/9250))
   282  - `[rpc]` Added `header` and `header_by_hash` queries to the RPC client
   283    ([\#9276](https://github.com/tendermint/tendermint/pull/9276))
   284  - `[proto]` Migrate from `gogo/protobuf` to `cosmos/gogoproto`
   285    ([\#9356](https://github.com/tendermint/tendermint/pull/9356))
   286  - `[rpc]` Enable caching of RPC responses
   287    ([\#9650](https://github.com/tendermint/tendermint/pull/9650))
   288  - `[consensus]` Save peer LastCommit correctly to achieve 50% reduction in gossiped precommits.
   289    ([\#9760](https://github.com/tendermint/tendermint/pull/9760))
   290  
   291  ---
   292  
   293  CometBFT is a fork of [Tendermint Core](https://github.com/tendermint/tendermint) as of late December 2022.
   294  
   295  ## Bug bounty
   296  
   297  Friendly reminder, we have a [bug bounty program](https://hackerone.com/cosmos).
   298  
   299  ## Previous changes
   300  
   301  For changes released before the creation of CometBFT, please refer to the Tendermint Core [CHANGELOG.md](https://github.com/tendermint/tendermint/blob/a9feb1c023e172b542c972605311af83b777855b/CHANGELOG.md).
   302