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.
- Added new ABCI methods
PrepareProposalandProcessProposal. For details, please see the spec. Applications upgrading to v0.37.0 must implement these methods, at the very minimum, as described here - Deduplicated
ConsensusParamsandBlockParams. In the v0.34 branch they are defined both inabci/types.protoandtypes/params.proto. The definitions inabci/types.protohave 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
int64varint values, which was inconsistent with theuint64varint length delimiters used in the P2P layer. Both now consistently useuint64varint length delimiters. - Added
AbciVersiontoRequestInfo. Applications should check that Tendermint's ABCI version matches the one they expect in order to ensure compatibility. - The
SetOptionmethod has been removed from the ABCIClientinterface. The corresponding Protobuf types have been deprecated. - The
keyandvaluefields in theEventAttributetype have been changed from typebytestostring. As per the Protocol Buffers updating guidelines, this should have no effect on the wire-level encoding for UTF8-encoded strings.
If you already make use of Tendermint Core (either the original Tendermint Core
v0.34.24, or Informal Systems' public fork), you can upgrade to CometBFT
v0.34.27 by replacing your dependency in your go.mod file:
go mod edit -replace github.com/tendermint/tendermint=github.com/cometbft/cometbft@v0.34.27We make use of the original module URL in order to minimize the impact of
switching to CometBFT. This is only possible in our v0.34 release series, and we
will be switching our module URL to github.com/cometbft/cometbft in the next
major release.
CometBFT, by default, will consider its home directory in ~/.cometbft from now
on instead of ~/.tendermint.
The environment variable prefixes have now changed from TM to CMT. For
example, TMHOME or TM_HOME become CMTHOME or CMT_HOME.
We have implemented a fallback check in case TMHOME is still set and CMTHOME
is not, but you will start to see a warning message in the logs if the old
TMHOME variable is set. This fallback check will be removed entirely in a
subsequent major release of CometBFT.
CometBFT must be compiled using Go 1.19 or higher. The use of Go 1.18 is not supported, since this version has reached end-of-life with the release of Go 1.20.
If you run into any trouble with this upgrade, please contact us.
For historical upgrading instructions for Tendermint Core v0.34.24 and earlier, please see the Tendermint Core upgrading instructions.