cosmos-sdk

A Framework for Building High Value Public Blockchains

APACHE-2.0 License

Downloads
4.6K
Stars
5.9K
Committers
583

Bot releases are hidden (Show)

cosmos-sdk - v0.38.0

Published by alexanderbez over 4 years ago

Release Notes

State Machine Breaking

  • (genesis) #5506 The x/distribution genesis state
    now includes params instead of individual parameters.
  • (genesis) #5017 The x/genaccounts module has been
    deprecated and all components removed except the legacy/ package. This requires changes to the
    genesis state. Namely, accounts now exist under app_state.auth.accounts. The corresponding migration
    logic has been implemented for v0.38 target version. Applications can migrate via:
    $ {appd} migrate v0.38 genesis.json.
  • (modules) #5299 Handling of ABCIEvidenceTypeDuplicateVote
    during BeginBlock along with the corresponding parameters (MaxEvidenceAge) have moved from the
    x/slashing module to the x/evidence module.

API Breaking Changes

  • (modules) #5506 Remove individual setters of x/distribution parameters. Instead, follow the module spec in getting parameters, setting new value(s) and finally calling SetParams.
  • (types) #5495 Remove redundant (Must)Bech32ify* and (Must)Get*KeyBech32 functions in favor of (Must)Bech32ifyPubKey and (Must)GetPubKeyFromBech32 respectively, both of which take a Bech32PubKeyType (string).
  • (types) #5430 DecCoins#Add parameter changed from DecCoins
    to ...DecCoin, Coins#Add parameter changed from Coins to ...Coin.
  • (baseapp/types) #5421 The Error interface (types/errors.go)
    has been removed in favor of the concrete type defined in types/errors/ which implements the standard error interface.
    • As a result, the Handler and Querier implementations now return a standard error.
      Within BaseApp, runTx now returns a (GasInfo, *Result, error) tuple and runMsgs returns a
      (*Result, error) tuple. A reference to a Result is now used to indicate success whereas an error
      signals an invalid message or failed message execution. As a result, the fields Code, Codespace,
      GasWanted, and GasUsed have been removed the Result type. The latter two fields are now found
      in the GasInfo type which is always returned regardless of execution outcome.
    • Note to developers: Since all handlers and queriers must now return a standard error, the types/errors/
      package contains all the relevant and pre-registered errors that you typically work with. A typical
      error returned will look like sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "..."). You can retrieve
      relevant ABCI information from the error via ABCIInfo.
  • (client) #5442 Remove client/alias.go as it's not necessary and
    components can be imported directly from the packages.
  • (store) #4748 The CommitMultiStore interface
    now requires a SetInterBlockCache method. Applications that do not wish to support this can simply
    have this method perform a no-op.
  • (modules) #4665 Refactored x/gov module structure and dev-UX:
    • Prepare for module spec integration
    • Update gov keys to use big endian encoding instead of little endian
  • (modules) #5017 The x/genaccounts module has been deprecated and all components removed except the legacy/ package.
  • #4486 Vesting account types decoupled from the x/auth module and now live under x/auth/vesting. Applications wishing to use vesting account types must be sure to register types via RegisterCodec under the new vesting package.
  • #4486 The NewBaseVestingAccount constructor returns an error
    if the provided arguments are invalid.
  • (x/auth) #5006 Modular AnteHandler via composable decorators:
    • The AnteHandler interface now returns (newCtx Context, err error) instead of (newCtx Context, result sdk.Result, abort bool)
    • The NewAnteHandler function returns an AnteHandler function that returns the new AnteHandler
      interface and has been moved into the auth/ante directory.
    • ValidateSigCount, ValidateMemo, ProcessPubKey, EnsureSufficientMempoolFee, and GetSignBytes
      have all been removed as public functions.
    • Invalid Signatures may return InvalidPubKey instead of Unauthorized error, since the transaction
      will first hit SetPubKeyDecorator before the SigVerificationDecorator runs.
    • StdTx#GetSignatures will return an array of just signature byte slices [][]byte instead of
      returning an array of StdSignature structs. To replicate the old behavior, use the public field
      StdTx.Signatures to get back the array of StdSignatures []StdSignature.
  • (modules) #5299 HandleDoubleSign along with params MaxEvidenceAge and DoubleSignJailEndTime have moved from the x/slashing module to the x/evidence module.
  • (keys) #4941 Keybase concrete types constructors such as NewKeyBaseFromDir and NewInMemory now accept optional parameters of type KeybaseOption. These
    optional parameters are also added on the keys sub-commands functions, which are now public, and allows
    these options to be set on the commands or ignored to default to previous behavior.
  • #5547 NewKeyBaseFromHomeFlag constructor has been removed.
  • #5439 Further modularization was done to the keybase
    package to make it more suitable for use with different key formats and algorithms:
    • The WithKeygenFunc function added as a KeybaseOption which allows a custom bytes to key
      implementation to be defined when keys are created.
    • The WithDeriveFunc function added as a KeybaseOption allows custom logic for deriving a key
      from a mnemonic, bip39 password, and HD Path.
    • BIP44 is no longer build into keybase.CreateAccount(). It is however the default when using
      the client/keys add command.
    • SupportedAlgos and SupportedAlgosLedger functions return a slice of SigningAlgos that are
      supported by the keybase and the ledger integration respectively.
  • (simapp) #5419 The helpers.GenTx() now accepts a gas argument.
  • (baseapp) #5455 A sdk.Context is now passed into the router.Route() function.

