cosmos-sdk

A Framework for Building High Value Public Blockchains

APACHE-2.0 License

Downloads
4.6K
Stars
5.9K
Committers
583

Bot releases are hidden (Show)

cosmos-sdk - v0.45.1

Published by robert-zaremba over 2 years ago

This release introduces bug fixes and improvements on the Cosmos SDK v0.45 series:

Highlights

  • Added the missing iavl-cache-size config parameter parsing to set a desired IAVL cache size. The default value is way to small for big chains, and causes OOM failures.
  • Added a check in x/upgrade module's BeginBlock preventing accidental binary downgrades
  • Fix: the /cosmos/tx/v1beta1/txs/{hash} endpoint returns correct return code (404) for a non existing tx.

See the Cosmos SDK v0.45.1 Changelog for the exhaustive list of all changes and check other fixes in 0.45.x release series.

Full Diff: https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1

cosmos-sdk - Cosmos SDK v0.45.0 Release Candidate 1

Published by amaury1729 almost 3 years ago

Release Notes

Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.

State-Breaking Changes

There are few important changes in gas consumption, which improve the gas economics:

  • We now charge gas in two new places: on .Seek() even if there are no entries, and for the key length (on top of the value length).
  • When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.

Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.

API-Breaking Changes

  • The BankKeeper interface has a new HasSupply method to ensure that input denom actually exists on chain.
  • The CommitMultiStore interface contains a new SetIAVLCacheSize method for a configurable IAVL cache size.
  • AuthKeeper interface in x/auth now includes a function HasAccount.

Finally, when using the SetOrder* functions in simapp, e.g. SetOrderBeginBlocker, we now require that all modules be present in the function arguments, or else the node panics at startup. We also added a new SetOrderMigration function to set the order of running module migrations.

