This guide provides instructions for upgrading to specific versions of CometBFT.
For users explicitly making use of the Go APIs provided in the crypto/merkle
package, please note that, in order to fix a potential security issue, we had to
make a breaking change here. This change should only affect a small minority of
users. For more details, please see
#557.
This release introduces state machine-breaking changes, and therefore requires a coordinated upgrade.
When upgrading from the v0.34 release series, please note that the Go module has
now changed to github.com/cometbft/cometbft
.
- The
ABCIVersion
is now1.0.0
. - Added new ABCI methods
PrepareProposal
andProcessProposal
. For details, please see the spec. Applications upgrading to v0.37.0 must implement these methods, at the very minimum, as described here - Deduplicated
ConsensusParams
andBlockParams
. In the v0.34 branch they are defined both inabci/types.proto
andtypes/params.proto
. The definitions inabci/types.proto
have been removed. In-process applications should make sure they are not using the deleted version of those structures. - In v0.34, messages on the wire used to be length-delimited with
int64
varint values, which was inconsistent with theuint64
varint length delimiters used in the P2P layer. Both now consistently useuint64
varint length delimiters. - Added
AbciVersion
toRequestInfo
. Applications should check that CometBFT's ABCI version matches the one they expect in order to ensure compatibility. - The
SetOption
method has been removed from the ABCIClient
interface. The corresponding Protobuf types have been deprecated. - The
key
andvalue
fields in theEventAttribute
type have been changed from typebytes
tostring
. As per the Protocol Buffers updating guidelines, this should have no effect on the wire-level encoding for UTF8-encoded strings.
If you rely on the /tx_search
or /block_search
endpoints for event querying,
please note that the default behaviour of these endpoints has changed in a way
that might break your queries. The original behaviour was poorly specified,
which did not respect event boundaries.
Please see tendermint/tendermint#9712 for context on the bug that was addressed that resulted in this behaviour change.
For historical upgrading instructions for Tendermint Core v0.34.24 and earlier, please see the Tendermint Core upgrading instructions.