A month ago, Cosmos SDK Eden was released. Missed the announcement? Read it here.
For second patch release of the v0.50.x line, a few features and improvements were added to the SDK.
Notably, we added and fixed the following:
Allow to import base64 encoded pubkeys in the keyring using <appd> keys add <name> --pubkey-base64 <base64-pubkey>
A bug when migrating from v0.45/v0.46 directly to v0.50 due to missing ConsensusParams
An issue when simulating gas for transactions when using a multisig
📝 Changelog
Check out the changelog for an exhaustive list of changes, or compare changes from the last release.
Refer to the upgrading guide when migrating from v0.47.x to v0.50.x.
Note, that the next SDK release, v0.51.0, will not include x/params migration, when migrating from < v0.47, v0.50.x or v0.47.x, is a mandatory migration.
Cosmos SDK v0.50 is a major release that includes a number of significant new features and improvements. These new features and improvements will make Cosmos SDK applications more performant, scalable, and secure. They will also make it easier for developers to create and integrate new modules into the Cosmos SDK ecosystem.
ABCI 2.0 Integration: Cosmos SDK v0.50 upgrades to CometBFT v0.38 and fully implements ABCI 2.0.
Optimistic Execution: Cosmos SDK v0.50 introduces Optimistic Execution, which allows transactions to be executed and committed without waiting for confirmation from all validators. This can significantly improve the performance of chains with a high volume of transactions.
Modular SDK modules: Cosmos SDK v0.50 starts to extract core modules away from the SDK. These are separately versioned and follow their own release cadence.
IAVL v1: Cosmos SDK v0.50 upgrades the IAVL tree implementation to v1, which provides a number of performance and security improvements.
AutoCLI: Cosmos SDK v0.50 introduces AutoCLI, a library that makes it easier to create CLI commands for SDK applications.
Sign Mode Textual: Cosmos SDK v0.50 introduces a new sign mode that for hardware devices, as a replacement of Amino JSON.
Less boilerplate: Cosmos SDK v0.50 requires less boilerplate in general for modules code and applications. Be sure to read the UPGRADING.md to take advantage of these improvements.
ABCI 2.0
Cosmos SDK v0.50 upgrades CometBFT to CometBFT v0.38.0 and integrates ABCI 2.0 semantics. Modules still follow ABCI 1.0 semantics (BeginBlock, EndBlock).
Cosmos SDK v0.50 introduces Optimistic Execution, which allows transactions to be executed and committed without waiting for confirmation from all validators. This can significantly improve the performance of chains with a high volume of transactions.
(debug) #18219 Add debug commands for application codec types.
(client/keys) #17639 Allows using and saving public keys encoded as base64.
(server) #17094 Add a shutdown-grace flag for waiting a given time before exit.
Improvements
(telemetry) #18646 Enable statsd and dogstatsd telemetry sinks.
(server) #18478 Add command flag to disable colored logs.
(x/gov) #18025 Improve <appd> q gov proposer by querying directly a proposal instead of tx events. It is an alias of q gov proposal as the proposer is a field of the proposal.
(version) #18063 Allow to define extra info to be displayed in <appd> version --long command.
(codec/unknownproto)#18541 Remove the use of "protoc-gen-gogo/descriptor" in favour of using the official protobuf descriptorpb types inside unknownproto.
Bug Fixes
(x/auth) #18564 Fix total fees calculation when batch signing.
(server) #18537 Fix panic when defining minimum gas config as 100stake;100uatom. Use a , delimiter instead of ;. Fixes the server config getter to use the correct delimiter.
#18531 Baseapp's GetConsensusParams returns an empty struct instead of panicking if no params are found.
(client/tx) #18472 Utilizes the correct Pubkey when simulating a transaction.
(baseapp) #18486 Fixed FinalizeBlock calls not being passed to ABCIListeners.
(baseapp) #18627 Post handlers are run on non successful transaction executions too.
(baseapp) #18654 Fixes an issue in which gogoproto.Merge does not work with gogoproto messages with custom types.
v0.50.0 has been retracted due to a mistake in tagging the release. Please use v0.50.1 instead.
Features
(baseapp) #18071 Add hybrid handlers to MsgServiceRouter.
(server) #18162 Start gRPC & API server in standalone mode.
(baseapp & types) #17712 Introduce PreBlock, which runs before begin blocker other modules, and allows to modify consensus parameters, and the changes are visible to the following state machine logics. Additionally it can be used for vote extensions.
(genutil) #17571 Allow creation of AppGenesis without a file lookup.
(codec) #17042 Add CollValueV2 which supports encoding of protov2 messages in collections.
(x/gov) #16976 Add failed_reason field to Proposal under x/gov to indicate the reason for a failed proposal. Referenced from #238 under bnb-chain/greenfield-cosmos-sdk.
(baseapp) #16898 Add preFinalizeBlockHook to allow vote extensions persistence.
(cli) #16887 Add two new CLI commands: <appd> tx simulate for simulating a transaction; <appd> query block-results for querying CometBFT RPC for block results.
(x/bank) #16852 Add DenomMetadataByQueryString query in bank module to support metadata query by query string.
(baseapp) #16581 Implement Optimistic Execution as an experimental feature (not enabled by default).
(types) #16257 Allow setting the base denom in the denom registry.
(baseapp) #16239 Add Gas Limits to allow node operators to resource bound queries.
(types/simulation) #16074 Add generic SimulationStoreDecoder for modules using collections.
(genutil) #16046 Add "module-name" flag to genutil add-genesis-account to enable initializing module accounts at genesis.* #15970 Enable SIGN_MODE_TEXTUAL.
(types) #15958 Add module.NewBasicManagerFromManager for creating a basic module manager from a module manager.
(types/module) #15829 Add new endblocker interface to handle valset updates.
(runtime) #15818 Provide logger through depinject instead of appBuilder.
... (truncated)
Commits
d8fb76d build(deps): bump to latest tagged modules in simapp (#18681)
cddc197 feat(telemetry): enable statsd and dogstatsd telemetry sinks (backport #1...
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/cosmos/cosmos-sdk from 0.47.2 to 0.50.2.
Release notes
Sourced from github.com/cosmos/cosmos-sdk's releases.
... (truncated)
Changelog
Sourced from github.com/cosmos/cosmos-sdk's changelog.
... (truncated)
Commits
d8fb76d
build(deps): bump to latest tagged modules in simapp (#18681)cddc197
feat(telemetry): enablestatsd
anddogstatsd
telemetry sinks (backport #1...ea9de8a
chore: prepare v0.50.2 (#18639)455b0be
fix(baseapp): protocompat.go gogoproto.Merge does not work with custom types...4459865
chore: typos fix (backport #18642) (#18645)c95ebb6
fix(baseapp)!: postHandler should run regardless of result (backport #18627) ...fe7a3ec
build(deps): Bump github.com/cometbft/cometbft-db from 0.9.0 to 0.9.1 (#18630)379114d
build(deps): Bump github.com/cometbft/cometbft-db from 0.7.0 to 0.9.0 (#18618)5146593
docs: fix typos in UPGRADING.md (backport #18613) (#18614)5051495
fix(x/auth): Add fees on batch sign (backport #18564) (#18592)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show