This page tracks releases and changes for v0.55.0. For the full release history, see the CHANGELOG on GitHub.
Breaking Changes
- (mempool) #25338 Respect gas wanted returned by the ante handler for block selection. Adds
InsertWithOptionto theMempoolinterface (carries the ante-reportedGasWanted) and changes theSelectBycallback to receive amempool.Txwrapper that exposes the stored value. - (tx) #26456 Remove
SIGN_MODE_TEXTUALand all associated implementation (x/tx/signing/textual,x/auth/tx/textual.go,TextualCoinMetadataQueryFn). The proto enum value is reserved to prevent future reuse. ADR-050 is marked archived. - (modules) #26421 Remove the
x/protocolpoolmodule and its API/proto surface from the SDK. Applications upgrading from v0.54 should includeprotocolpoolin deleted store upgrades. - (genutils) #26468 Consolidate ExportGenesisFileWithTime arguments to preserve consensus params.
Features
- (abci) #25620 Add support for new application side mempool ABCI methods.
- (abci) #25969 Add support for new ABCI methods,
InsertTxandReapTxs. - (blockstm) #26208 Add Block-STM configuration support:
block-executor,block-stm-workersandblock-stm-pre-estimate. - (blockstm) #25909 Cache pre-state to optimize value-based validation.
- (deps) #26388 Bump CometBFT version to v0.39.3.
- (staking) #26440 Add basic key rotation for validator consensus keys.
- (crypto) #26436 Add ML-DSA-65 (FIPS 204) post-quantum validator consensus key type, with SDK key wrappers, Amino + interface-registry registration, multisig support, and a
hd.MlDsa65Typeconstant. - (blockstm) #26467 Track existence for
Has()reads to reduce false conflicts. - (staking) #26485 Add
key_rotation_feetox/stakingparams and register associated 5->6 migration. - (staking) #26461 Wire
MsgRotateConsPubKeyinto cli and add a happy path system test. - (staking) #26471 Add genesis import/export support for validator consensus key rotation.
- (crypto) #26472 Add ML-DSA-65 (FIPS 204) support for user account keys: mnemonic-based keyring creation/recovery (
--algo ml_dsa_65), transaction signing/verification, and an ante-handler signature-verification gas cost (Params.SigVerifyCostMlDsa65). - (enterprise/poa) #26590 Add
MsgRotateConsPubKeyfor POA validator consensus key rotation (operator self-service plus admin override). - (enterprise/poa) #26614 Add ML-DSA-65 (mldsa65) validator key support to the PoA module via a
WithMlDsa65Support()module option, raisingMaxPubKeyLengthto accommodate the larger keys. - (crypto) #26615 Add
secp256k1ethvalidator consensus key type.
Improvements
- (server/config) #26572 Warn that
query-gas-limit = 0(the default) is unbounded and exposes public RPC nodes to DoS via expensive queries. - (docs) #25918 Regenerate Swagger API spec to reflect current proto state, including
authorityfield on consensus params and removal of stale module-config definitions. - (baseapp) #22368 Add
-race-mode regression test (TestABCI_Race_GRPC_Query_During_Commit) covering concurrentBaseApp.QueryandFinalizeBlock/Commit. Pins down the state-management mutex work added in #24655 and follow-ups so the data race reported against v0.50.x cannot regress silently. - (x/staking, x/slashing) #26481 Resolve evidence against recently rotated consensus keys and migrate slashing signing state to the active consensus key.
- (x/auth/tx) #25221 Add
ConfigOptions.AminoJSONEncoderso applications can configure a customaminojson.Encoder(e.g. custom field encodings) for theSIGN_MODE_LEGACY_AMINO_JSONhandler without replicating the SDK’sHandlerMapconstruction. - chore(x/auth) #26567: add a human-readable error
- (blockstm) #26592 Validate
ExecuteBlockinputs (block size, store index mapping, and estimates) at the exported entry point so invalid input returns a descriptive error instead of an opaque “index out of range” panic. - (cli) #26604 Add consensus key algo to init and testnet CLIs.
- (crypto) #26626 Update mldsa65 PubKey Address logic to validate length, remove unpacking.
- (staking) #26619 Emit
rotate_cons_pubkeyandapply_cons_pubkey_rotationevents during key rotation.
Bug Fixes
- (codec) #26587 Lower the nested
google.protobuf.Anyrecursion depth cap in unknown-field validation from 10,000 to 64, reducing CPU-amplification DoS risk from deeply nestedAnywrappers. No legitimate message nestsAnyanywhere near that deep. - (x/feegrant) #26596 Honor the
PageRequestoffset andcount_totalin theAllowancesandAllowancesByGrantergRPC queries, which previously collected grants inside the pagination predicate and so returned offset-skipped and beyond-limit results. - (x/authz) #26588 Cap the number of expired grants pruned per
BeginBlockercall to 200, matchingx/feegrant’s existing pattern, so a block where many grants expire at once can’t cause unbounded work. - (client) #26524 Fix file handle leak in the
snapshot dumpcommand where chunk files were deferred-closed inside the loop, keeping every chunk’s handle open until the command returned (follow-up to #25811). - (x/distribution) #26518 Return an error from internal historical rewards reads when the record is absent, preventing recovered reference-count panics during BlockSTM speculative execution.
- (x/auth) #26515 Bound the pubkey and signature indices in
ConsumeMultisignatureVerificationGasandVerifyMultisignatureso a multisig signature with a bit array larger than the key set, or with more set bits than supplied signatures, returns an error instead of panicking with index out of range. - (x/distribution) #26406 Add fallback paths (delegator/validator owner, then community pool) when withdrawing delegator rewards or validator commission to a blocked address during
Begin/EndBlockers. user msg initiated paths still returnErrUnauthorizedwhen withdrawing to blocked addresses. - (x/gov) #26353 Fix leading comma in
proposal_messagesevent attribute emitted bySubmitProposal. - (telemetry) #26390 Fix env var for otel telemetry initialization.
- (x/staking) #26408 Fix
MsgBeginRedelegatefailure when redelegating all shares from an unbonded source validator that is removed after unbonding. - (x/auth/tx) #26422 Reuse the signing context from the codec’s
InterfaceRegistrywhenConfigOptions.SigningOptionsis unset so thatCustomGetSignersregistered viaNewInterfaceRegistryWithOptionsare honored byNewTxConfig/NewTxConfigWithOptions. - (x/staking) #26460 Coalesce key rotation power updates to not emit duplicates.
- (x/staking) #26483 Block
MsgCreateValidatorfrom creating validators with cons addrs locked by key rotations. - (blockstm) #25893 Fix CancelAll cancellation by clearing blocker ESTIMATE marks before waking suspended executors.
- (crypto) #26529 Validate the SEC1 tag byte (
0x02/0x03) when unmarshaling asecp256k1.PubKey, rejecting malformed compressed keys that previously passed the length-only check. - (x/auth/tx) #26571 Avoid nil pointer panic in
GetSigningTxDatafor multisigModeInfowith a nilMultior nilBitarray. - (x/auth/tx) #26527 Fix nil pointer panic in
GetSigningTxDatawhen aSignerInfohas a nilPublicKey. - (x/auth/tx) #26517 Return a decode error instead of panicking when a transaction’s
SignerInfosandSignaturescounts disagree inGetSignaturesV2, or a multisig’sModeInfosand sub-signature counts disagree inModeInfoAndSigToSignatureData. - (x/auth/ante) #26573 Reject tx with extra SignerInfos in SetPubKeyDecorator.
- (block-stm) #26583 Fix count validation tasks before advancing validationIdx to prevent lost updates.
- (blockstm) #26591 normalize non-positive worker count in
STMRunner.Run. - (x/staking) #26613 Require
key_rotation_feedenom to equalbond_denominParams.Validateand derive the default fee denom from the configured bond denom. - (x/staking) #26611 Fix missing key rotation type tags on genesis import.
- (blockstm) #26627 Guard against block-stm estimate panic.
- (x/staking) #26616 Expire historical cons addr lookups only once equivocation evidence is no longer admissible.
- (x/poa) #26642 Always return error when migrating fees to an occupied key.
- (x/staking) #26641 Allow multiple history entires in genesis import, and fix labeling of historical entries.