This page tracks releases and changes for v0.54.0. For the full release history, see the CHANGELOG on GitHub.
Breaking Changes
- (x/consensus) #25607 Add
AuthorityParamsto consensus params. When set, the consensus params authority takes precedence over per-keeper authority for all module parameter updates. Keeper constructor signatures are unchanged. - (x/staking) #25724 Validate
BondDenominMsgUpdateParamsto prevent setting non-existent or zero-supply denoms. - #25778 Update
logto log v2. - #25090 Moved deprecated modules to
./contrib. These modules are still available but will no longer be actively maintained or supported in the Cosmos SDK Bug Bounty program. x/groupx/nftx/circuitx/crisis- (crypto) #24414 Remove sr25519 support, since it was removed in CometBFT v1.x (see: CometBFT #3646).
- (x/mint) #25599 Add max supply param.
- (x/gov) #25615 Decouple
x/govfromx/stakingby makingCalculateVoteResultsAndVotingPowerFna required parameter tokeeper.NewKeeperinstead ofStakingKeeper. - (x/gov) #25617
AfterProposalSubmissionhook now includes proposer address as a parameter. - (x/gov) #25616
DistrKeeperx/distributionis now optional. Genesis validation ensuresdistrKeeperis set if distribution module is used as proposal cancel destination. - (systemtests) [#25930]https://github.com/cosmos/cosmos-sdk/pull/25930) Move
systemtestsintotestutiland no longer under its owngo.mod. - (baseapp) #26060 Remove
BaseApp.SetStoreMetrics. TheStoreMetricsinterface never worked, so removing dead code. - (store) #26061 Remove store tracing API and all related plumbing:
- Remove
SetTracer,SetTracingContext, andTracingEnabledfromMultiStoreinterface. - Remove
CacheWrapWithTracefromCacheWrapperinterface. - Remove
BaseApp.SetCommitMultiStoreTracerand tracing context logic fromBaseApp.cacheTxContextandFinalizeBlock. - Remove
io.Writerparameter fromservertypes.AppCreatorandtraceWriter io.Writerfromservertypes.AppExporter. - Remove
traceStore io.Writerparameter fromsimapp.NewSimAppand all enterprise simapp constructors. - Remove
traceStore io.Writerfrom alltestutil/simsxapp factory signatures. - (store) #26042 We are now importing
github.com/cosmos/cosmos-sdk/store/v2as the store package instead ofcosmossdk.io/storeand all import paths have changed. - (baseapp) #26138 Default block gas meter to disabled. Adds checking to ensure block gas meter is not enabled while bstm parallel execution is configured and panics in these scenarios during parameter assignment.
Features
- #25471 Full BLS 12-381 support enabled.
- #24872 Support BLS 12-381 for cli
init,gentx,collect-gentx - (crypto) #24919 add
NewPubKeyFromBytesfunction to thesecp256r1package to createPubKeyfrom bytes - (server) #24720 add
verbose_log_levelflag for configuring the log level when switching to verbose logging mode during sensitive operations (such as chain upgrades). - (crypto) #24861 add
PubKeyFromCometTypeAndByteshelper function to convert fromcomet/v2PubKeys to thecryptotypes.Pubkeyinterface. - (abci_utils) #25008 add the ability to assign a custom signer extraction adapter in
DefaultProposalHandler. - (crypto/ledger) #25435 Add SetDERConversion to reset skipDERConversion and App name for ledger.
- (gRPC) #25565 Support for multi gRPC query clients serve with historical binaries to serve proper historical state.
- (blockstm) #25600 Allow dynamic retrieval of the coin denomination from multi store at runtime.
- (x/distribution) #25650 Add new gRPC query endpoints and CLI commands for
DelegatorStartingInfo,ValidatorHistoricalRewards, andValidatorCurrentRewards. - #25516 Support automatic configuration of OpenTelemetry via OpenTelemetry declarative configuration and add OpenTelemetry instrumentation of
BaseApp. - #25745 Add DiskIO telemetry via gopsutil.
- (grpc) #25648 Add
earliest_block_heightandlatest_block_heightfields toGetSyncingResponse. - (collections/codec) [#25614] (https://github.com/cosmos/cosmos-sdk/pull/25827) Add
TimeValue(ValueCodec[time.Time]) to collections/codec. - (enterprise/poa) #25838 Add the
poamodule under theenterprisedirectory. - (grpc) #25850 Add
GetBlockResultsandGetLatestBlockResultsgRPC endpoints to expose CometBFT block results includingfinalize_block_events. - (events) #25877 Add
OverrideEventstoEventManagerI.
Improvements
- (ci) Use softprops/action-gh-release for main-nightly instead of custom gh/git to avoid repository ruleset conflicts.
- (telemetry) #26006 Export
ExtensionOptionstype for programmatic otel.yaml generation. - #25955 Use cosmos/btree directly instead of replacing it in go.mods
- (types) #25342 Undeprecated
EmitEventandEmitEventson theEventManager. These functions will continue to be maintained. - (types) #24668 Scope the global config to a particular binary so that multiple SDK binaries can be properly run on the same machine.
- (baseapp) #24655 Add mutex locks for
stateand makelastCommitInfoatomic to prevent race conditions betweenCommitandCreateQueryContext. - (proto) #24161 Remove unnecessary annotations from
x/stakingauthz proto. - (x/bank) #24660 Improve performance of the
GetAllBalancesandGetAccountsBalanceskeeper methods. - (collections) #25464 Add
IterateRawmethod toMultiindex type to satisfty queryCollectioninterface. - (x/mint) #25562 Improve and test
x/mintparams validation. - (api) #25613 Separated deprecated modules into the contrib directory, distinct from api, to enable and unblock new proto changes without affecting legacy code.
- (server) #25632 Add missing call to close the app on shutdown.
- (server) #25740 Add variadic
grpc.DialOptionparameter toStartGrpcServerfor custom gRPC client connection options. - (blockstm) #25765 Minor code readability improvement in block-stm.
- (blockstm) #25786 Add pre-state checking in transaction state transition.
- (server/config) #25807 fix(server): reject overlapping historical gRPC block ranges.
- #25857 Reduce scope of mutex in
PriorityNonceMempool.Remove. - (baseapp) #25862 Skip running validateBasic for rechecking txs. (Backport of https://github.com/cosmos/cosmos-sdk/pull/20208).
- (blockstm) 25883 Re-use decoded tx object in pre-estimates.
- (blockstm) #25788 Only validate transactions that’s executed at lease once.
- (blockstm) #25767 Optimize block-stm MVMemory with bitmap index.
Bug Fixes
- (baseapp) #25331 Avoid noisy errors when gRPC response headers are already sent, set block height as a header when possible and fall back to a trailer.
- (blockstm) #25789 Wake up suspended executors when scheduler doesn’t complete to prevent goroutine leaks.
- (grpc) #25647 Return actual
earliest_store_heightinnode.StatusgRPC endpoint instead of hardcoded0. - (types/query) #25665 Fix pagination offset when querying a collection with predicate function.
- (x/staking) #25649 Add missing
defer iterator.Close()calls inIterateDelegatorRedelegationsandGetRedelegationsto prevent resource leaks. - (mempool) #25563 Cleanup sender indices in case of tx replacement.
- (x/epochs) #25425 Fix
InvokeSetHooksbeing called with a nil keeper andAppModulecontaining a copy instead of a pointer (hooks set post creating theAppModulelike with depinject didn’t apply because it’s a different instance). - (client, client/rpc, x/auth/tx) #24551 Handle cancellation properly when supplying context to client methods.
- (x/authz) #24638 Fixed a minor bug where the grant key was cast as a string and dumped directly into the error message leading to an error string possibly containing invalid UTF-8.
- (client, client/rpc, x/auth/tx) #24551 Handle cancellation properly when supplying context to client methods.
- (x/epochs) #24770 Fix register of epoch hooks in
InvokeSetHooks. - (x/epochs) #25087 Remove redundant error check in BeginBlocker.
- GHSA-p22h-3m2v-cmgh Fix x/distribution can halt when historical rewards overflow.
- (x/staking) #25258 Add delegator address to redelegate event.
- (cli) #25485 Avoid failed to convert address field in
withdraw-validator-commissioncmd. - (baseapp) #25642 Mark pre-block events for indexing based on local configuration.
- (x/bank) #25751 Fix recipient address in events.
- (client) [#25811] (https://github.com/cosmos/cosmos-sdk/pull/25811) fix(client): fix file handle leaks in snapshot commands.
- (server/config) #25806 fix: add missing commas in historical gRPC config template.
- (client) #25804 Add
GetHeightFromMetadataStrictAPI togrpcclient for better error handling. - (x/auth) #25828 Limits pagination at default for values that exceed it.
- (x/staking) #25829 Validates case-sensitivity on authz grands in x/staking.
- (mempool) #25869 fix(mempool): add thread safety to NextSenderTx.
- (blockstm) #25912 Remove
SigVerificationDecoratorsignature incarnation cache causing state divergence under blockstm. - (x/group) #25922 Add zero-total-weight check for ThresholdDecisionPolicy
- (x/group) #25917 Prevent creation of zero-weight groups.
- (x/group) #25919 add safer type assertions to group
DecisionPolicygetter calls. - (x/group) #25920 Expand voting period check to verify period is positive instead of nonzero.
- (baseapp) #26063 Fixes an issue where values embedded in context during ante handling were wiped after the handlers returned.
Deprecated
- (x/nft) #24575 Deprecate the
x/nftmodule in the Cosmos SDK repository. This module will not be maintained to the extent that our core modules will and will be kept in a legacy repo. - (x/group) #24571 Deprecate the
x/groupmodule in the Cosmos SDK repository. This module will not be maintained to the extent that our core modules will and will be kept in a legacy repo. - (types) #24664 Deprecate the
Invarianttype in the Cosmos SDK. - #25516 Deprecate all existing methods and types in the
telemetrypackage, usage ofgithub.com/hashicorp/go-metricsand thetelemetryconfiguration section. New instrumentation should use the official OpenTelemetry go API and Cosmos SDK applications can automatically expose OpenTelemetry metrics, traces and logs via OpenTelemetry declarative configuration. - #25948 Change default
app.gocode to not usedepinjectas we are phasing it out. - (baseapp) #26107 Deprecate baseapp test helper
app.NewUncachedContext, consider usingapp.NewNextBlockContextorapp.NewContextinstead, seeUPGRADING.mdfor more details.