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