github cosmos/cosmos-sdk v0.40.0-rc0

latest releases: v0.47.13-ics-lsm, x/upgrade/v0.1.2, x/nft/v0.1.1...
pre-release3 years ago

Cosmos SDK v0.40.0 "Stargate" 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.40 (aka Stargate) 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.39 release series, please see the changelog.

Protocol Buffer Migration

Stargate introduces protocol buffers as the new standard serialization format for blockchain state & wire communication within the Cosmos SDK. Protobuf definitions are organized into packages that mirror Cosmos SDK modules in the new ./proto directory of the SDK repo.

For an overview of the SDK's usage of protocol buffers, please look at the following ADRs and meta-issues which tracked the corresponding work:

As a high level summary these represent the following major changes to the SDK:

  • New protocol buffer based encoding for all blockchain state (direct queries to tendermint now return protobuf binary encoded data, as opposed to Amino encoded data)
  • New transaction signing path implemented according to ADR020 above
  • Two new querier APIs (see #5921 for details)
    • Support for new gRPC based querier services
    • gRPC Gateway for REST querying corresponding to the new gRPC querier services

Note: Existing Amino REST endpoints are all preserved, though they are planned to be deprecated in a future release.

Inter Blockchain Communication (IBC)

The x/ibc module is now available and ready for use. High level IBC documentation is available at docs.cosmos.network. For more details check the the module documentation in the x/ibc/core/spec directory, or the ICS specs below:

Single application binary #6571

Cosmos SDK now compiles to a single application binary, as opposed to seperate binaries for running a node and one for the CLI & REST server.

We've now included a barebones application simapp / simd for testing and demonstrating how an SDK application should be constructed.

Details of the CLI refactor can be found here.

Test Network Testing Framework #6489

Introduction of the testutil package. This package allows the creation of an entirely in-process testing cluster with fully operational Tendermint nodes constructed with SimApp. Each node has an RPC & API exposed. In addition, the network exposes a Local client that can be used to directly interface with Tendermint's RPC. The test network is entirely configurable.

Tendermint 0.34 #6365

Update to the latest version of tendermint which adds support for the following (in addition many other improvements):

  • ABCI update to give application control over block pruning
  • Support for arbitrary initial block height
  • Support for State Sync
  • Evidence handling for new types of evidence submitted by Tendermint from light clients

A more detailed list of Tendermint updates can be found here.

Don't miss a new cosmos-sdk release

NewReleases is sending notifications on new releases.