-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
1 parent
e474138
commit df5bf85
Showing
2 changed files
with
36 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |