v0.36.0
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
tocontent
- Rename JSON field from
proposal_id
toid
- Disable
ProposalTypeSoftwareUpgrade
temporarily
- Rename JSON field from
- #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 ofdistr
- Introduce
ModuleAccount
type, which tracks the flow of coins held within a module - Replaced
FeeCollectorKeeper
for aModuleAccount
- Replaced the staking
Pool
, which coins are now held by theBondedPool
andNotBonded
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
- Renamed
- #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 anoffline
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 newEventManager
- (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
throughctx.EventManger().EmitEvent(s)
.
To reset or wipe emitted events:ctx = ctx.WithEventManager(sdk.NewEventManager())
To get all emitted events:events := ctx.EventManager().Events()
- Move
- #4437 Replace governance module store keys to use
[]byte
instead ofstring
. - #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 thex/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 aheight
in the response.
The account is now nested underaccount
. - #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 customSignatureVerificationGasConsumer
function. - #4663 Refactor bank keeper by removing private functions
InputOutputCoins
,SetCoins
,SubtractCoins
andAddCoins
are now part of theSendKeeper
instead of theKeeper
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
andcommission
to distribution tx tags. - #3981 Add support to gracefully halt a node at a given height
via the node'shalt-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 therest-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.
Themigrate
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 arenil
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 viaWithBlockHeader
. -
#4584 Update bank Keeper to use expected keeper interface of the AccountKeeper.
-
#4584 Move
Account
andVestingAccount
interface types tox/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 supportValue
andGetValue
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
andGetAddressVerifier
tosdk.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 duringblock
broadcasting mode. - (store) #4880 Fix error check in
IAVLStore#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 ofnull
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
andUnbondAllMatureValidatorQueue
methods. - #4654 validator slash event stored by period and height
- #4681 panic on invalid amount on
MintCoins
andBurnCoins
- skip minting if inflation is set to zero
- Sort state JSON during export and initialization