Client Breaking Changes

  • (rest) #5270 All account types now implement custom JSON serialization.
  • (rest) #4783 The balance field in the DelegationResponse type is now sdk.Coin instead of sdk.Int
  • (x/auth) #5006 The gas required to pass the AnteHandler has
    increased significantly due to modular AnteHandler support. Increase GasLimit accordingly.
  • (rest) #5336 MsgEditValidator uses description instead of Description as a JSON key.
  • (keys) #5097 Due to the keybase -> keyring transition, keys need to be migrated. See keys migrate command for more info.
  • (x/auth) #5424 Drop decode-tx command from x/auth/client/cli, duplicate of the decode command.

Features

  • (store) #5435 New iterator for paginated requests. Iterator limits DB reads to the range of the requested page.
  • (x/evidence) #5240 Initial implementation of the x/evidence module.
  • (cli) #5212 The q gov proposals command now supports pagination.
  • (store) #4724 Multistore supports substore migrations upon load. New rootmulti.Store.LoadLatestVersionAndUpgrade method in
    Baseapp supports StoreLoader to enable various upgrade strategies. It no
    longer panics if the store to load contains substores that we didn't explicitly mount.
  • #4972 A TxResponse with a corresponding code
    and tx hash will be returned for specific Tendermint errors:
    • CodeTxInMempoolCache
    • CodeMempoolIsFull
    • CodeTxTooLarge
  • #3872 Implement a RESTful endpoint and cli command to decode transactions.
  • (keys) #4754 Introduce new Keybase implementation that can
    leverage operating systems' built-in functionalities to securely store secrets. MacOS users may encounter
    the following issue with the go-keychain library. If
    you encounter this issue, you must upgrade your xcode command line tools to version >= 10.2. You can
    upgrade via: sudo rm -rf /Library/Developer/CommandLineTools; xcode-select --install. Verify the
    correct version via: pkgutil --pkg-info=com.apple.pkg.CLTools_Executables.
  • #5355 Client commands accept a new --keyring-backend option through which users can specify which backend should be used
    by the new key store:
    • os: use OS default credentials storage (default).
    • file: use encrypted file-based store.
    • kwallet: use KDE Wallet service.
    • pass: use the pass command line password manager.
    • test: use password-less key store. For testing purposes only. Use it at your own risk.
  • (keys) #5097 New keys migrate command to assist users migrate their keys
    to the new keyring.
  • (keys) #5366 keys list now accepts a --list-names option to list key names only, whilst the keys delete
    command can delete multiple keys by passing their names as arguments. The aforementioned commands can then be piped together, e.g.
    appcli keys list -n | xargs appcli keys delete
  • (modules) #4233 Add upgrade module that coordinates software upgrades of live chains.
  • #4486 Introduce new PeriodicVestingAccount vesting account type
    that allows for arbitrary vesting periods.
  • (baseapp) #5196 Baseapp has a new runTxModeReCheck to allow applications to skip expensive and unnecessary re-checking of transactions.
  • (types) #5196 Context has new IsRecheckTx() bool and WithIsReCheckTx(bool) Context methods to to be used in the AnteHandler.
  • (x/auth/ante) #5196 AnteDecorators have been updated to avoid unnecessary checks when ctx.IsReCheckTx() == true
  • (x/auth) #5006 Modular AnteHandler via composable decorators:
    • The AnteDecorator interface has been introduced to allow users to implement modular AnteHandler
      functionality that can be composed together to create a single AnteHandler rather than implementing
      a custom AnteHandler completely from scratch, where each AnteDecorator allows for custom behavior in
      tightly defined and logically isolated manner. These custom AnteDecorator can then be chained together
      with default AnteDecorator or third-party AnteDecorator to create a modularized AnteHandler
      which will run each AnteDecorator in the order specified in ChainAnteDecorators. For details
      on the new architecture, refer to the ADR.
    • ChainAnteDecorators function has been introduced to take in a list of AnteDecorators and chain
      them in sequence and return a single AnteHandler:
      • SetUpContextDecorator: Sets GasMeter in context and creates defer clause to recover from any
        OutOfGas panics in future AnteDecorators and return OutOfGas error to BaseApp. It MUST be the
        first AnteDecorator in the chain for any application that uses gas (or another one that sets the gas meter).
      • ValidateBasicDecorator: Calls tx.ValidateBasic and returns any non-nil error.
      • ValidateMemoDecorator: Validates tx memo with application parameters and returns any non-nil error.
      • ConsumeGasTxSizeDecorator: Consumes gas proportional to the tx size based on application parameters.
      • MempoolFeeDecorator: Checks if fee is above local mempool minFee parameter during CheckTx.
      • DeductFeeDecorator: Deducts the FeeAmount from first signer of the transaction.
      • SetPubKeyDecorator: Sets pubkey of account in any account that does not already have pubkey saved in state machine.
      • SigGasConsumeDecorator: Consume parameter-defined amount of gas for each signature.
      • SigVerificationDecorator: Verify each signature is valid, return if there is an error.
      • ValidateSigCountDecorator: Validate the number of signatures in tx based on app-parameters.
      • IncrementSequenceDecorator: Increments the account sequence for each signer to prevent replay attacks.
  • (cli) #5223 Cosmos Ledger App v2.0.0 is now supported. The changes are backwards compatible and App v1.5.x is still supported.
  • (x/staking) #5380 Introduced ability to store historical info entries in staking keeper, allows applications to introspect specified number of past headers and validator sets
    • Introduces new parameter HistoricalEntries which allows applications to determine how many recent historical info entries they want to persist in store. Default value is 0.
    • Introduces cli commands and rest routes to query historical information at a given height
  • (modules) #5249 Funds are now allowed to be directly sent to the community pool (via the distribution module account).
  • (keys) #4941 Introduce keybase option to allow overriding the default private key implementation of a key generated through the keys add cli command.
  • (keys) #5439 Flags --algo and --hd-path are added to
    keys add command in order to make use of keybase modularized. By default, it uses (0, 0) bip44
    HD path and secp256k1 keys, so is non-breaking.
  • (types) #5447 Added ApproxRoot function to sdk.Decimal type in order to get the nth root for a decimal number, where n is a positive integer.
    • An ApproxSqrt function was also added for convenience around the common case of n=2.

