BREAKING CHANGES
-
Gaia REST API (
gaiacli advanced rest-server
)- [x/stake] Validator.Owner renamed to Validator.Operator
- #595 Connections to the REST server are now secured using Transport Layer Security by default. The --insecure flag is provided to switch back to insecure HTTP.
- [gaia-lite] #2258 Split
GET stake/delegators/{delegatorAddr}
intoGET stake/delegators/{delegatorAddr}/delegations
,GET stake/delegators/{delegatorAddr}/unbonding_delegations
andGET stake/delegators/{delegatorAddr}/redelegations
-
Gaia CLI (
gaiacli
)- [x/stake] Validator.Owner renamed to Validator.Operator
- [cli] unsafe_reset_all, show_validator, and show_node_id have been renamed to unsafe-reset-all, show-validator, and show-node-id
- [cli] #1983 --print-response now defaults to true in commands that create and send a transaction
- [cli] #1983 you can now pass --pubkey or --address to gaiacli keys show to return a plaintext representation of the key's address or public key for use with other commands
- [cli] #2061 changed proposalID in governance REST endpoints to proposal-id
- [cli] #2014
gaiacli advanced
no longer exists - to accessibc
,rest-server
, andvalidator-set
commands usegaiacli ibc
,gaiacli rest-server
, andgaiacli tendermint
, respectively - [makefile]
get_vendor_deps
no longer updates lock file it just updates vendor directory. Useupdate_vendor_deps
to update the lock file. #2152 - [cli] #2221 All commands that
utilize a validator's operator address must now use the new Bech32 prefix,
cosmosvaloper
. - [cli] #2190
gaiacli init --gen-txs
is nowgaiacli init --with-txs
to reduce confusion - [cli] #2073 --from can now be either an address or a key name
- [cli] #1184 Subcommands reorganisation, see #2390 for a comprehensive list of changes.
- [cli] #2524 Add support offline mode to
gaiacli tx sign
. Lookups are not performed if the flag--offline
is on. - [cli] #2570 Add commands to query deposits on proposals
-
Gaia
- Make the transient store key use a distinct store key. #2013
- [x/stake] #1901 Validator type's Owner field renamed to Operator; Validator's GetOwner() renamed accordingly to comply with the SDK's Validator interface.
- [docs] #2001 Update slashing spec for slashing period
- [x/stake, x/slashing] #1305 - Rename "revoked" to "jailed"
- [x/stake] [#1676] Revoked and jailed validators put into the unbonding state
- [x/stake] [#1877] Redelegations/unbonding-delegation from unbonding validator have reduced time
- [x/slashing] #1789 Slashing changes for Tendermint validator set offset (NextValSet)
- [x/stake] #2040 Validator
operator type has now changed to
sdk.ValAddress
- [x/stake] #2221 New
Bech32 prefixes have been introduced for a validator's consensus address and
public key:
cosmosvalcons
andcosmosvalconspub
respectively. Also, existing Bech32 prefixes have been renamed for accounts and validator operators:cosmosaccaddr
/cosmosaccpub
=>cosmos
/cosmospub
cosmosvaladdr
/cosmosvalpub
=>cosmosvaloper
/cosmosvaloperpub
- [x/stake] [#1013] TendermintUpdates now uses transient store
- [x/stake] #2435 Remove empty bytes from the ValidatorPowerRank store key
- [x/gov] [#2195] Governance uses BFT Time
- [x/gov] #2256 Removed slashing for governance non-voting validators
- [simulation] #2162 Added back correct supply invariants
- [x/slashing] #2430 Simulate more slashes, check if validator is jailed before jailing
- [x/stake] #2393 Removed
CompleteUnbonding
andCompleteRedelegation
Msg types, and instead added unbonding/redelegation queues to endblocker - [x/mock/simulation] #2501 Simulate transactions & invariants for fee distribution, and fix bugs discovered in the process
- [x/auth] Simulate random fee payments
- [cmd/gaia/app] Simulate non-zero inflation
- [x/stake] Call hooks correctly in several cases related to delegation/validator updates
- [x/stake] Check full supply invariants, including yet-to-be-withdrawn fees
- [x/stake] Remove no-longer-in-use store key
- [x/slashing] Call hooks correctly when a validator is slashed
- [x/slashing] Truncate withdrawals (unbonding, redelegation) and burn change
- [x/mock/simulation] Ensure the simulation cannot set a proposer address of nil
- [x/mock/simulation] Add more event logs on begin block / end block for clarity
- [x/mock/simulation] Correctly set validator power in abci.RequestBeginBlock
- [x/minting] Correctly call stake keeper to track inflated supply
- [x/distribution] Sanity check for nonexistent rewards
- [x/distribution] Truncate withdrawals and return change to the community pool
- [x/distribution] Add sanity checks for incorrect accum / total accum relations
- [x/distribution] Correctly calculate total power using Tendermint updates
- [x/distribution] Simulate withdrawal transactions
- [x/distribution] Fix a bug where the fee pool was not correctly tracked on WithdrawDelegatorRewardsAll
- [x/stake] #1673 Validators are no longer deleted until they can no longer possibly be slashed
- #1890 Start chain with initial state + sequence of transactions
- [cli] Rename
gaiad init gentx
togaiad gentx
. - [cli] Add
--skip-genesis
flag togaiad init
to preventgenesis.json
generation. - Drop
GenesisTx
in favor of a signedStdTx
with only oneMsgCreateValidator
message. - [cli] Port
gaiad init
andgaiad testnet
to work withStdTx
genesis transactions. - [cli] Add
--moniker
flag togaiad init
to override moniker when generatinggenesis.json
- i.e. it takes effect when running with the--with-txs
flag, it is ignored otherwise.
- [cli] Rename
-
SDK
- [core] #2219 Update to Tendermint 0.24.0
- Validator set updates delayed by one block
- BFT timestamp that can safely be used by applications
- Fixed maximum block size enforcement
- [core] #1807 Switch from use of rational to decimal
- [types] #1901 Validator interface's GetOwner() renamed to GetOperator()
- [x/slashing] #2122 - Implement slashing period
- [types] #2119 Parsed error messages and ABCI log errors to make them more human readable.
- [types] #2407 MulInt method added to big decimal in order to improve efficiency of slashing
- [simulation] Rename TestAndRunTx to Operation #2153
- [simulation] Remove log and testing.TB from Operation and Invariants, in favor of using errors #2282
- [simulation] Remove usage of keys and addrs in the types, in favor of simulation.Account #2384
- [tools] Removed gocyclo #2211
- [baseapp] Remove
SetTxDecoder
in favor of requiring the decoder be set in baseapp initialization. #1441 - [baseapp] #1921 Add minimumFees field to BaseApp.
- [store] Change storeInfo within the root multistore to use tmhash instead of ripemd160 #2308
- [codec] #2324 All referrences to wire have been renamed to codec. Additionally, wire.NewCodec is now codec.New().
- [types] #2343 Make sdk.Msg have a names field, to facilitate automatic tagging.
- [baseapp] #2366 Automatically add action tags to all messages
- [x/auth] #2377 auth.StdSignMsg -> txbuilder.StdSignMsg
- [x/staking] #2244 staking now holds a consensus-address-index instead of a consensus-pubkey-index
- [x/staking] #2236 more distribution hooks for distribution
- [x/stake] #2394 Split up UpdateValidator into distinct state transitions applied only in EndBlock
- [x/slashing] #2480 Fix signing info handling bugs & faulty slashing
- [x/stake] #2412 Added an unbonding validator queue to EndBlock to automatically update validator.Status when finished Unbonding
- [x/stake] #2500 Block conflicting redelegations until we add an index
- [x/params] Global Paramstore refactored
- [types] #2506 sdk.Dec MarshalJSON now marshals as a normal Decimal, with 10 digits of decimal precision
- [x/stake] #2508 Utilize Tendermint power for validator power key
- [x/stake] #2531 Remove all inflation logic
- [x/mint] #2531 Add minting module and inflation logic
- [x/auth] #2540 Rename
AccountMapper
toAccountKeeper
.
- [core] #2219 Update to Tendermint 0.24.0
-
Tendermint
- Update tendermint version from v0.23.0 to v0.25.0, notable changes
- Mempool now won't build too large blocks, or too computationally expensive blocks
- Maximum tx sizes and gas are now removed, and are implicitly the blocks maximums
- ABCI validators no longer send the pubkey. The pubkey is only sent in validator updates
- Validator set changes are now delayed by one block
- Block header now includes the next validator sets hash
- BFT time is implemented
- Secp256k1 signature format has changed
- There is now a threshold multisig format
- See the tendermint changelog for other changes.
- Update tendermint version from v0.23.0 to v0.25.0, notable changes
FEATURES
-
Gaia REST API (
gaiacli advanced rest-server
)- [gaia-lite] Endpoints to query staking pool and params
- [gaia-lite] #2110 Add support for
simulate=true
requests query argument to endpoints that send txs to run simulations of transactions - [gaia-lite] #966 Add support for
generate_only=true
query argument to generate offline unsigned transactions - [gaia-lite] #1953 Add /sign endpoint to sign transactions generated with
generate_only=true
. - [gaia-lite] #1954 Add /broadcast endpoint to broadcast transactions signed by the /sign endpoint.
- [gaia-lite] #2113 Rename
/accounts/{address}/send
to/bank/accounts/{address}/transfers
, rename/accounts/{address}
to/auth/accounts/{address}
- [gaia-lite] #2478 Add query gov proposal's deposits endpoint
- [gaia-lite] #2477 Add query validator's outgoing redelegations and unbonding delegations endpoints
-
Gaia CLI (
gaiacli
)- [cli] Cmds to query staking pool and params
- [gov][cli] #2062 added
--proposal
flag tosubmit-proposal
that allows a JSON file containing a proposal to be passed in - #2040 Add
--bech
togaiacli keys show
and respective REST endpoint to provide desired Bech32 prefix encoding - [cli] #2047 #2306 Passing --gas=simulate triggers a simulation of the tx before the actual execution. The gas estimate obtained via the simulation will be used as gas limit in the actual execution.
- [cli] #2047 The --gas-adjustment flag can be used to adjust the estimate obtained via the simulation triggered by --gas=simulate.
- [cli] #2110 Add --dry-run flag to perform a simulation of a transaction without broadcasting it. The --gas flag is ignored as gas would be automatically estimated.
- [cli] #2204 Support generating and broadcasting messages with multiple signatures via command line:
- [cli] #2220 Add
gaiacli config
feature to interactively create CLI config files to reduce the number of required flags - [stake][cli] #1672 Introduced
new commission flags for validator commands
create-validator
andedit-validator
. - [stake][cli] #1890 Add
--genesis-format
flag togaiacli tx create-validator
to produce transactions in genesis-friendly format.
-
Gaia
- [cli] #2170 added ability to show the node's address via
gaiad tendermint show-address
- [simulation] #2313 Reworked
make test_sim_gaia_slow
tomake test_sim_gaia_full
, now simulates from multiple starting seeds in parallel - [cli] [#1921] (cosmos#1921)
- New configuration file
gaiad.toml
is now created to host Gaia-specific configuration. - New --minimum_fees/minimum_fees flag/config option to set a minimum fee.
- New configuration file
- [cli] #2170 added ability to show the node's address via
-
SDK
- [querier] added custom querier functionality, so ABCI query requests can be handled by keepers
- [simulation] #1924 allow operations to specify future operations
- [simulation] #1924 Add benchmarking capabilities, with makefile commands "test_sim_gaia_benchmark, test_sim_gaia_profile"
- [simulation] #2349 Add time-based future scheduled operations to simulator
- [x/auth] #2376 Remove FeePayer() from StdTx
- [x/stake] #1672 Implement basis for the validator commission model.
- [x/auth] Support account removal in the account mapper.
-
Tendermint
IMPROVEMENTS
-
[tools] Improved terraform and ansible scripts for infrastructure deployment
-
[tools] Added ansible script to enable process core dumps
-
Gaia REST API (
gaiacli advanced rest-server
) -
Gaia CLI (
gaiacli
)- [cli] #2060 removed
--select
fromblock
command - [cli] #2128 fixed segfault when exporting directly after
gaiad init
- [cli] #1255 open KeyBase in read-only mode for query-purpose CLI commands
- [cli] #2060 removed
-
Gaia
- [x/stake] #2023 Terminate iteration loop in
UpdateBondedValidators
andUpdateBondedValidatorsFull
when the first revoked validator is encountered and perform a sanity check. - [x/auth] Signature verification's gas cost now accounts for pubkey type. #2046
- [x/stake] [x/slashing] Ensure delegation invariants to jailed validators #1883.
- [x/stake] Improve speed of GetValidator, which was shown to be a performance bottleneck. #2046
- [x/stake] #2435 Improve memory efficiency of getting the various store keys
- [genesis] #2229 Ensure that there are no duplicate accounts or validators in the genesis state.
- [genesis] #2450 Validate staking genesis parameters.
- Add SDK validation to
config.toml
(namely disablingcreate_empty_blocks
) #1571 - #1941(cosmos#1941) Version is now inferred via
git describe --tags
. - [x/distribution] #1671 add distribution types and tests
- [x/stake] #2023 Terminate iteration loop in
-
SDK
- [tools] Make get_vendor_deps deletes
.vendor-new
directories, in case scratch files are present. - [spec] Added simple piggy bank distribution spec
- [cli] #1632 Add integration tests to ensure
basecoind init && basecoind
start sequences run successfully for bothdemocoin
andbasecoin
examples. - [store] Speedup IAVL iteration, and consequently everything that requires IAVL iteration. #2143
- [store] #1952, #2281 Update IAVL dependency to v0.11.0
- [simulation] Make timestamps randomized #2153
- [simulation] Make logs not just pure strings, speeding it up by a large factor at greater block heights #2282
- [simulation] Add a concept of weighting the operations #2303
- [simulation] Logs get written to file if large, and also get printed on panics #2285
- [simulation] Bank simulations now makes testing auth configurable #2425
- [gaiad] #1992 Add optional flag to
gaiad testnet
to make config directory of daemon (defaultgaiad
) and cli (defaultgaiacli
) configurable - [x/stake] Add stake
Queriers
for Gaia-lite endpoints. This increases the staking endpoints performance by reusing the stakingkeeper
logic for queries. #2249 - [store] #2017 Refactor
gas iterator gas consumption to only consume gas for iterator creation and
Next
calls which includes dynamic consumption of value length. - [types/decimal] #2378 - Added truncate functionality to decimal
- [client] #1184 Remove unused
client/tx/sign.go
. - [tools] #2464 Lock binary dependencies to a specific version
- [tools] Make get_vendor_deps deletes
-
Tendermint
BUG FIXES
-
Gaia REST API (
gaiacli advanced rest-server
) -
Gaia CLI (
gaiacli
) -
Gaia
- [x/stake] Return correct Tendermint validator update set on
EndBlocker
by not including non previously bonded validators that have zero power. #2189
- [x/stake] Return correct Tendermint validator update set on
-
SDK
- #1988 Make us compile on OpenBSD (disable ledger) [#1988] (cosmos#1988)
- #2105 Fix DB Iterator leak, which may leak a go routine.
- [ledger] #2064 Fix inability to sign and send transactions via the LCD by loading a Ledger device at runtime.
- #2158 Fix non-deterministic ordering of validator iteration when slashing in
gov EndBlocker
- [simulation] #1924 Make simulation stop on SIGTERM
- #2388 Remove dependency on deprecated tendermint/tmlibs repository.
- #2416 Refactored
InitializeTestLCD
to properly include proposing validator in genesis state.
-
Tendermint