Skip to content

Commit

Permalink
Backport/changelog (#8390)
Browse files Browse the repository at this point in the history
* Update changelog for 0.40.1

* add tendermint

* Add release notes

* add known issues

* update

* update release notes

* fix a few things in CHANGELOG

* Update RELEASE_NOTES.md

Co-authored-by: Alessio Treglia <alessio@tendermint.com>
  • Loading branch information
robert-zaremba and Alessio Treglia authored Jan 19, 2021
1 parent e474138 commit df5bf85
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 62 deletions.
13 changes: 10 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,24 @@ Ref: https://keepachangelog.com/en/1.0.0/

# Changelog

## [Unreleased]

## [v0.40.1](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.40.1) - 2021-01-19

### Improvements

* (x/bank) [\#8302](https://github.com/cosmos/cosmos-sdk/issues/8302) Add gRPC and CLI queries for client denomination metadata.
* (tendermint) Bump Tendermint version to [v0.34.3](https://github.com/tendermint/tendermint/releases/tag/v0.34.3).

### Bug Fixes

* (x/bank) [\#8317](https://github.com/cosmos/cosmos-sdk/pull/8317) Fix panic when querying for a not found client denomination metadata.
* [\#8085](https://github.com/cosmos/cosmos-sdk/pull/8058) fix zero time checks
* [\#8280](https://github.com/cosmos/cosmos-sdk/pull/8280) fix GET /upgrade/current query
* (x/auth) [\#8287](https://github.com/cosmos/cosmos-sdk/pull/8287) Fix `tx sign --signature-only` to return correct sequence value in signature.
* (build) [\8300](https://github.com/cosmos/cosmos-sdk/pull/8300), [\8301](https://github.com/cosmos/cosmos-sdk/pull/8301) Fix reproducible builds
* (types/errors) [\#8355][https://github.com/cosmos/cosmos-sdk/pull/8355] Fix errorWrap `Is` method.
* (x/ibc) [\#8341](https://github.com/cosmos/cosmos-sdk/pull/8341) Fix query latest consensus state.
* (proto) [\#8350][https://github.com/cosmos/cosmos-sdk/pull/8350], [\#8361](https://github.com/cosmos/cosmos-sdk/pull/8361) Update gogo proto deps with v1.3.2 security fixes
* (x/ibc) [\#8359](https://github.com/cosmos/cosmos-sdk/pull/8359) Add missing UnpackInterfaces functions to IBC Query Responses. Fixes 'cannot unpack Any' error for IBC types.
* (x/bank) [\#8317](https://github.com/cosmos/cosmos-sdk/pull/8317) Fix panic when querying for a not found client denomination metadata.


## [v0.40.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.40.0) - 2021-01-08
Expand Down
85 changes: 26 additions & 59 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,45 @@
# Cosmos SDK v0.40.0 "Stargate" Release Notes
# Cosmos SDK v0.40.1 "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.
This is a bug fix release to the *Cosmos SDK 0.40* "Stargate" release series. No breaking changes are introduced, thus no migration should be needed.
Among the various bugfixes, this release introduces important security patches.

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](https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/CHANGELOG.md).
See the [Cosmos SDK v0.40.1 milestone](https://github.com/cosmos/cosmos-sdk/milestone/36?closed=1) on our issue tracker for details.

## Protocol Buffer Migration
### Gogo protobuf security release

Stargate introduces [protocol buffers](https://developers.google.com/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](https://github.com/cosmos/cosmos-sdk/tree/master/proto) directory
of the SDK repo.
[Gogoprotobuf](https://github.com/gogo/protobuf) released a bugfix addressing [CVE-2021-3121](https://nvd.nist.gov/vuln/detail/CVE-2021-3121). Cosmos SDK respective dependency has been updated and protobuf generated files were regenerated.

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](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-019-protobuf-state-encoding.md) / [Full Proto Encoding (#5444)](https://github.com/cosmos/cosmos-sdk/issues/5444)
- [ADR020 Protobuf Transaction Encoding](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-020-protobuf-transaction-encoding.md) / [Proto Any Tx Migration (#6213)](https://github.com/cosmos/cosmos-sdk/issues/6213)
- [ADR021 Protobuf Query Encoding](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-021-protobuf-query-encoding.md) / [Query Protobuf Migration (#5921)](https://github.com/cosmos/cosmos-sdk/issues/5921)
- [ARD031 Protobuf Msg Services](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-031-msg-service.md)
- [ADR023 Protobuf Naming Conventions](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-023-protobuf-naming.md)
- [ADR027 Deterministic Protobuf Serialization](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-027-deterministic-protobuf-serialization.md)
### Tendermint security patches

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](https://github.com/cosmos/cosmos-sdk/issues/5921) for details)
- Support for new gRPC based querier services
- gRPC Gateway for REST querying corresponding to the new gRPC querier services
This release comes with a newer release of Tendermint that, other than fixing various bugs it also addresses a high-severity security vulnerability.
For the comprehensive list of changes introduced by Tendermint since Cosmos SDK v0.40.0, please refer to [Tendermint's v0.34.3 release notes](https://github.com/tendermint/tendermint/blob/v0.34.3/CHANGELOG.md#v0.34.3).

For details on how to upgrade Cosmos SDK based apps and modules to Stargate, please see
[App and Modules Migration](https://docs.cosmos.network/master/migrations/app_and_modules.html) in the Cosmos SDK docs.
### Fix zero time checks

**Note:** Existing Amino REST endpoints are all preserved, though they are planned to be deprecated in a future release.
In Cosmos SDK applications, it is recommended to use `Time.Unix() <= 0` instead of `Time.IsZero()`, which may lead to unexpected results.
See [\#8085](https://github.com/cosmos/cosmos-sdk/pull/8058) for more information.

## Inter Blockchain Communication (IBC)
### Querying upgrade plans panics when no plan exists

The `x/ibc` module is now available and ready for use. High level IBC documentation is available at [docs.cosmos.network](https://docs.cosmos.network/master/ibc/overview.html). For more details check the the module documentation in the [`x/ibc/core/spec`](https://github.com/cosmos/cosmos-sdk/tree/master/x/ibc/core/spec) directory, or the ICS specs below:
* [ICS 002 - Client Semantics](https://github.com/cosmos/ics/tree/master/spec/ics-002-client-semantics) subpackage
* [ICS 003 - Connection Semantics](https://github.com/cosmos/ics/blob/master/spec/ics-003-connection-semantics) subpackage
* [ICS 004 - Channel and Packet Semantics](https://github.com/cosmos/ics/blob/master/spec/ics-004-channel-and-packet-semantics) subpackage
* [ICS 005 - Port Allocation](https://github.com/cosmos/ics/blob/master/spec/ics-005-port-allocation) subpackage
* [ICS 006 - Solo Machine Client](https://github.com/cosmos/ics/tree/master/spec/ics-006-solo-machine-client) subpackage
* [ICS 007 - Tendermint Client](https://github.com/cosmos/ics/blob/master/spec/ics-007-tendermint-client) subpackage
* [ICS 009 - Loopback Client](https://github.com/cosmos/ics/tree/master/spec/ics-009-loopback-client) subpackage
* [ICS 020 - Fungible Token Transfer](https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer) subpackage
* [ICS 023 - Vector Commitments](https://github.com/cosmos/ics/tree/master/spec/ics-023-vector-commitments) subpackage
* [ICS 024 - Host State Machine Requirements](https://github.com/cosmos/ics/tree/master/spec/ics-024-host-requirements) subpackage
The `x/upgrade` module command and REST endpoints for querying upgrade plans would panic when no plan existed. This is now resolved.

## Single application binary [#6571](https://github.com/cosmos/cosmos-sdk/pull/6571)
### Fix account sequence

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.
In Cosmos SDK v0.40.0 a new structure (`SignatureV2`) for handling message signatures was introduced.
Although the `tx sign --signature-only` command was still capable of generating correct signatures, it was not returning the account's correct sequence number.

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

Details of the CLI refactor can be found [here](https://github.com/cosmos/cosmos-sdk/issues/6571).
Our automatic builds were not working correctly due to small gaps in file paths. Fixed in [\8300](https://github.com/cosmos/cosmos-sdk/pull/8300) and [\8301](https://github.com/cosmos/cosmos-sdk/pull/8301).

## Test Network Testing Framework [#6489](https://github.com/cosmos/cosmos-sdk/pull/6489)
### Wrapper errors were not reflective

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.
Cosmos SDK errors typically support the `Is()` method. The `Go` `errors.Is()` function compares an error to a value and should always return `true` when the receiver is passed as an argument to its own method, e.g. `err.Is(err)`. This was not a case for the error types provided by the `types/errors` package.

## Tendermint 0.34.1 [#6365](https://github.com/cosmos/cosmos-sdk/issues/6365)
### Fix latest consensus state

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
Errors occur when using the client to send IBC transactions without flag `--absolute-timeouts`, e.g:

A more detailed list of Tendermint updates can be found [here](https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0340-rc4).
gaiad tx ibc-transfer transfer

The issue was caused by incorrect interface decoding and unpacking of `Any` values and is now fixed.

0 comments on commit df5bf85

Please sign in to comment.