Improvements

  • (iavl) #5538 Remove manual IAVL pruning in favor of IAVL's internal pruning strategy.
  • (server) #4215 The --pruning flag
    has been moved to the configuration file, to allow easier node configuration.
  • (cli) #5116 The CLIContext now supports multiple verifiers
    when connecting to multiple chains. The connecting chain's CLIContext will have to have the correct
    chain ID and node URI or client set. To use a CLIContext with a verifier for another chain:
    // main or parent chain (chain as if you're running without IBC)
    mainCtx := context.NewCLIContext()
    
    // connecting IBC chain
    sideCtx := context.NewCLIContext().
      WithChainID(sideChainID).
      WithNodeURI(sideChainNodeURI) // or .WithClient(...)
    
    sideCtx = sideCtx.WithVerifier(
      context.CreateVerifier(sideCtx, context.DefaultVerifierCacheSize),
    )
    
  • (modules) #5017 The x/auth package now supports
    generalized genesis accounts through the GenesisAccount interface.
  • (modules) #4762 Deprecate remove and add permissions in ModuleAccount.
  • (modules) #4760 update x/auth to match module spec.
  • (modules) #4814 Add security contact to Validator description.
  • (modules) #4875 refactor integration tests to use SimApp and separate test package
  • (sdk) #4566 Export simulation's parameters and app state to JSON in order to reproduce bugs and invariants.
  • (sdk) #4640 improve import/export simulation errors by extending DiffKVStores to return an array of KVPairs that are then compared to check for inconsistencies.
  • (sdk) #4717 refactor x/slashing to match the new module spec
  • (sdk) #4758 update x/genaccounts to match module spec
  • (simulation) #4824 PrintAllInvariants flag will print all failed invariants
  • (simulation) #4490 add InitialBlockHeight flag to resume a simulation from a given block
    • Support exporting the simulation stats to a given JSON file
  • (simulation) #4847, #4838 and #4869 SimApp and simulation refactors:
    • Implement SimulationManager for executing modules' simulation functionalities in a modularized way
    • Add RegisterStoreDecoders to the SimulationManager for decoding each module's types
    • Add GenerateGenesisStates to the SimulationManager to generate a randomized GenState for each module
    • Add RandomizedParams to the SimulationManager that registers each modules' parameters in order to
      simulate ParamChangeProposals' Contents
    • Add WeightedOperations to the SimulationManager that define simulation operations (modules' Msgs) with their
      respective weights (i.e chance of being simulated).
    • Add ProposalContents to the SimulationManager to register each module's governance proposal Contents.
  • (simulation) #4893 Change SimApp keepers to be public and add getter functions for keys and codec
  • (simulation) #4906 Add simulation Config struct that wraps simulation flags
  • (simulation) #4935 Update simulation to reflect a proper ABCI application without bypassing BaseApp semantics
  • (simulation) #5378 Simulation tests refactor:
    • Add App interface for general SDK-based app's methods.
    • Refactor and cleanup simulation tests into util functions to simplify their implementation for other SDK apps.
  • (store) #4792 panic on non-registered store
  • (types) #4821 types/errors package added with support for stacktraces. It is meant as a more feature-rich replacement for sdk.Errors in the mid-term.
  • (store) #1947 Implement inter-block (persistent)
    caching through CommitKVStoreCacheManager. Any application wishing to utilize an inter-block cache
    must set it in their app via a BaseApp option. The BaseApp docs have been drastically improved
    to detail this new feature and how state transitions occur.
  • (docs/spec) All module specs moved into their respective module dir in x/ (i.e. docs/spec/staking -->> x/staking/spec)
  • (docs/) #5379 Major documentation refactor, including:
    • (docs/intro/) Add and improve introduction material for newcomers.
    • (docs/basics/) Add documentation about basic concepts of the cosmos sdk such as the anatomy of an SDK application, the transaction lifecycle or accounts.
    • (docs/core/) Add documentation about core conepts of the cosmos sdk such as baseapp, server, stores, context and more.
    • (docs/building-modules/) Add reference documentation on concepts relevant for module developers (keeper, handler, messages, queries,...).
    • (docs/interfaces/) Add documentation on building interfaces for the Cosmos SDK.
    • Redesigned user interface that features new dynamically generated sidebar, build-time code embedding from GitHub, new homepage as well as many other improvements.
  • (types) #5428 Add Mod (modulo) method and RelativePow (exponentation) function for Uint.
  • (modules) #5506 Remove redundancy in x/distributions use of parameters. There
    now exists a single Params type with a getter and setter along with a getter for each individual parameter.

Bug Fixes

  • (rest) #5508 Fix x/distribution endpoints to properly return height in the response.
  • (x/genutil) #5499 Ensure DefaultGenesis returns valid and non-nil default genesis state.
  • (client) #5303 Fix ignored error in tx generate only mode.
  • (cli) #4763 Fix flag --min-self-delegation for staking EditValidator
  • (keys) Fix ledger custom coin type support bug.
  • (x/gov) #5107 Sum validator operator's all voting power when tally votes
  • (rest) #5212 Fix pagination in the /gov/proposals handler.
cosmos-sdk - v0.37.6

Published by fedekunze over 4 years ago

Improvements

  • (tendermint) Bump Tendermint version to v0.32.9
cosmos-sdk - v0.37.5

Published by alexanderbez almost 5 years ago

Features

  • (types) #5360 Implement SortableDecBytes which
    allows the Dec type to be sortable.

Improvements

  • (tendermint) Bump Tendermint version to v0.32.8.
  • (cli) #5482 Remove old "tags" nomenclature from the q txs command in favor of the new events system. Functionality remains unchanged except that = is used instead of : to be consistent with the API's use of event queries.

Bug Fixes

  • (iavl) #5276 Fix potential race condition in iavlIterator#Close.
  • (baseapp) #5350 Allow a node to restart successfully after a halt-height or halt-time has been triggered.
  • (types) #5395 Fix Uint#LTE.
  • (types) #5408 NewDecCoins constructor now sorts the coins.
cosmos-sdk - v0.37.4

Published by alexanderbez almost 5 years ago

Note:

Improvements

  • (tendermint) Bump Tendermint version to v0.32.7
  • (ledger) #4716 Fix ledger custom coin type support bug.

Bug Fixes

  • (baseapp) #5200 Remove duplicate events from previous messages.
cosmos-sdk - v0.34.10

Published by alexanderbez almost 5 years ago

Bug Fixes

  • Bump Tendermint version to v0.31.11 to address the vulnerability found in the consensus package.
cosmos-sdk - v0.37.3

Published by alexanderbez about 5 years ago

Note:

  • Requires Go 1.13+
  • v0.37.2 was skipped because it was prematurely released without all the necessary changes. Since the Go module index caches releases, simply recreating the release would not suffice. Go recommends creating a new release. In this sense, v0.37.2 and v0.37.3 are identical. For safety reasons, v0.37.2 was deleted.

Bug Fixes

  • (genesis) #5095 Fix genesis file migration from v0.34 to v0.36/v0.37 not converting validator consensus pubkey to bech32 format.

Improvements

  • (tendermint) Bump Tendermint version to v0.32.6
cosmos-sdk - v0.34.9

Published by alexanderbez about 5 years ago

Bug Fixes

  • Bump Tendermint version to v0.31.10 to address p2p panic errors.
cosmos-sdk - v0.34.8

Published by jackzampolin about 5 years ago

Bug Fixes

  • Bump Tendermint version to v0.31.9 to fix the p2p panic error.
  • Update gaiareplay's use of an internal Tendermint API

Minimum Go version: 1.13

cosmos-sdk - v0.37.1

Published by alexanderbez about 5 years ago

Note: Requies Go 1.13+

Features

  • (cli) #4973 Enable application CPU profiling via the --cpu-profile flag.
  • #4979 Introduce a new halt-time config and CLI option to the start command. When provided, an application will halt during Commit when the block time is >= the halt-time.

Improvements

  • #4990 Add Events to the ABCIMessageLog to provide context and grouping of events based on the messages they correspond to. The Events field in TxResponse is deprecated and will be removed in the next major release.

Bug Fixes

  • #4979 Use Signal(os.Interrupt) over os.Exit(0) during configured halting to allow any defer calls to be executed.
cosmos-sdk - v0.37.0

Published by alexanderbez about 5 years ago

Bug Fixes

  • (baseapp) #4903 Various height query fixes:
    • Move height with proof check from CLIContext to BaseApp as the height
      can automatically be injected there.
    • Update handleQueryStore to resemble handleQueryCustom
  • (simulation) #4912 Fix SimApp ModuleAccountAddrs
    to properly return black listed addresses for bank keeper initialization.
  • (cli) #4919 Don't crash CLI
    if user doesn't answer y/n confirmation request.
  • (cli) #4927 Fix the q gov vote
    command to handle empty (pruned) votes correctly.

Improvements

  • (rest) #4924 Return response
    height even upon error as it may be useful for the downstream caller and have
    /auth/accounts/{address} return a 200 with an empty account upon error when
    that error is that the account doesn't exist.
cosmos-sdk - v0.36.0

Published by alexanderbez about 5 years ago

⚠️ NOTE: It is not recommended to use this version due to a bug in sending funds to module accounts. For more information, see here. Please use v0.37.0 which includes the fix plus any non-breaking changes intended for v0.36.1.

Breaking Changes

  • (rest) #4837 Remove /version and /node_version
    endpoints in favor of refactoring /node_info to also include application version info.
  • All REST responses now wrap the original resource/result. The response
    will contain two fields: height and result.
  • #3565 Updates to the governance module:
    • Rename JSON field from proposal_content to content
    • Rename JSON field from proposal_id to id
    • Disable ProposalTypeSoftwareUpgrade temporarily
  • #3775 unify sender transaction tag for ease of querying
  • #4255 Add supply module that passively tracks the supplies of a chain
    • Renamed x/distribution ModuleName
    • Genesis JSON and CLI now use distribution instead of distr
    • Introduce ModuleAccount type, which tracks the flow of coins held within a module
    • Replaced FeeCollectorKeeper for a ModuleAccount
    • Replaced the staking Pool, which coins are now held by the BondedPool and NotBonded module accounts
    • The NotBonded module account now only keeps track of the not bonded tokens within staking, instead of the whole chain
    • #3628 Replaced governance's burn and deposit accounts for a ModuleAccount
    • Added a ModuleAccount for the distribution module
    • Added a ModuleAccount for the mint module
      #4472 validation for crisis genesis
  • #3985 ValidatorPowerRank uses potential consensus power instead of tendermint power
  • #4104 Gaia has been moved to its own repository: https://github.com/cosmos/gaia
  • #4104 Rename gaiad.toml to app.toml. The internal contents of the application
    config remain unchanged.
  • #4159 create the default module patterns and module manager
  • #4230 Change the type of ABCIMessageLog#MsgIndex to uint16 for proper serialization.
  • #4250 BaseApp.Query() returns app's version string set via BaseApp.SetAppVersion()
    when handling /app/version queries instead of the version string passed as build
    flag at compile time.
  • #4262 GoSumHash is no longer returned by the version command.
  • #4263 RestServer#Start now takes read and write timeout arguments.
  • #4305 GenerateOrBroadcastMsgs no longer takes an offline parameter.
  • #4342 Upgrade go-amino to v0.15.0
  • #4351 InitCmd, AddGenesisAccountCmd, and CollectGenTxsCmd take node's and client's default home directories as arguments.
  • #4387 Refactor the usage of tags (now called events) to reflect the
    new ABCI events semantics:
    • Move x/{module}/tags/tags.go => x/{module}/types/events.go
    • Update docs/specs
    • Refactor tags in favor of new Event(s) type(s)
    • Update Context to use new EventManager
    • (Begin|End)Blocker no longer return tags, but rather uses new EventManager
    • Message handlers no longer return tags, but rather uses new EventManager
      Any component (e.g. BeginBlocker, message handler, etc...) wishing to emit an event must do so
      through ctx.EventManger().EmitEvent(s).
      To reset or wipe emitted events: ctx = ctx.WithEventManager(sdk.NewEventManager())
      To get all emitted events: events := ctx.EventManager().Events()
  • #4437 Replace governance module store keys to use []byte instead of string.
  • #4451 Improve modularization of clients and modules:
    • Module directory structure improved and standardized
    • Aliases autogenerated
    • Auth and bank related commands are now mounted under the respective moduels
    • Client initialization and mounting standardized
  • #4479 Remove codec argument redundency in client usage where
    the CLIContext's codec should be used instead.
  • #4488 Decouple client tx, REST, and ultil packages from auth. These packages have
    been restructured and retrofitted into the x/auth module.
  • #4521 Flatten x/bank structure by hiding module internals.
  • #4525 Remove --cors flag, the feature is long gone.
  • #4536 The /auth/accounts/{address} now returns a height in the response.
    The account is now nested under account.
  • #4543 Account getters are no longer part of client.CLIContext() and have now moved
    to reside in the auth-specific AccountRetriever.
  • #4588 Context does not depend on x/auth anymore. client/context is stripped out of the following features:
    • GetAccountDecoder()
    • CLIContext.WithAccountDecoder()
    • CLIContext.WithAccountStore()
      x/auth.AccountDecoder is unnecessary and consequently removed.
  • #4602 client/input.{Buffer,Override}Stdin() functions are removed. Thanks to cobra's new release they are now redundant.
  • #4633 Update old Tx search by tags APIs to use new Events
    nomenclature.
  • #4649 Refactor x/crisis as per modules new specs.
  • #3685 The default signature verification gas logic (DefaultSigVerificationGasConsumer) now specifies explicit key types rather than string pattern matching. This means that zones that depended on string matching to allow other keys will need to write a custom SignatureVerificationGasConsumer function.
  • #4663 Refactor bank keeper by removing private functions
    • InputOutputCoins, SetCoins, SubtractCoins and AddCoins are now part of the SendKeeper instead of the Keeper interface
  • (tendermint) #4721 Upgrade Tendermint to v0.32.1

Features

  • #4843 Add RegisterEvidences function in the codec package to register
    Tendermint evidence types with a given codec.
  • (rest) #3867 Allow querying for genesis transaction when height query param is set to zero.
  • #2020 New keys export/import command line utilities to export/import private keys in ASCII format
    that rely on Keybase's new underlying ExportPrivKey()/ImportPrivKey() API calls.
  • #3565 Implement parameter change proposal support.
    Parameter change proposals can be submitted through the CLI
    or a REST endpoint. See docs for further usage.
  • #3850 Add rewards and commission to distribution tx tags.
  • #3981 Add support to gracefully halt a node at a given height
    via the node's halt-height config or CLI value.
  • #4144 Allow for configurable BIP44 HD path and coin type.
  • #4250 New BaseApp.{,Set}AppVersion() methods to get/set app's version string.
  • #4263 Add --read-timeout and --write-timeout args to the rest-server command
    to support custom RPC R/W timeouts.
  • #4271 Implement Coins#IsAnyGT
  • #4318 Support height queries. Queries against nodes that have the queried
    height pruned will return an error.
  • #4409 Implement a command that migrates exported state from one version to the next.
    The migrate command currently supports migrating from v0.34 to v0.36 by implementing
    necessary types for both versions.
  • #4570 Move /bank/balances/{address} REST handler to x/bank/client/rest. The exposed interface is unchanged.
  • Community pool spend proposal per Cosmos Hub governance proposal #7 "Activate the Community Pool"

Improvements

  • (simulation) PrintAllInvariants flag will print all failed invariants

  • (simulation) Add InitialBlockHeight flag to resume a simulation from a given block

  • (simulation) #4670 Update simulation statistics to JSON format

    • Support exporting the simulation stats to a given JSON file
  • #4775 Refactor CI config

  • Upgrade IAVL to v0.12.4

  • (tendermint) Upgrade Tendermint to v0.32.2

  • (modules) #4751 update x/genutils to match module spec

  • (keys) #4611 store keys in simapp now use a map instead of using individual literal keys

  • #2286 Improve performance of CacheKVStore iterator.

  • #3512 Implement Logger method on each module's keeper.

  • #3655 Improve signature verification failure error message.

  • #3774 add category tag to transactions for ease of filtering

  • #3914 Implement invariant benchmarks and add target to makefile.

  • #3928 remove staking references from types package

  • #3978 Return ErrUnknownRequest in message handlers for unknown
    or invalid routed messages.

  • #4190 Client responses that return (re)delegation(s) now return balances
    instead of shares.

  • #4194 ValidatorSigningInfo now includes the validator's consensus address.

  • #4235 Add parameter change proposal messages to simulation.

  • #4235 Update the minting module params to implement params.ParamSet so
    individual keys can be set via proposals instead of passing a struct.

  • #4259 Coins that are nil are now JSON encoded as an empty array [].
    Decoding remains unchanged and behavior is left intact.

  • #4305 The --generate-only CLI flag fully respects offline tx processing.

  • #4379 close db write batch.

  • #4384- Allow splitting withdrawal transaction in several chunks

  • #4403 Allow for parameter change proposals to supply only desired fields to be updated
    in objects instead of the entire object (only applies to values that are objects).

  • #4415 /client refactor, reduce genutil dependancy on staking

  • #4439 Implement governance module iterators.

  • #4465 Unknown subcommands print relevant error message

  • #4466 Commission validation added to validate basic of MsgCreateValidator by changing CommissionMsg to CommissionRates

  • #4501 Support height queriers in rest client

  • #4535 Improve import-export simulation errors by decoding the KVPair.Value into its
    respective type

  • #4536 cli context queries return query height and accounts are returned with query height

  • #4553 undelegate max entries check first

  • #4556 Added IsValid function to Coin

  • #4564 client/input.GetConfirmation()'s default is changed to No.

  • #4573 Returns height in response for query endpoints.

  • #4580 Update Context#BlockHeight to properly set the block height via WithBlockHeader.

  • #4584 Update bank Keeper to use expected keeper interface of the AccountKeeper.

  • #4584 Move Account and VestingAccount interface types to x/auth/exported.

  • #4082 supply module queriers for CLI and REST endpoints

  • #4601 Implement generic pangination helper function to be used in
    REST handlers and queriers.

  • #4629 Added warning event that gets emitted if validator misses a block.

  • #4674 Export Simapp genState generators and util functions by making them public

  • #4706 Simplify context
    Replace complex Context construct with a simpler immutible struct.
    Only breaking change is not to support Value and GetValue as first class calls.
    We do embed ctx.Context() as a raw context.Context instead to be used as you see fit.

    Migration guide:

    ctx = ctx.WithValue(contextKeyBadProposal, false) ->
    ctx = ctx.WithContext(context.WithValue(ctx.Context(), contextKeyBadProposal, false))

    A bit more verbose, but also allows context.WithTimeout(), etc and only used
    in one function in this repo, in test code.

  • #3685 Add SetAddressVerifier and GetAddressVerifier to sdk.Config to allow SDK users to configure custom address format verification logic (to override the default limitation of 20-byte addresses).

  • #3685 Add an additional parameter to NewAnteHandler for a custom SignatureVerificationGasConsumer (the default logic is now in `DefaultSigVerificationGasConsumer). This allows SDK users to configure their own logic for which key types are accepted and how those key types consume gas.

  • Remove --print-response flag as it is no longer used.

  • Revert #2284 to allow create_empty_blocks in the config

  • (tendermint) #4718 Upgrade tendermint/iavl to v0.12.3

Bug Fixes

  • #4891 Disable querying with proofs enabled when the query height <= 1.
  • (rest) #4858 Do not return an error in BroadcastTxCommit when the tx broadcasting
    was successful. This allows the proper REST response to be returned for a
    failed tx during block broadcasting mode.
  • (store) #4880 Fix error check in
    IAVL Store#DeleteVersion.
  • (tendermint) #4879 Don't terminate the process immediately after startup when run in standalone mode.
  • (simulation) #4861 Fix non-determinism simulation
    by using CLI flags as input and updating Makefile target.
  • #4868 Context#CacheContext now sets a new EventManager. This prevents unwanted events
    from being emitted.
  • (cli) #4870 Disable the withdraw-all-rewards command when --generate-only is supplied
  • (modules) #4831 Prevent community spend proposal from transferring funds to a module account
  • (keys) #4338 fix multisig key output for CLI
  • (modules) #4795 restrict module accounts from receiving transactions.
    Allowing this would cause an invariant on the module account coins.
  • (modules) #4823 Update the DefaultUnbondingTime from 3 days to 3 weeks to be inline with documentation.
  • (abci) #4639 Fix CheckTx by verifying the message route
  • Return height in responses when querying against BaseApp
  • #1351 Stable AppHash allows no_empty_blocks
  • #3705 Return [] instead of null when querying delegator rewards.
  • #3966 fixed multiple assigns to action tags
    #3793 add delegator tag for MsgCreateValidator and deleted unused moniker and identity tags
  • #4194 Fix pagination and results returned from /slashing/signing_infos
  • #4230 Properly set and display the message index through the TxResponse.
  • #4234 Allow tx send --generate-only to
    actually work offline.
  • #4271 Fix addGenesisAccount by using Coins#IsAnyGT for vesting amount validation.
  • #4273 Fix usage of AppendTags in x/staking/handler.go
  • #4303 Fix NewCoins() underlying function for duplicate coins detection.
  • #4307 Don't pass height to RPC calls as
    Tendermint will automatically use the latest height.
  • #4362 simulation setup bugfix for multisim 7601778
  • #4383 - currentStakeRoundUp is now always atleast currentStake + smallest-decimal-precision
  • #4394 Fix signature count check to use the TxSigLimit param instead of
    a default.
  • #4455 Use QueryWithData() to query unbonding delegations.
  • #4493 Fix validator-outstanding-rewards command. It now takes as an argument
    a validator address.
  • #4598 Fix redelegation and undelegation txs that were not checking for the correct bond denomination.
  • #4619 Close iterators in GetAllMatureValidatorQueue and UnbondAllMatureValidatorQueue
    methods.
  • #4654 validator slash event stored by period and height
  • #4681 panic on invalid amount on MintCoins and BurnCoins
    • skip minting if inflation is set to zero
  • Sort state JSON during export and initialization
cosmos-sdk - v0.35.0

Published by alexanderbez over 5 years ago

Bug Fixes

SDK

  • Fix for the x/staking module security advisory for downstream consumers of the
    SDK. This fix was introduced in v0.34.6 for the Cosmos Hub.
cosmos-sdk - v0.34.7

Published by alexanderbez over 5 years ago

Bug Fixes

SDK

  • Fix gas consumption bug in Undelegate preventing the ability to sync from
    genesis.
cosmos-sdk - v0.34.6

Published by jackzampolin over 5 years ago

0.34.6

Bug Fixes

SDK

  • [staking] Unbonding from a validator is now only considered "complete" after the full
    unbonding period has elapsed regardless of the validator's status. NOTE: for existing chains, this behaviour kicks in at the height set by the new global variable UndelegatePatchHeight, currently set to block 482100. To apply this behaviour at a different height, change the value of UndelegatePatchHeight.
cosmos-sdk - v0.34.5

Published by jackzampolin over 5 years ago

0.34.5

Bug Fixes

SDK

  • #4273 Fix usage of AppendTags in x/staking/handler.go

Improvements

SDK

  • #2286 Improve performance of CacheKVStore iterator.
  • #3655 Improve signature verification failure error message.
  • #4384 Allow splitting withdrawal transaction in several chunks.

Gaia CLI

  • #4227 Support for Ledger App v1.5.
  • #4345 Update ledger-cosmos-go
    to v0.10.3.
cosmos-sdk - v0.34.4

Published by jackzampolin over 5 years ago

0.34.4

Bug Fixes

SDK

  • #4234 Allow tx send --generate-only to
    actually work offline.

Gaia

  • #4219 Return an error when an empty mnemonic is provided during key recovery.

Improvements

Gaia

  • #2007 Return 200 status code on empty results

New features

SDK

  • #3850 Add rewards and commission to distribution tx tags.
cosmos-sdk - v0.34.3

Published by jackzampolin over 5 years ago

0.34.3

Bug Fixes

Gaia

#4196 Set default invariant check period to zero.

cosmos-sdk - v0.34.2

Published by jackzampolin over 5 years ago

0.34.2

Improvements

SDK

  • #4135 Add further clarification
    to generate only usage.

Bug Fixes

SDK

  • #4135 Fix NewResponseFormatBroadcastTxCommit
  • #4053 Add --inv-check-period
    flag to gaiad to set period at which invariants checks will run.
  • #4099 Update the /staking/validators endpoint to support
    status and pagination query flags.
cosmos-sdk - v0.34.1

Published by alexanderbez over 5 years ago

0.34.1

Bug Fixes

Gaia

  • #4163 Fix v0.33.x export script to port gov data correctly.
cosmos-sdk - v0.34.0

Published by jackzampolin over 5 years ago

0.34.0

Breaking Changes

Gaia

  • #3463 Revert bank module handler fork (re-enables transfers)
  • #3875 Replace async flag with --broadcast-mode flag where the default
    value is sync. The block mode should not be used. The REST client now
    uses mode parameter instead of the return parameter.

Gaia CLI

  • #3938 Remove REST server's SSL support altogether.

SDK

  • #3245 Rename validator.GetJailed() to validator.IsJailed()
  • #3516 Remove concept of shares from staking unbonding and redelegation UX;
    replaced by direct coin amount.

Tendermint

  • #4029 Upgrade Tendermint to v0.31.3

New features

SDK

  • #2935 New module Crisis which can test broken invariant with messages
  • #3813 New sdk.NewCoins safe constructor to replace bare sdk.Coins{} declarations.
  • #3858 add website, details and identity to gentx cli command
  • Implement coin conversion and denomination registration utilities

Gaia

  • #2935 Optionally assert invariants on a blockly basis using gaiad --assert-invariants-blockly
  • #3886 Implement minting module querier and CLI/REST clients.

Gaia CLI

  • #3937 Add command to query community-pool

Gaia REST API

  • #3937 Add route to fetch community-pool
  • #3949 added /slashing/signing_infos to get signing_info for all validators

Improvements

Gaia

  • #3808 gaiad and gaiacli integration tests use ./build/ binaries.
  • [#3819](https://github.com/cosmos/cosmos-sdk/issues/3819) Simulation refactor, log output now stored in ~/.gaiad/simulation/
    • Simulation moved to its own module (not a part of mock)
    • Logger type instead of passing function variables everywhere
    • Logger json output (for reloadable simulation running)
    • Cleanup bank simulation messages / remove dup code in bank simulation
    • Simulations saved in ~/.gaiad/simulations/
    • "Lean" simulation output option to exclude No-ops and !ok functions (--SimulationLean flag)
  • #3893 Improve gaiacli tx sign command
    • Add shorthand flags -a and -s for the account and sequence numbers respectively
    • Mark the account and sequence numbers required during "offline" mode
    • Always do an RPC query for account and sequence number during "online" mode
  • #4018 create genesis port script for release v.0.34.0

Gaia CLI

  • #3833 Modify stake to atom in gaia's doc.
  • #3841 Add indent to JSON of gaiacli keys [add|show|list]
  • #3859 Add newline to echo of gaiacli keys ...
  • #3959 Improving error messages when signing with ledger devices fails

SDK

  • #3238 Add block time to tx responses when querying for
    txs by tags or hash.
  • [#3752](https://github.com/cosmos/cosmos-sdk/issues/3752) Explanatory docs for minting mechanism (docs/spec/mint/01_concepts.md)
  • #3801 baseapp safety improvements
  • #3820 Make Coins.IsAllGT() more robust and consistent.
  • #3828 New sdkch tool to maintain changelogs
  • #3864 Make Coins.IsAllGTE() more consistent.
  • #3907: dep -> go mod migration
    • Drop dep in favor of go modules.
    • Upgrade to Go 1.12.1.
  • #3917 Allow arbitrary decreases to validator commission rates.
  • #3937 Implement community pool querier.
  • #3940 Codespace should be lowercase.
  • #3986 Update the Stringer implementation of the Proposal type.
  • #926 circuit breaker high level explanation
  • #3896 Fixed various linters warnings in the context of the gometalinter -> golangci-lint migration
  • #3916 Hex encode data in tx responses

Bug Fixes

Gaia

  • #3825 Validate genesis before running gentx
  • #3889 When --generate-only is provided, the Keybase is not used and as a result
    the --from value must be a valid Bech32 cosmos address.
  • 3974 Fix go env setting in installation.md
  • 3996 Change 'make get_tools' to 'make tools' in DOCS_README.md.

Gaia CLI

  • #3883 Remove Height Flag from CLI Queries
  • #3899 Using 'gaiacli config node' breaks ~/config/config.toml

SDK

  • #3837 Fix WithdrawValidatorCommission to properly set the validator's remaining commission.
  • #3870 Fix DecCoins#TruncateDecimal to never return zero coins in
    either the truncated coins or the change coins.
  • #3915 Remove ';' delimiting support from ParseDecCoins
  • #3977 Fix docker image build
  • #4020 Fix queryDelegationRewards by returning an error
    when the validator or delegation do not exist.
  • #4050 Fix DecCoins APIs
    where rounding or truncation could result in zero decimal coins.
  • #4088 Fix calculateDelegationRewards
    by accounting for rounding errors when multiplying stake by slashing fractions.