A Framework for Building High Value Public Blockchains
APACHE-2.0 License
Bot releases are hidden (Show)
Published by aaronc over 3 years ago
tx
commands generate ServiceMsgs by default. Graceful Amino support has been added to ServiceMsgs to support signing legacy Msgs.simd migrate v0.40 ...
command has been renamed to simd migrate v0.42
.MarshalAny
and UnmarshalAny
to MarshalInterface
and UnmarshalInterface
respectively. These functions must take an interface as parameter (not a concrete type nor Any
object). Underneath they use Any
wrapping for correct protobuf serialization.--text
flag from show-node-id
command; the text format for public keys is not used any more - instead we use ProtoJSON.AddAmount
/SubAmount
methods to sdk.Coin
.stderr
by defaultNewMnemonic
now receives an additional passphrase
argument to secure the key generated by the bip39 mnemonic.SetBalance
, SetSupply
etc.InfoImporter
interface is removed from legacy keybase.SetFullFundraiserPath
from Config
in favor of SetPurpose
and SetCoinType
.SupplyI
interface and Supply
are removed and uses sdk.Coins
for supply trackingUpgradeHandler
includes a new argument VersionMap
which helps facilitate in-place migrations.SigVerifiableTx.GetPubKeys
method signature to return error.Keeper
takes new argument ProtocolVersionSetter
which implements setting a protocol version on baseapp.ante.NewAnteHandler
updated to receive all positional params as ante.HandlerOptions
struct. If required fields aren't set, throws error accordingly.ValidatorI
interface update: GetConsPubKey
renamed to TmConsPubKey
(this is to clarify the return type: consensus public key must be a tendermint key); TmConsPubKey
, GetConsAddr
methods return error.Validator
updated according to the ValidatorI
changes described above.ToTmValidator
function: added error
to return values.Validator.ConsensusPubkey
type changed from string
to codectypes.Any
.MsgCreateValidator.Pubkey
type changed from string
to codectypes.Any
.client/tx.PrepareFactory
has been converted to a private function, as it's only used internally.ProtoTxProvider
interface used as a workaround for transaction simulation has been removed.GetTotalSupply
is removed in favour of GetPaginatedTotalSupply
AddressFromBalancesStore
now returns an error for invalid key instead of panic.HandleEquivocationEvidence
persists the evidence to state.coin_spent
, coin_received
, coinbase
and burn
events.sdk.Coins
sdk.Int
rather than string
.Name
and Symbol
fields to denom metadataCompactBitArray
: optimize the NumTrueBitsBefore
method and add an Equal
method.Abs()
method to sdk.Int
.NewMnemonic
GET /bank/total
and GET /bank/total/{denom}
in swaggertx
field in SimulateRequest
has been deprecated, prefer to pass tx_bytes
instead.Published by clevinson over 3 years ago
This release includes an important Tendermint update that fixes a security issue with Tendermint light clients. For more information, see Tendermint v0.34.9 release notes.
See the Cosmos SDK v0.42.4 milestone on our issue tracker for further details.
Published by alessio over 3 years ago
This release fixes security vulnerability identified in the simapp.
See the Cosmos SDK 0.39.3 milestone on our issue tracker for details.
Published by alessio over 3 years ago
This release fixes a security vulnerability identified in x/bank.
Published by alessio over 3 years ago
This maintenance release includes various bugfixes and performance improvements, and it does not introduce any breaking changes.
See the Cosmos SDK v0.42.2 milestone on our issue tracker for further details.
A number of macOS users have reported that their operating system's keychain
prompt them for password to unlock the
keyring when using the os
backend before executing any action. This release includes a small fix that automatically
adjusts applications keyring trust so that users are prompted for password only once when the keyring is unlocked.
Although the Tendermint Core's RPC tx_search
endpoint has been supporting an order-by parameter for quite some time now,
the Cosmos SDK did not respect the order-by parameter and incorrectly set the requests order-by to "" (null).
This releases introduces the relevant order-by parameter support when searching through Txs.
This release includes a bug fix for a v0.39 to v0.42 migration issue affecting genesis files that contain
multisig accounts.
Published by robert-zaremba over 3 years ago
This release fixes security vulnerability identified in the simapp.
Published by alessio over 3 years ago
This release includes an important security fix for all non Cosmos Hub
chains (e.g. any chain that does not use the default cosmos
bech32 prefix), and a few performance improvements.
See the Cosmos SDK v0.42.0 milestone on our issue tracker for further details.
The security fix resolves the issue regarding incorrect handling of validators' consensus addresses. Because of this incorrect handling, Cosmos SDK apps that were not using the default cosmos
Bech32 address prefix were not able to jail validators that committed misbehaviors such as double signing.
Although the issue does not affect the Cosmos Hub, this issue potentially renders the v0.41
and v0.40
release series unsafe for most chains.
The event emitted by the IBC UpdateClient message now contains the full header.
This change makes header tracking easier and improves the handling of misbehaviors.
Published by alessio over 3 years ago
This release includes the addition of the multisign-batch command, minor bug fixes, and performance improvements.
See the Cosmos SDK v0.41.4 milestone on our issue tracker for details.
Multisign-batch command was added and it allows generating multiple multisig transactions by merging batches of signatures.
Now the rest endpoint allows to query transactions with multisig addresses.
Major performance improvements in store and balance which will speed up genesis verification and initialization.
Genesis now allows 0 coin account balances. This means that genesis initialization will not fail if an address with no balance will be included.
The keys migration command (i.e. keys migrate
) is now functional for offline, multisign, and ledger keys.
Minor bugfixes were included regarding missing errors and fields on some responses.
Tendermint was upgraded to v0.34.8. This release of Tendermint introduces various changes that should make the logs much, much quieter. See Tendermint's changelog for more information.
Published by clevinson over 3 years ago
Pre-release of v0.42.0
, which includes the introduction of:
x/authz
x/fee_grant
More details can be found in the github milestone here.
Published by alessio over 3 years ago
This release fixes a build failure caused by a small API breakage introduced in Tendermint v0.34.7. It is highly recommended that all applications using v0.41.2 upgrade to v0.41.3 as soon as possible.
See the Cosmos SDK v0.41.3 milestone on our issue tracker for details.
IMPORTANT: Due to a bug in the v0.41.x
series with how evidence handles validator consensus addresses (#8461), SDK based chains that are not using the default bech32 prefix (cosmos
, aka all chains except for the Cosmos Hub) should not use this release or any release in the v0.41.x
series. Please see #8668 for tracking & timeline for the v0.42.0 release, which will include a fix for this issue.
Published by alessio over 3 years ago
This release upgrades Tendermint to v0.34.7, and does not introduce any breaking changes. It is highly recommended that all applications using v0.41.1 upgrade to v0.41.2 as soon as possible.
Operators running nodes that manage their keys through the Tendermint's FilePV
implementation were
susceptible to leaking private keys material in the logs. The issue is now fixed in Tendermint v0.34.5 and later versions.
For more information regarding the patch, please refer to Tendermint's changelog.
Published by alessio over 3 years ago
This release includes two security patches, and does not introduce any breaking changes. It is highly recommended that all applications using v0.41.0 upgrade to v0.41.1 as soon as possible.
See the Cosmos SDK v0.41.1 milestone on our issue tracker for details.
When Tendermint commits a new block, the versions
map in IAVL MutableTree is updated. If, at the same time, a concurrent gRPC request is performed, it will read the same versions
map, causing the node to crash.
The patch consists of routing all gRPC requests through ABCI. The Go implementation of ABCI uses global lock on all requests, making them linearizable (received one at a time) which in turn prevents concurrent map reads and writes.
We are exploring on ways of introducing concurrent gRPC queries in #8591.
This bug has been reported via HackerOne.
GetValidator
cache mapThe x/staking
keeper holds an internal validatorCache
cache map of validators. When multipile gRPC queries are performed simulataneously, concurrent reads and writes of this map can happen, causing the node to crash.
The patch removes the validatorCache
altogether. Benchmarks show that the removal of the cache map even increases performance.
Is is important to note that the Security Patch #1 should also fix this bug, as it forces synchronous gRPC queries and therefore synchronous map reads/writes. However, it was deemed useful to include this bugfix too in this release.
Several bug fixes and non-breaking improvements are included in this release.
Tendermint has been bumped to v0.34.4 to address a memory leak.
Environment variables are now correctly populated to CLI flags. When using the Tendermint subcommands tendermint show-*
from the CLI, the SDK doesn't create new files anymore.
Keyring imports from older versions are fixed.
Additional validation for client denom metadata has been added.
On the IBC side, a packet_connection
attribute has been added to IBC events to enable relayer filtering.
For the full change log, please see the CHANGELOG.
Published by alessio over 3 years ago
This release includes two breaking changes, and a few minor bugfixes.
See the Cosmos SDK v0.41.0 milestone on our issue tracker for details.
This change breaks state backward compatibility.
At the moment hardware wallets are unable to sign messages using SIGN_MODE_DIRECT
because the cosmos ledger app does not support proto encoding andSIGN_MODE_TEXTUAL
is not available yet.
In order to enable hardware wallets users to interact with IBC, amino JSON support was added to MsgTransfer
only.
This change breaks state backward compatibility.
In a previous version the Counterparty.ChannelID
was available for an OnChanOpenAck
callback implementation (read via channelKeeper.GetChannel()
. Due to a regression, the channelID is currently empty.
The issue has been fixed by reordering IBC ChanOpenAck
and ChanOpenConfirm
to execute the core handlers logic first, followed by application callbacks.
It breaks state backward compatibility because the current change consumes more gas, which means that in an updated node a TX might fail because it ran out of gas whilst in older versions it would be successful.
Now x/bank
correctly verifies balances and metadata at init genesis stage.
simapp
correctly adds the coins of genesis accounts to supply.
Published by clevinson over 3 years ago
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.
See the Cosmos SDK v0.40.1 milestone on our issue tracker for details.
Gogoprotobuf released a bugfix addressing CVE-2021-3121. Cosmos SDK respective dependency has been updated and protobuf generated files were regenerated.
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.
In Cosmos SDK applications, it is recommended to use Time.Unix() <= 0
instead of Time.IsZero()
, which may lead to unexpected results.
See #8085 for more information.
The x/upgrade
module command and REST endpoints for querying upgrade plans would panic when no plan existed. This is now resolved.
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.
Our automatic builds were not working correctly due to small gaps in file paths. Fixed in \8300 and \8301.
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.
Errors occur when using the client to send IBC transactions without flag --absolute-timeouts
, e.g:
gaiad tx ibc-transfer transfer
The issue was caused by incorrect interface decoding and unpacking of Any
values and is now fixed.
Published by clevinson almost 4 years ago
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.
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:
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.
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:
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.
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.
Update to the latest version of tendermint which adds support for the following (in addition many other improvements):
A more detailed list of Tendermint updates can be found here.
Published by clevinson almost 4 years ago
Changes since v0.40.0-r6
Published by clevinson almost 4 years ago
Changes since v0.40.0-rc5:
Published by clevinson almost 4 years ago
Changelog entries since v0.40.0-rc4
:
codec/legacy.Cdc
.--log_format=plain|json
flag. Using format json
allows for emitting structured JSON--log_level
flag and it's default value now solely relates to the global logginginfo
, debug
, etc...) instead of <module>:<level>
.version --long
output now shows the list of build dependencies and replaced build dependencies.init
now supports a --recover
flag to recovercrypto.PubKey
PubKey
interface, defined in crypto/types
. Replace all instances ofcrypto.PubKey
by cryptotypes.Pubkey
.TmConsPubKey
method on ValidatorI has beenConsPubKey
(which returns a SDK cryptotypes.PubKey
) and TmConsPublicKey
(whichNewAnyWithCustomTypeURL
to correctlycodec.Marshaler
interface
MarshalAny
and UnmarshalAny
helper functions to codec.Marshaler
and renamed to MarshalInterface
andUnmarshalInterface
respectively. These functions must take interface as a parameter (not a concrete type nor Any
Any
wrapping for correct protobuf serialization.PrintOutput
and PrintOutputLegacy
context.Client
object to PrintProto
and PrintObjectLegacy
.Any
overwriteSig
argument to x/auth/client.SignTx
and client/tx.Sign
functions.x/auth/tx.go:wrapper.GetSignatures
. The wrapper
provides TxBuilder
functionality, and it's a privateTxBuilder
interface.Published by clevinson almost 4 years ago
Updates since v0.40.0-rc3: