github.com/badrootd/nibiru-cometbft@v0.37.5-0.20240307173500-2a75559eee9b/UPGRADING.md (about) 1 # Upgrading CometBFT 2 3 This guide provides instructions for upgrading to specific versions of CometBFT. 4 5 ## v0.37.1 6 7 For users explicitly making use of the Go APIs provided in the `crypto/merkle` 8 package, please note that, in order to fix a potential security issue, we had to 9 make a breaking change here. This change should only affect a small minority of 10 users. For more details, please see 11 [\#557](https://github.com/cometbft/cometbft/issues/557). 12 13 ## v0.37.0 14 15 This release introduces state machine-breaking changes, and therefore requires a 16 coordinated upgrade. 17 18 ### Go API 19 20 When upgrading from the v0.34 release series, please note that the Go module has 21 now changed to `github.com/cometbft/cometbft`. 22 23 ### ABCI Changes 24 25 * The `ABCIVersion` is now `1.0.0`. 26 * Added new ABCI methods `PrepareProposal` and `ProcessProposal`. For details, 27 please see the [spec](spec/abci/README.md). Applications upgrading to 28 v0.37.0 must implement these methods, at the very minimum, as described 29 [here](./spec/abci/abci%2B%2B_comet_expected_behavior.md#adapting-existing-applications-that-use-abci) 30 * Deduplicated `ConsensusParams` and `BlockParams`. 31 In the v0.34 branch they are defined both in `abci/types.proto` and `types/params.proto`. 32 The definitions in `abci/types.proto` have been removed. 33 In-process applications should make sure they are not using the deleted 34 version of those structures. 35 * In v0.34, messages on the wire used to be length-delimited with `int64` varint 36 values, which was inconsistent with the `uint64` varint length delimiters used 37 in the P2P layer. Both now consistently use `uint64` varint length delimiters. 38 * Added `AbciVersion` to `RequestInfo`. 39 Applications should check that CometBFT's ABCI version matches the one they expect 40 in order to ensure compatibility. 41 * The `SetOption` method has been removed from the ABCI `Client` interface. 42 The corresponding Protobuf types have been deprecated. 43 * The `key` and `value` fields in the `EventAttribute` type have been changed 44 from type `bytes` to `string`. As per the [Protocol Buffers updating 45 guidelines](https://developers.google.com/protocol-buffers/docs/proto3#updating), 46 this should have no effect on the wire-level encoding for UTF8-encoded 47 strings. 48 49 ### RPC 50 51 If you rely on the `/tx_search` or `/block_search` endpoints for event querying, 52 please note that the default behaviour of these endpoints has changed in a way 53 that might break your queries. The original behaviour was poorly specified, 54 which did not respect event boundaries. 55 56 Please see 57 [tendermint/tendermint\#9712](https://github.com/tendermint/tendermint/issues/9712) 58 for context on the bug that was addressed that resulted in this behaviour 59 change. 60 61 --- 62 63 For historical upgrading instructions for Tendermint Core v0.34.24 and earlier, 64 please see the [Tendermint Core upgrading instructions][tmupgrade]. 65 66 [tmupgrade]: https://github.com/tendermint/tendermint/blob/35581cf54ec436b8c37fabb43fdaa3f48339a170/UPGRADING.md