Skip to content

v0.40.0

Compare
Choose a tag to compare
@clevinson clevinson released this 08 Jan 22:55
a334a59

Cosmos SDK v0.40.0 "Stargate"

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

For details on how to upgrade Cosmos SDK based apps and modules to Stargate, please see
App and Modules Migration in the Cosmos SDK docs.

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.1 #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.