Improvements

  • Speedup improvements (e.g. speedup iterator creation after delete heavy workloads, lower allocations for Coins.String(), reduce RAM/CPU usage inside store/cachekv's Store.Write) are included in this release.
  • Upgrade Rosetta to v0.7.0 .
  • Support in-place migration ordering.

See our CHANGELOG for the exhaustive list of all changes, or a full commit diff.

cosmos-sdk - DB v1.0.0-beta.1

Published by robert-zaremba almost 3 years ago

github.com/cosmos/cosmos-sdk/db (cosmos-sdk/db here an after) is a module in the Cosmos SDK repository. It is used in store/v2 instead of tendermint/tm-db which is now deprecated.
cosmos-sdk/db extends the tendermint/tm-db interface. however, it only supports BaggerDB and RocksDB (the databases we tested, which provide snapshot functionality necessary for store/v2 and ADR-040 implementation).

cosmos-sdk - v0.44.3

Published by amaury1729 almost 3 years ago

Cosmos SDK v0.44.3 Release Notes

This release introduces bug fixes and improvements on the Cosmos SDK v0.44 series.

The main performance improvement concerns gRPC queries, which are now able to run concurrently on the node (#10045). To benefit from this performance boost, make sure to send your gRPC queries to the gRPC server directly (default port 9090) instead of using the Tendermint RPC abci_query endpoint (default port 26657).

This release notably also:

  • bumps Tendermint to v0.34.14.
  • bumps the gin-gonic/gin version to 1.7.0 to fix the upstream security vulnerability.
  • adds a null guard with a user-friendly error message for possible nil Amount in tx fee Coins.

See the Cosmos SDK v0.44.3 milestone on our issue tracker for the exhaustive list of all changes.

cosmos-sdk - Cosmos SDK v0.44.2

Published by robert-zaremba about 3 years ago

Cosmos SDK v0.44.2 Release Notes

Recently, the Cosmos-SDK team became aware of a high-severity security vulnerability that impacts Cosmos-SDK v0.43.x and v0.44.x and can result in a consensus halt. User funds are NOT at risk; however, the vulnerability can result in a chain halt. This vulnerability does not impact the current Cosmos Hub, though other Cosmos-SDK based blockchains using v0.43.x or v0.44.x may be affected and are advised to update to v0.44.2 immediately.

Nodes can update their software independently of each other (no coordinated chain restart necessary), but should do so as soon as they are able.

A full disclosure will be published a week after the release.

cosmos-sdk - Cosmovisor v1.0.0 Release

Published by robert-zaremba about 3 years ago

Cosmovisor v1.0.0 Release Notes

This is the first major release of Cosmovisor. It changes the way Cosmovisor is searching for an upgrade event from an app. Instead of scanning standard input and standard output logs, the Cosmovisor observes the $DAEMON_HOME/upgrade-info.json file, that is produced by the x/upgrade module. The upgrade-info.json files is created by the x/upgrade module and contains information from the on-chain upgrade Plan record. Using the file based approach solved many outstanding problems: freezing when logs are too long, race condition with the x/upgrade handler, and potential exploit (if a chain would allow to log an arbitrary message, then an attacker could produce a fake upgrade signal and halt a chain or instrument a download of modified, hacked binary when the auto download option is enabled).

Auto downloads

Cosmovisor v1.0 supports auto downloads based on the information in the data/upgrade-info.json. In the Cosmos SDK < v0.44, that file doesn't contain upgrade.Plan.Info, that is needed for doing auto download. Hence Cosmovisor v1.0 auto download won't work with Apps updating from v0.43 and earlier.

NOTE: we don't recommend using auto download functionality. It can lead to potential chain halt when the upgrade Plan contains a bad link or the resource with the binary will be temporarily unavailable. We are planning on adding a upgrade verification command which can potentially solve this issue.

Other updates

  • Changed default value of DAEMON_RESTART_AFTER_UPGRADE to true.
  • Added version command, which prints both the Cosmovisor and the associated app version.
  • Added help command, which prints the Cosmovisor help without passing it to the associated version. This is an exception, because normally, Cosmovisor passes all arguments to the associated app.

For more details, please see the CHANGELOG.

cosmos-sdk - v0.42.10

Published by amaury1729 about 3 years ago

Cosmos SDK v0.42.10 "Stargate" Release Notes

This release includes a new AnteHandler that rejects redundant IBC transactions to save relayers fees. This is a backport of ibc-go #235.

v0.42.10 also includes multiple performance improvements, such as:

  • improve ABCI performance under concurrent load via Tendermint v0.34.13,
  • improve CacheKVStore datastructures / algorithms, to no longer take O(N^2) time when interleaving iterators and insertions.
  • bump IAVL to v0.17.1 which includes performance improvements on a batch load.

We fixed the keyring to use pre-configured data for add-genesis-account command.

Finally, when using the client.Context, we modified ABCI queries to use abci.QueryRequest's Height field if it is non-zero, otherwise continue using client.Context's height. This is a minor client-breaking change for users of the client.Context.

See the Cosmos SDK v0.42.10 milestone on our issue tracker for the exhaustive list of all changes.

cosmos-sdk - Cosmos SDK v0.44.0 Release Notes

Published by robert-zaremba about 3 years ago

v0.44 is a security release which contains a consensus breaking change.
It doesn't bring any new feature and it's a logical continuation of v0.43.

Consequences:

  • v0.43 is discontinued;
  • all chains should upgrade to v0.44. Update from v0.43 doesn't require any migration. Chains can upgrade directly from v0.42, in that case v0.43 migrations must be executed when upgrading to v0.44;
  • all previously planned features for v0.44 are going to land in v0.45, with the same release schedule.

Please see Cosmos SDK v0.43.0 Release Notes.

Updates

For a comprehensive list of all breaking changes and improvements since the v0.42 "Stargate" release series, please see the CHANGELOG.

Client Breaking Changes

  • Removed broadcast & encode legacy REST endpoints. Both requests should use the new gRPC-Gateway REST endpoints. Please see the REST Endpoints Migration guide to migrate to the new REST endpoints.
cosmos-sdk - Cosmos SDK v0.43.0 Release Notes

Published by amaury1729 about 3 years ago

This release introduces several new important updates to the Cosmos SDK. The release notes below provide an overview of the larger high-level changes introduced in the v0.43 release series.

That being said, this release does contain many more minor and module-level changes besides those mentioned below. For a comprehsive list of all breaking changes and improvements since the v0.42 "Stargate" release series, please see the CHANGELOG.

Two new modules: x/authz and x/feegrant

The v0.43 release focused on simplifying keys and fee management for SDK users, by introducing the two following modules:

  • x/feegrant allows one account, the "granter" to grant another account, the "grantee" an allowance to spend the granter's account balance for fees within certain well-defined limits. It solves the problem of signing accounts needing to possess a sufficient balance in order to pay fees.
  • x/authz provides functionality for granting arbitrary privileges from one account (the "granter") to another account (the "grantee"). These privileges, called Authorizations in the code, can for example allow grantees to execute Msgs on behalf of the granter.

These two modules have a slightly different folder structure compared to previously existing modules. For example, all Protobuf-generated files are generated in the module root folder instead of the types/ folder, and the module itself is defined inside a module sub-package. Moving forward, we believe this folder structure is clearer and sets a better example for module developers. To learn more about building modules following this structure, please read our building modules documentation.

ADR-028 Addresses

In the SDK versions v0.42 and earlier, addresses were all 20-bytes long, generated by truncating the first 20 bytes of the SHA-256 hash of some given bytes (e.g. the public key for normal accounts, or the module name for module accounts). Unfortunately, this significantly decreases the security of Cosmos SDK due to address space collisions.

ADR-028 introduces a new specification for deriving addresses for all kinds of addressable accounts. Following is a quick summary:

  • secp256k1 public keys still have 20-byte addresses to keep backwards-compatibility,
  • new public key types (e.g. ed25519) and module accounts will have 32-byte address to increase collision resistance,
  • new algorithms have also been specified for composed accounts (like multisigs) or derived accounts (like module sub-accounts).

Link to ADR-028.

ADR-041 In-place store migrations

Chain upgrades were historically done with the Cosmos SDK by creating an upgrade proposal, halting the chain at the given height, exporting state to a JSON file, making the necessary JSON file changes, and creating a new chain with the modified JSON file as genesis. This procedure is tedious, and could take up to several hours.

Cosmos SDK v0.43 introduces a new way of handling upgrades. When an upgrade happens, instead of starting a new chain, the new binary will read the existing database, and perform in-place modifications of the store. We expect this method to significantly reduce the migration time.

For more information:

  • see the upgrading modules documentation to learn how to modify your module to be able to support in-place store migrations,
  • check out how to set up an upgrade handler that perform in-place store migrations in your app.go,
  • read ADR-041 introducing this feature.

Protobuf Client-Side Breaking Changes

In this release, we deprecated a couple of fields in our Protobuf definitions. When using these fields, some changes in behavior might occur whether you're hitting an v0.42 or a v0.43 node.

  • cosmos.gov.v1beta1.Vote#option is deprecated in favor of cosmos.gov.v1beta1.Vote#options (with an "s") to support x/gov split votes. There are no breaking changes in Msgs, as a new MsgWeightedVote has been added to support split votes. However, when querying, the deprecated option field is populated only when the underlying vote has one VoteOption with weight 1. For other split votes, the option field will be equal to OptionEmpty.
  • cosmos.upgrade.v1beta1.Plan#time is deprecated, because the SDK stops supporting time-based upgrades in favor or height-based upgrades. If an upgrade Plan is created with a non-empty time, the node will error.
  • cosmos.upgrade.v1beta1.Plan#upgraded_client_state is deprecated as IBC logic has been moved to the IBC repo. If this field is set, the node will error.

The SDK team is planning to document Protobuf change process using an ADR. It will be a guideline for all chain developers, follow #9477 for more info.

cosmos-sdk - Cosmovisor v0.1.0 Release Notes

Published by robert-zaremba about 3 years ago

This is the first tracked release of Cosmovisor. It contains the original behavior of scanning app stdin and stdout.
Since the original design, this release contains one important feature: state backup. Since v0.1, by default, cosmovisor will make a state backup (<app_directory>/data directory). Backup will be skipped if UNSAFE_SKIP_BACKUP=true is set.

Updates to this release will be pushed to release/cosmovisor/v0.1.x branch.

Please see the CHANGELOG for more details.

cosmos-sdk - Cosmos SDK v0.43.0-RC3 Release Notes

Published by robert-zaremba about 3 years ago

This is a fourth Release Candidate for v0.43. If no issue will be reported this will be the final release.

This release contains two major bug fixes:

  • This release includes an important x/capabiliy module bug fix which prohibited IBC to create new channels (issue #9800).
    The fix introduces an API-breaking change by removing the x/capability/keeper/Keeper.InitializeAndSeal method and replaces it with Seal(). It also requires app developers to update their app module manager by adding x/capability module to BeginBlockers before any other module's BeginBlocker.
  • #9793 Fixed ECDSA/secp256r1 transaction malleability.

One client-breaking change has also been introduced to fix an emitted event:

  • #9785 Fix missing coin denomination in logs when emitting the create_validator event.

It also includes a couple of minor fixes and improvements:

  • #9750 Emit events for tx signature and sequence, so clients can now query txs by signature (tx.signature='<base64_sig>') or by address and sequence combo (tx.acc_seq='<addr>/<seq>').
  • Multiple CLI UX improvements. Notably, we changed <app> tx distribution withdraw-all-rewards CLI by forcing the broadcast mode if a chunk size is greater than 0. This will ensure that the transactions do not fail even if the user uses invalid broadcast modes for this command (sync and async). This was requested by the community and we consider it as fixing the withdraw-all-rewards behavior.

Please see the CHANGELOG for more details.

cosmos-sdk - Cosmos SDK v0.42.9 "Stargate" Release Notes

Published by robert-zaremba about 3 years ago

This release includes an important x/capabiliy module bug fix for 0.42.7 and 0.42.8 which prohibits IBC to create new channels (issuse #9800).
The fix changes the x/capability/keeper/Keeper.InitializeAndSeal method behavior and requires to update an app module manager by adding x/capability module to Begin Blockers.

We also fixed <app> init --recovery mode where the mnemonic was not handled correctly.

We also changed <app> tx distribution withdraw-all-rewards CLI by forcing the broadcast mode if a chunk size is greater than 0. This will ensure that the transactions do not fail even if the user uses invalid broadcast modes for this command (sync and async). This was requested by the community and we consider it as fixing the withdraw-all-rewards behavior.

See the Cosmos SDK v0.42.9 milestone on our issue tracker for the exhaustive list of all changes.

cosmos-sdk - Cosmos SDK v0.42.8 "Stargate" Release Notes

Published by robert-zaremba about 3 years ago

This release includes various minor bug fixes and improvements, including:

  • emit events for tx signature and sequence, so clients can now query txs by signature (tx.signature='<base64_sig>') or by address and sequence combo (tx.acc_seq='<addr>/<seq>'),
  • support other signing algorithms than secp256k1 with --ledger in with the CLI keys add command,
  • add missing documentation for CLI flag --output json/text to all tx cli commands.

See the Cosmos SDK v0.42.8 milestone on our issue tracker for the exhaustive list of all changes.

cosmos-sdk - Cosmos SDK v0.43.0-RC2 Release Notes

Published by robert-zaremba over 3 years ago

This is a third Release Candidate for v0.43. If no issue will be reported this will be the final release.

This release contains one bug fix:

  • (server) #9704 Start GRPCWebServer in goroutine, avoid blocking other services from starting.
cosmos-sdk - Cosmos SDK v0.43.0-RC1 Release Notes

Published by robert-zaremba over 3 years ago

Cosmos SDK v0.43.0-RC1 Release Notes

This is a second Release Candidate for v0.43. If no issue will be reported this will be the final release.

There are 3 changes since v0.43.0-rc0:

  • FIX https://github.com/cosmos/cosmos-sdk/issues/9159: (bank) Added migration to prune balances with zero coins (backport #9664).
  • #9593 Error on tx multisign command if chain-id is blank. This is a common cause of signature verification failures when combining signatures and the error message doesn't provide any clues to this common cause.
  • #9621 Rollback #9371 and log warning if there's an empty value for min-gas-price in app.toml. During QA testing we found that this change will break nodes which will forget to set the min-gas-price. This is an issue for chains running with cosmovisor - the node will not be able to start without a manual intervention. So we decided to make a warning. In the next release (v0.44) this will be an error (w will bring back #9371).

Read Release Notes and v0.43.0-rc0 notes for all updates related to v0.43.0 release.

cosmos-sdk - v0.42.7

Published by robert-zaremba over 3 years ago

Cosmos SDK v0.42.7 "Stargate" Release Notes

This is minor release porting few bug fixes and backward compatible improvements. See the Cosmos SDK v0.42.7 milestone for more details.

Improvements

  • (baseapp) #9578 Return Baseapp's trace value for logging error stack traces.
  • (cli) #9593 Check if chain-id is blank before verifying signatures in multisign and error.

Bug Fixes

  • (x/ibc) #9640 Fix IBC Transfer Ack Success event as it was initially emitting opposite value.
  • #9645 Use correct Prometheus format for metric labels.
  • #9299 Fix [appd] keys parse cosmos1... freezing.
  • (keyring) #9563 fix keyring kwallet backend when using with an empty wallet.
cosmos-sdk - v0.43.0-rc0

Published by ryanchristo over 3 years ago

Cosmos SDK v0.43.0-RC0 Release Notes

This release introduces several new important updates to the Cosmos SDK. The release notes below provide an overview of the larger high-level changes introduced in the v0.43 release series.

That being said, this release does contain many more minor and module-level changes besides those mentioned below. For a comprehsive list of all breaking changes and improvements since the v0.42 "Stargate" release series, please see the CHANGELOG.

Two new modules: x/authz and x/feegrant

The v0.43 release focused on simplifying keys and fee management for SDK users, by introducing the two following modules:

  • x/feegrant allows one account, the "granter" to grant another account, the "grantee" an allowance to spend the granter's account balance for fees within certain well-defined limits. It solves the problem of signing accounts needing to possess a sufficient balance in order to pay fees.
  • x/authz provides functionality for granting arbitrary privileges from one account (the "granter") to another account (the "grantee"). These privileges, called Authorizations in the code, can for example allow grantees to execute Msgs on behalf of the granter.

These two modules have a slightly different folder structure compared to previously existing modules. For example, all Protobuf-generated files are generated in the module root folder instead of the types/ folder, and the module itself is defined inside a module sub-package. Moving forward, we believe this folder structure is clearer and sets a better example for module developers. To learn more about building modules following this structure, please read our building modules documentation.

ADR-028 Addresses

In the SDK versions v0.42 and earlier, addresses were all 20-bytes long, generated by truncating the first 20 bytes of the SHA-256 hash of some given bytes (e.g. the public key for normal accounts, or the module name for module accounts). Unfortunately, this significantly decreases the security of Cosmos SDK due to address space collisions.

ADR-028 introduces a new specification for deriving addresses for all kinds of addressable accounts. Following is a quick summary:

  • secp256k1 public keys still have 20-byte addresses to keep backwards-compatibility,
  • new public key types (e.g. ed25519) and module accounts will have 32-byte address to increase collision resistance,
  • new algorithms have also been specified for composed accounts (like multisigs) or derived accounts (like module sub-accounts).

Link to ADR-028.

ADR-041 In-place store migrations

Chain upgrades were historically done with the Cosmos SDK by creating an upgrade proposal, halting the chain at the given height, exporting state to a JSON file, making the necessary JSON file changes, and creating a new chain with the modified JSON file as genesis. This procedure is tedious, and could take up to several hours.

Cosmos SDK v0.43 introduces a new way of handling upgrades. Whan an upgrade happens, instead of starting a new chain, the new binary will read the existing database, and perform in-place modifications of the store. We expect this method to significantly reduce the migration time.

For more information:

  • see the upgrading modules documentation to learn how to modify your module to be able to support in-place store migrations,
  • check out how to set up an upgrade handler that perform in-place store migrations in your app.go,
  • read ADR-041 introducing this feature.

Protobuf Client-Side Breaking Changes

In this release, we deprecated a couple of fields in our Protobuf definitions. When using these fields, some changes in behavior might occur whether you're hitting an v0.42 or a v0.43 node.

  • cosmos.gov.v1beta1.Vote#option is deprecated in favor of cosmos.gov.v1beta1.Vote#options (with an "s") to support x/gov split votes. There are no breaking changes in Msgs, as a new MsgWeightedVote has been added to support split votes. However, when querying, the deprecated option field is populated only when the underlying vote has one VoteOption with weight 1. For other split votes, the option field will be equal to OptionEmpty.
  • cosmos.upgrade.v1beta1.Plan#time is deprecated, because the SDK stops supporting time-based upgrades in favor or height-based upgrades. If an upgrade Plan is created with a non-empty time, the node will error.
  • cosmos.upgrade.v1beta1.Plan#upgraded_client_state is deprecated as IBC logic has been moved to the IBC repo. If this field is set, the node will error.

The SDK team is planning to document Protobuf change process using an ADR. It will be a guideline for all chain developers, follow #9477 for more info.

cosmos-sdk - v0.42.6

Published by amaury1729 over 3 years ago

Cosmos SDK v0.42.6 "Stargate" Release Notes

This release includes various minor bugfixes and improvments, including:

  • x/bank's InitGenesis optimization, which should significantly decrease genesis initialization time,
  • bump Tendermint to v0.34.11 to fix state sync issues,
  • add cosmos_sdk_version to node_info to be able to query the SDK version used by a node,
  • IBC bugfixes and improvements (see below for more info),
  • new fields on sdk.Context (see below for more info).

See the Cosmos SDK v0.42.6 milestone on our issue tracker for the exhaustive list of all changes.

IBC Bugfixes and Improvements

The [appd] query ibc client header is fixed and allows querying by height for the header and node-state command. This allows easier venerability of which IBC tokens belong to which chains. IBC's ExportGenesis now exports all fields, including previously missing NextClientSequence, NextConnectionSequence and NextChannelSequence. A new subcommand [appd] query ibc-transfer escrow-address has been added to get the escrow address for a channel; it can be used to then query balance of escrowed tokens.

New Fields on sdk.Context

Two fields have been added on sdk.Context:

  • ctx.HeaderHash adds the current block header hash obtained during abci.RequestBeginBlock to the Context,
  • ctx.GasMeter().RefundGas(<amount>, <description>) adds support for refunding gas directly to the gas meter.
cosmos-sdk - v0.42.5

Published by amaury1729 over 3 years ago

Cosmos SDK v0.42.5 "Stargate" Release Notes

This release includes various minor bugfixes and improvments, including:

  • Fix support for building the Cosmos SDK on ARM architectures,
  • Fix the [appd] keys show/list CLI subcommands for multisigs,
  • Internal code performance improvment.

It also introduces one new feature: adding the [appd] config subcommand back to the SDK.

See the Cosmos SDK v0.42.5 milestone on our issue tracker for the exhaustive list of all changes.

The config Subcommand

One new feature introduced in the Stargate series was the merging of the two CLI binaries [appd] and [appcli] into one single application binary. In this process, the [appcli] config subcommand, which was used to save client-side configuration into a TOML file, was removed.

Due to popular demand, we have introduced this feature back to the SDK, under the [appd] config subcommand. The functionality is as follows:

  • [appd] config: Output all client-side configuration.
  • [appd] config [config-name]: Get the given configuration (e.g. keyring-backend or node-id).
  • [appd] config [config-name] [config-value]: Set and persist the given configuration with the new value.

All configurations are persisted to the filesystem, under the path $APP_HOME/config/client.toml. For the list of all possible client-side configurations, please have a look at this client.toml file, as it is heavily commented.

Environment variables binding to client-side configuration also works. For example, the command KEYRING_BACKEND=os [appd] tx bank send ... will bind ENV variable to the keyring-backend config. The order or precedence for config is: flags > env vars > client.toml file.

cosmos-sdk - v0.43.0-beta1

Published by clevinson over 3 years ago

Features

  • (x/staking) #9214 Added new_shares attribute inside EventTypeDelegate event.

Client Breaking Changes

  • #9134 Renamed the CLI flag --memo to --note.
  • #9139 Querying events:
    • via ServiceMsg TypeURLs (e.g. message.action='/cosmos.bank.v1beta1.Msg/Send') does not work anymore,
    • via legacy msg.Type() (e.g. message.action='send') is being deprecated, new Msgs won't emit these events.
    • Please use concrete Msg TypeURLs instead (e.g. message.action='/cosmos.bank.v1beta1.MsgSend').
  • #9291 Migration scripts prior to v0.38 have been removed from the CLI migrate command. The oldest supported migration is v0.39->v0.42.

API Breaking Changes

  • (codec) #9226 Rename codec interfaces and methods, to follow a general Go interfaces:
    • codec.Marshalercodec.Codec (this defines objects which serialize other objects)
    • codec.BinaryMarshalercodec.BinaryCodec
    • codec.JSONMarshalercodec.JSONCodec
    • Removed BinaryBare suffix from BinaryCodec methods (MarshalBinaryBare, UnmarshalBinaryBare, ...)
    • Removed Binary infix from BinaryCodec methods (MarshalBinaryLengthPrefixed, UnmarshalBinaryLengthPrefixed, ...)
  • #9139 ServiceMsg TypeURLs (e.g. /cosmos.bank.v1beta1.Msg/Send) have been removed, as they don't comply to the Probobuf Any spec. Please use Msg type TypeURLs (e.g. /cosmos.bank.v1beta1.MsgSend). This has multiple consequences:
    • The sdk.ServiceMsg struct has been removed.
    • sdk.Msg now only contains ValidateBasic and GetSigners methods. The remaining methods GetSignBytes, Route and Type are moved to legacytx.LegacyMsg.
    • The RegisterCustomTypeURL function and the cosmos.base.v1beta1.ServiceMsg interface have been removed from the interface registry.
  • (codec) #9251 Rename clientCtx.JSONMarshaler to clientCtx.JSONCodec as per #9226.
  • (x/bank) #9271 SendEnabledCoin(s) renamed to IsSendEnabledCoin(s) to better reflect its functionality.
  • #9235 CreateMembershipProof/CreateNonMembershipProof now returns an error
    if input key is empty, or input data contains empty key.

Improvements

  • #9205 Improve readability in abci handleQueryP2P

Bug Fixes

  • (x/bank) #9229 Now zero coin balances cannot be added to balances & supply stores. If any denom becomes zero corresponding key gets deleted from store.