Skip to content

v0.36.0

Compare
Choose a tag to compare
@alexanderbez alexanderbez released this 13 Aug 14:50
118aa61

⚠️ 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