Skip to content
Cosmopediaby Unity Nodes
ReleasesSDKv0.40.0-rc0GitHub ↗

v0.40.0-rc0

cosmos/cosmos-sdkv0.40.0-rc013-10-2020prerelease

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:

• ADR019 Protobuf State Encoding / Full Proto Encoding (#5444)

• ADR020 Protobuf Transaction Encoding / Proto Any Tx Migration (#6213)

• ADR021 Protobuf Query Encoding / Query Protobuf Migration (#5921)

• ADR023 Protobuf Naming Conventions

• ADR027 Deterministic Protobuf Serialization

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:

• ICS 002 - Client Semantics subpackage

• ICS 003 - Connection Semantics subpackage

• ICS 004 - Channel and Packet Semantics subpackage

• ICS 005 - Port Allocation subpackage

• ICS 006 - Solo Machine Client subpackage

• ICS 007 - Tendermint Client subpackage

• ICS 009 - Loopback Client subpackage

• ICS 020 - Fungible Token Transfer subpackage

• ICS 023 - Vector Commitments subpackage

• ICS 024 - Host State Machine Requirements subpackage

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 .

← Back to Releases