* [10948]: Add changelog entry. * [10948]: Deprecate the types.DBBackend variable and the NewLevelDB function. Create a NewDB function to replace them. * [10948]: Add a DBBackend string to the simulation config and a flag for setting it. Update the simulation setup to use that instead of the compile-time DBBackend variable. * [10948]: Update the mock app creator to use the NewDB function. Not sure what to do about the db backend in that case though. * [10948]: Update changelog to reflect new db-backend field name. * [10948]: Use the tendermint db-backend type for the snapshot db. * [10948]: Update the last use of NewLevelDB by adding a parameter to openDB and uppdating calls to that to provide the db type to use. * [10948]: Upddate the NewDB function to also have a default db backend type if an empty string is provided there. * [10948]: Remove the new TODO in mock.NewApp. After looking through it's uses, there doesn't seem to be any desire to change it, and there's no easy way to communicate it. * [10948]: Enhance the NewDB defer function to also add info to any err that is being returned. * [10948]: Add some unit tests for NewDB. * [10948]: Lint fixes. * [10948]: Add a changelog entry to the deprecated section. * [10948]: Update the makefile to no longer set the types.DBBackend value. * [10948]: Use memdb for the mock app instead of goleveldb. I know it was a goleveldb before, but for a mock app, a memdb feels like a better choice (assuming 'mock' and 'mem' mean what I assume they mean). * [10948]: Fix the store benchmark tests (had some index-out-of-range issues). * [10948]: Fix cachekv store bench test calling iter.Key() before checking iter.Valid(). * [10948]: Remove the panic recovery from types.NewDB since dbm.NewDB returns an error now (it didn't originally, when NewLevelDB was first written). * [10948]: Add changlog entry indicationg an API breaking change due to the DBBackend change. * [10948]: Get rid of the types.NewDB function in favor of just using the tm-db version of it. * [10948]: Fix Update the codeql-analysis github action to use go v1.17. * [10948]: Add config file option for the app db backend type. * [10948]: Adjust the comment on the app-db-backend config entry to clarify fallback behavior. * [10948]: Add a default of GoLevelDBBackend to GetAppDBBackend. The old DBBackend variable defaulted to that, and some unit tests assume that behavior still exists. * [10948]: Add the missing quotes around the app-db-backend value. * [10948]: Small tweak to the changelog's deprecated entry. * Add the go version declaration back into the codeql-analysis github action. * [10948]: Update new use of openDB. * [10948]: Put a brief delay after closing the test network. Hopefully that helps with address-in-use and non-empty directory errors. Co-authored-by: Marko <marbar3778@yahoo.com>
292 KiB
Changelog
Unreleased
Features
- (x/upgrade) #11116
MsgSoftwareUpgradeand has been added to support v1beta2 msgs-based gov proposals. - #11308 Added a mandatory metadata field to Vote in x/gov v1beta2.
- #10977 Now every cosmos message protobuf definition must be extended with a
cosmos.msg.v1.signeroption to signal the signer fields in a language agnostic way. - #10710 Chain-id shouldn't be required for creating a transaction with both --generate-only and --offline flags.
- #10703 Create a new grantee account, if the grantee of an authorization does not exist.
- #10592 Add a
DecApproxEqfunction that checks to see if|d1 - d2| < tolfor some Decd1, d2, tol. - #9933 Introduces the notion of a Cosmos "Scalar" type, which would just be simple aliases that give human-understandable meaning to the underlying type, both in Go code and in Proto definitions.
- #9884 Provide a new gRPC query handler,
/cosmos/params/v1beta1/subspaces, that allows the ability to query for all registered subspaces and their respective keys. - #9776 Add flag
staking-bond-denomto specify the staking bond denomination value when initializing a new chain. - #9533 Added a new gRPC method,
DenomOwners, inx/bankto query for all account holders of a specific denomination. - (bank) #9618 Update bank.Metadata: add URI and URIHash attributes.
- (store) #8664 Implementation of ADR-038 file StreamingService
- #9837
--generate-onlyflag will accept the keyname now. - #10326
x/authzadd all grants by granter query. - #10944
x/authzadd all grants by grantee query - #10348 Add
fee.{payer,granter}andtipfields to StdSignDoc for signing tipped transactions. - #10208 Add
TipsTxMiddlewarefor transferring tips. - #10379 Add validation to
x/upgradeCLIsoftware-upgradecommand--plan-infovalue. - #10507 Add middleware for tx priority.
- #10311 Adds cli to use tips transactions. It adds an
--auxflag to all CLI tx commands to generate the aux signer data (with optional tip), and a newtx aux-to-feesubcommand to let the fee payer gather aux signer data and broadcast the tx - #10430 ADR-040: Add store/v2
MultiStoreimplementation - #11019 Add
MsgCreatePermanentLockedAccountand CLI method for creating permanent locked account - #10947 Add
AllowancesByGranterquery to the feegrant module - #10407 Add validation to
x/upgrademodule'sBeginBlockto check accidental binary downgrades - (gov) #11036 Add in-place migrations for 0.43->0.46. Add a
migrate v0.46CLI command for v0.43->0.46 JSON genesis migration. - #11006 Add
debug pubkey-rawcommand to allow inspecting of pubkeys in legacy bech32 format - (x/authz) #10714 Add support for pruning expired authorizations
- #10015 ADR-040: ICS-23 proofs for SMT store
- #11240 Replace various modules
ModuleCdcwith the globallegacy.Cdc - #11179 Add state rollback command.
- #10794 ADR-040: Add State Sync to V2 Store
- #11234 Add
GRPCClientfield to Client Context. IfGRPCClientfield is set to nil, theInvokemethod would use ABCI query, otherwise use gprc. - (types) #10948 Add
app-db-backendto theapp.tomlconfig to replace the compile-timetypes.DBbackendvariable.
API Breaking Changes
- (store)#11152 Remove
keep-everyfrom pruning options. - #10950 Add
envPrefixparameter tocmd.Execute. - (x/mint) #10441 The
NewAppModulefunction now accepts an inflation calculation function as an argument. - #10295 Remove store type aliases from /types
- #9695 Migrate keys from
Info->Record- Add new
codec.Codecargument in:keyring.NewInMemorykeyring.New
- Rename:
SavePubKeytoSaveOfflineKey.NewMultiInfo,NewLedgerInfotoNewLegacyMultiInfo,newLegacyLedgerInforespectively. Move them intolegacy_info.go.NewOfflineInfotonewLegacyOfflineInfoand move it tomigration_test.go.
- Return:
*
keyring.Record, errorinSaveOfflineKey,SaveLedgerKey,SaveMultiSig,KeyandKeyByAddress. *keyring.Recordinstead ofInfoinNewMnemonicandList. - Remove
algoargument from :SaveOfflineKey
- Take
keyring.Recordinstead ofInfoas first argument in:MkConsKeyOutputMkValKeyOutputMkAccKeyOutput
- Add new
- #10022
AuthKeeperinterface inx/authnow includes a functionHasAccount. - #9759
NewAccountKeeeperinx/authnow takes an additionalbech32Prefixargument that representssdk.Bech32MainPrefix. - #9628 Rename
x/{mod}/legacytox/{mod}/migrations. - #9571 Implemented error handling for staking hooks, which now return an error on failure.
- #9427 Move simapp
FundAccountandFundModuleAccounttox/bank/testutil - (client/tx) #9421
BuildUnsignedTx,BuildSimTx,PrintUnsignedStdTxfunctions are moved to the Tx Factory as methods. - (client/keys) #9407 Added
keys renameCLI command andKeyring.Renameinterface method to rename a key in the keyring. - (x/slashing) #9458 Coins burned from slashing is now returned from Slash function and included in Slash event.
- #9246 The
Newmethod for the network package now returns an error. - #9519
DeleteDepositsrenamed toDeleteAndBurnDeposits,RefundDepositsrenamed toRefundAndDeleteDeposits - (codec) #9521 Removed deprecated
clientCtx.JSONCodecfromclient.Context. - (codec) #9521 Rename
EncodingConfig.MarshalertoCodec. - #9594
RESTHandlerFnargument is removed from thegov/NewProposalHandler. - #9594
types/restpackage moved totestutil/rest. - #9432
ConsensusParamsKeyTablemoved fromparams/keepertoparams/types - #9576 Add debug error message to
sdkerrors.QueryResultwhen enabled - #9650 Removed deprecated message handler implementation from the SDK modules.
- #10248 Remove unused
KeyPowerReductionvariable from x/staking types. - (x/bank) #9832
AddressFromBalancesStorerenamed toAddressAndDenomFromBalancesStore. - (tests) #9938
simapp.Setupaccepts additionaltesting.Targument. - (baseapp) #9920 BaseApp
{Check,Deliver,Simulate}Txmethods are now replaced by a middleware stack.- Replace the Antehandler interface with the
tx.Handlerandtx.Middlewareinterfaces. - Replace
baseapp.SetAnteHandlerwithbaseapp.SetTxHandler. - Move Msg routers from BaseApp to middlewares.
- Move Baseapp panic recovery into a middleware.
- Rename simulation helper methods
baseapp.{Check,Deliver}tobaseapp.Sim{Check,Deliver}**.
- Replace the Antehandler interface with the
- (x/gov) #10373 Removed gov
keeper.{MustMarshal, MustUnmarshal}. - #10348 StdSignBytes takes a new argument of type
*tx.Tipfor signing over tips using LEGACY_AMINO_JSON. - #10208 The
x/auth/signing.Txinterface now also includes a newGetTip() *tx.Tipmethod for verifying tipped transactions. Thex/auth/typesexpected BankKeeper interface now expects theSendCoinsmethod too. - #10612
baseapp.NewBaseAppconstructor function doesn't take thesdk.TxDecoderanymore. This logic has been moved into the TxDecoderMiddleware. - #10692
SignerDatatakes 2 new fields,AddressandPubKey, which need to get populated when using SIGN_MODE_DIRECT_AUX. - #10748 Move legacy
x/govapi tov1beta1directory. - #10816 Reuse blocked addresses from the bank module. No need to pass them to distribution.
- #10852 Move
x/gov/typestox/gov/types/v1beta2. - #10922, /#10957 Move key
server.Generate*functions to testutil and support custom mnemonics in in-process testing network. MovedTestMnemonicfromtestutilpackage totestdata. - (x/bank) #10771 Add safety check on bank module perms to allow module-specific mint restrictions (e.g. only minting a certain denom).
- (x/bank) #10771 Add
bank.BaseKeeper.WithMintCoinsRestrictionfunction to restrict use of bankMintCoinsusage. - #10868, #10989 The Gov keeper accepts now 2 more mandatory arguments, the ServiceMsgRouter and a maximum proposal metadata length.
- #10868, #10989, #11093 The Gov keeper accepts now 2 more mandatory arguments, the ServiceMsgRouter and a gov Config including the max metadata length.
- #11124 Add
GetAllVersionsto application store - (x/authz) #10447 authz
NewGranttakes a new argument: block time, to correctly validate expire time. - #10961 Support third-party modules to add extension snapshots to state-sync.
- #11274
types/errors.Newnow is an alias fortypes/errors.Registerand should only be used in initialization code.
Client Breaking Changes
- #11089 interacting with the node through
grpc.Dialrequires clients to pass a codec refer to doc. - #9594 Remove legacy REST API. Please see the REST Endpoints Migration guide to migrate to the new REST endpoints.
- #9995 Increased gas cost for creating proposals.
- #11029 The deprecated Vote Option field is removed in gov v1beta2 and nil in v1beta1. Use Options instead.
- #11013 The
tx gov submit-proposalcommand has changed syntax to support the new Msg-based gov proposals. To access the old CLI command, please usetx gov submit-legacy-proposal. - #11170 Fixes issue related to grpc-gateway of supply by ibc-denom.
CLI Breaking Changes
- #9695
<app> keys migrateCLI command now takes no arguments - #9246 Removed the CLI flag
--setup-config-onlyfrom thetestnetcommand and added the subcommandinit-files. - #9780 Use sigs.k8s.io for yaml, which might lead to minor YAML output changes
- #10625 Rename
--fee-accountCLI flag to--fee-granter - #10684 Rename
edit-validatorcommand's--monikerflag to--new-moniker - #11116
software-upgradeandcancel-software-upgradegov proposal commands have changed tolegacy-software-upgradeandlegacy-cancel-software-upgrade.
Improvements
- #11349 Add
RegisterAminoMsgfunction that checks that a msg name is <40 chars (else this would break ledger nano signing) then registers the concrete msg type with amino, it should be used for registeringsdk.Msgs with amino instead ofcdc.RegisterConcrete. - #11089 Now cosmos-sdk consumers can upgrade gRPC to its newest versions.
- #10439 Check error for
RegisterQueryHandlerClientin all modulesRegisterGRPCGatewayRoutes. - #9780 Remove gogoproto
moretagsYAML annotations and addsigs.k8s.io/yamlfor YAML marshalling. - (x/bank) #10134 Add
HasDenomMetadatafunction to bankKeeperto check if a client coin denom metadata exists in state. - (x/bank) #10022
BankKeeper.SendCoinsnow takes less execution time. - (deps) #9987 Bump Go version minimum requirement to
1.17 - (cli) #9856 Overwrite
--sequenceand--account-numberflags with default flag values when used withoffline=falseinsign-batchcommand. - (rosetta) #10001 Add documentation for rosetta-cli dockerfile and rename folder for the rosetta-ci dockerfile
- #9699 Add
:,.,-, and_as allowed characters in the default denom regular expression. - (genesis) #9697 Ensure
InitGenesisreturns with non-empty validator set. - #10341 Move from
io/ioutiltoioandospackages. - #10468 Allow futureOps to queue additional operations in simulations
- #10625 Add
--fee-payerCLI flag - (cli) #10683 In CLI, allow 1 SIGN_MODE_DIRECT signer in transactions with multiple signers.
- (deps) #10210 Bump Tendermint to v0.35.0.
- (deps) #10706 Bump rosetta-sdk-go to v0.7.2 and rosetta-cli to v0.7.3
- (types/errors) #10779 Move most functionality in
types/errorsto a standaloneerrorsgo module, except theRootCodespaceerrors and ABCI response helpers. All functions and types that used to live intypes/errorsare now aliased so this is not a breaking change. - (gov) #10854 v1beta2's vote doesn't include the deprecate
option VoteOptionanymore. Instead, it only usesWeightedVoteOption. - (types) #11004 Added mutable versions of many of the sdk.Dec types operations. This improves performance when used by avoiding reallocating a new bigint for each operation.
- (x/auth) #10880 Added a new query to the tx query service that returns a block with transactions fully decoded.
- (types) #11200 Added
Min()andMax()operations on sdk.Coins. - (gov) #11287 Fix error message when no flags are provided while executing
submit-legacy-proposaltransaction.
Bug Fixes
- #11354 Added missing pagination flag for
bank q totalquery. - #11197 Signing with multisig now works with multisig address which is not in the keyring.
- (makefile) #11285 Fix lint-fix make target.
- (client) #11283 Support multiple keys for tx simulation and setting automatic gas for txs.
- (store) #11177 Update the prune
everythingstrategy to store the last two heights. - #10844 Automatic recovering non-consistent keyring storage during public key import.
- (store) #11117 Fix data race in store trace component
- (cli) #11065 Ensure the
tendermint-validator-setquery command respects the-ooutput flag. - (grpc) #10985 The
/cosmos/tx/v1beta1/txs/{hash}endpoint returns a 404 when a tx does not exist. - (rosetta) #10340 Use
GenesisChunked(ctx)insteadGenesis(ctx)to get genesis block height - #10180 Documentation: make references to Cosmos SDK consistent
- #9651 Change inconsistent limit of
0toMaxUint64on InfiniteGasMeter and add GasRemaining func to GasMeter. - #9639 Check store keys length before accessing them by making sure that
keyis of lengthm+1(forkey[n:m]) - (types) #9627 Fix nil pointer panic on
NewBigIntFromInt - (x/genutil) #9574 Actually use the
gentxclient tx flags (like--keyring-dir) - (x/distribution) #9599 Withdraw rewards event now includes a value attribute even if there are 0 rewards (due to situations like 100% commission).
- (x/genutil) #9638 Added missing validator key save when recovering from mnemonic
- #9762 The init command uses the chain-id from the client config if --chain-id is not provided
- #9854 Fixed the
make proto-gento get dynamic container name based on project name for the cosmos based sdks. - #9980 Returning the error when the invalid argument is passed to bank query total supply cli.
- (server) #10016 Fix marshaling of index-events into server config file.
- #10184 Fixed CLI tx commands to no longer explicitly require the chain-id flag as this value can come from a user config.
- #10239 Fixed x/bank/044 migrateDenomMetadata.
- (x/upgrade) #10189 Removed potential sources of non-determinism in upgrades
- #10258 Fixes issue related to segmentation fault on mac m1 arm64
- #10466 Fixes error with simulation tests when genesis start time is randomly created after the year 2262
- #10394 Fixes issue related to grpc-gateway of account balance by ibc-denom.
- #10593 Update swagger-ui to v4.1.0 to fix xss vulnerability.
- #10842 Fix error when
--generate-only,--max-msgsfags set while executingWithdrawAllRewardscommand. - #10897 Fix: set a non-zero value on gas overflow.
- #9790 Fix behavior of
DecCoins.MulDecTruncate. - #10990 Fixes missing
iavl-cache-sizeconfig parsing inGetConfigmethod. - (crypto) [#11027] Remove dependency on Tendermint core for xsalsa20symmetric.
- (x/authz) #10447 Fix authz
NewGrantexpiration check. - (x/authz) #10633 Fixed authorization not found error when executing message.
- #11222 reject query with block height in the future
- #11229 Handled the error message of
transaction encountered errorfrom tendermint. - (x/authz) #11252 Allow insufficient funds error for authz simulation
- (cli) #11313 Fixes
--gas autowhen executing CLI transactions in--generate-onlymode - (cli) #11337 Fixes
show-adresscli cmd - (crypto) #11298 Fix cgo secp signature verification and update libscep256k1 library.
State Machine Breaking
- #10564 Fix bug when updating allowance inside AllowedMsgAllowance
- (x/auth)#9596 Enable creating periodic vesting accounts with a transactions instead of requiring them to be created in genesis.
- (x/bank) #9611 Introduce a new index to act as a reverse index between a denomination and address allowing to query for
token holders of a specific denomination.
DenomOwnersis updated to use the new reverse index. - (x/bank) #9832 Account balance is stored as
sdk.Intrather thansdk.Coin. - (x/bank) #9890 Remove duplicate denom from denom metadata key.
- (x/upgrade) #10189 Removed potential sources of non-determinism in upgrades
- #10422 and #10529 Add
MinCommissionRateparam tox/stakingmodule. - #10763 modify the fields in
TallyParamsto usestringinstead ofbytes - #10770 revert tx when block gas limit exceeded
- #10868 Bump gov to v1beta2. Both v1beta1 and v1beta2 queries and Msgs are accepted.
- #11011 Remove burning of deposits when qourum is not reached on a governance proposal and when the deposit is not fully met.
- #11019 Add
MsgCreatePermanentLockedAccountand CLI method for creating permanent locked account - (x/feegrant) #10830 Expired allowances will be pruned from state.
- (x/authz,x/feegrant) #11214 Fix Amino JSON encoding of authz and feegrant Msgs to be consistent with other modules.
Deprecated
- (x/upgrade) #9906 Deprecate
UpgradeConsensusStategRPC query since this functionality is only used for IBC, which now has its own IBC replacement - (types) #10948 Deprecate the types.DBBackend variable and types.NewLevelDB function. They are replaced by a new entry in
app.toml:app-db-backendandtendermint/tm-dbsNewDBfunction. Ifapp-db-backendis defined, then it is used. Otherwise, iftypes.DBBackendis defined, it is used (until removed: #11241). Otherwise, Tendermint config'sdb-backendis used.
v0.45.0 - 2022-01-18
State Machine Breaking
- #10833 fix reported tx gas used when block gas limit exceeded.
- (auth) #10536 Enable
SetSequenceforModuleAccount. - (store) #10218 Charge gas even when there are no entries while seeking.
- (store) #10247 Charge gas for the key length in gas meter.
- (x/gov) #10740 Increase maximum proposal description size from 5k characters to 10k characters.
- #10814 revert tx when block gas limit exceeded.
API Breaking Changes
- #10561 The
CommitMultiStoreinterface contains a newSetIAVLCacheSizemethod - #10922, /#10956 Deprecate key
server.Generate*functions and move them totestutiland support custom mnemonics in in-process testing network. MovedTestMnemonicfromtestutilpackage totestdata. - #11049 Add custom tendermint config variables into root command. Allows App developers to set config.toml variables.
Features
- #10614 Support in-place migration ordering
Improvements
- #10486 store/cachekv's
Store.Writeconservatively looks up keys, but also uses the map clearing idiom to reduce the RAM usage, CPU time usage, and garbage collection pressure from clearing maps, instead of allocating new maps. - (module) #10711 Panic at startup if the app developer forgot to add modules in the
SetOrder{BeginBlocker, EndBlocker, InitGenesis, ExportGenesis}functions. This means that all modules, even those who have empty implementations for those methods, need to be added toSetOrder*. - (types) #10076 Significantly speedup and lower allocations for
Coins.String(). - (auth) #10022
AuthKeeperinterface inx/authnow includes a functionHasAccount. - #10393 Add
HasSupplymethod to bank keeper to ensure that input denom actually exists on chain.
Bug Fixes
- (std/codec) /#10595 Add evidence to std/codec to be able to decode evidence in client interactions.
- (types) #9627 Fix nil pointer panic on
NewBigIntFromInt. - #10725 populate
ctx.ConsensusParamsfor begin/end blockers. - #9829 Fixed Coin denom sorting not being checked during
Balance.Validatecheck. Refactored the Validation logic to useCoins.ValidateforBalance.Coins - #10061 and #10515 Ensure that
LegacyAminoPubKeystruct correctly unmarshals from JSON
v0.44.5 - 2021-12-02
Improvements
- (baseapp) #10631 Emit ante events even for the failed txs.
- (store) #10741 Significantly speedup iterator creation after delete heavy workloads. Significantly improves IBC migration times.
Bug Fixes
- #10648 Upgrade IAVL to 0.17.3 to solve race condition bug in IAVL.
v0.44.4 - 2021-11-25
Improvements
- (types) #10630 Add an
Eventsfield to theTxResponsetype that captures all events emitted by a transaction, unlikeLogswhich only contains events emitted during message execution. - (x/upgrade) #10532 Add
keeper.DumpUpgradeInfoWithInfoToDiskto includePlan.Infoin the upgrade-info file. - (store) #10544 Use the new IAVL iterator structure which significantly improves iterator performance.
Bug Fixes
- #10827 Create query
Contextwith requested block height - #10414 Use
sdk.GetConfig().GetFullBIP44Path()insteadsdk.FullFundraiserPathto generate key - (bank) #10394 Fix: query account balance by ibc denom.
- \10608 Change the order of module migration by pushing x/auth to the end. Auth module depends on other modules and should be run last. We have updated the documentation to provide more details how to change module migration order. This is technically a breaking change, but only impacts updates between the upgrades with version change, hence migrating from the previous patch release doesn't cause new migration and doesn't break the state.
- #10674 Fix issue with
Error.WrapandError.Wrapfusage witherrors.Is.
v0.44.3 - 2021-10-21
Improvements
- #10768 Added extra logging for tracking in-place store migrations
- #10262 Remove unnecessary logging in
x/feegrantsimulation. - #10327 Add null guard for possible nil
Amountin tx feeCoins - #10339 Improve performance of
removeZeroCoinsby only allocating memory when necessary - #10045 Revert #8549. Do not route grpc queries through Tendermint.
- (deps) #10375 Bump Tendermint to v0.34.14.
- #10024
store/cachekvperformance improvement by reduced growth factor for iterator ranging by using binary searches to find dirty items when unsorted key count >= 1024.
Bug Fixes
- (client) #10226 Fix --home flag parsing.
- (rosetta) #10340 Use
GenesisChunked(ctx)insteadGenesis(ctx)to get genesis block height
v0.44.2 - 2021-10-12
Security Release. No breaking changes related to 0.44.x.
v0.44.1 - 2021-09-29
Improvements
- (store) #10040 Bump IAVL to v0.17.1 which includes performance improvements on a batch load.
- (types) #10021 Speedup coins.AmountOf(), by removing many intermittent regex calls.
- #10077 Remove telemetry on
GasKVandCacheKVstore Get/Set operations, significantly improving their performance. - (store) #10026 Improve CacheKVStore datastructures / algorithms, to no longer take O(N^2) time when interleaving iterators and insertions.
Bug Fixes
- #9969 fix: use keyring in config for add-genesis-account cmd.
- (x/genutil) #10104 Ensure the
initcommand reads the--homeflag value correctly. - (x/feegrant) #10049 Fixed the error message when
periodorperiod-limitflag is not set on a feegrant grant transaction.
Client Breaking Changes
- #9879 Modify ABCI Queries to use
abci.QueryRequestHeight field if it is non-zero, otherwise continue using context height.
v0.44.0 - 2021-09-01
Features
- #9860 Emit transaction fee in ante handler fee decorator. The event type is
txand the attribute isfee.
Improvements
Deprecated
- (x/upgrade) #9906 Deprecate
UpgradeConsensusStategRPC query since this functionality is only used for IBC, which now has its own IBC replacement
Bug Fixes
- #9965 Fixed
simd versioncommand output to report the right release tag. - (x/upgrade) #10189 Removed potential sources of non-determinism in upgrades.
Client Breaking Changes
- #10041 Remove broadcast & encode legacy REST endpoints. Please see the REST Endpoints Migration guide to migrate to the new REST endpoints.
v0.43.0 - 2021-08-10
Features
- #6711 Make integration test suites reusable by apps, tests are exported in each module's
client/testutilpackage. - #8077 Added support for grpc-web, enabling browsers to communicate with a chain's gRPC server
- #8965 cosmos reflection now provides more information on the application such as: deliverable msgs, sdk.Config info etc (still in alpha stage).
- #8520 Add support for permanently locked vesting accounts.
- #8559 Added Protobuf compatible secp256r1 ECDSA signatures.
- #8786 Enabled secp256r1 in x/auth.
- (rosetta) #8729 Data API fully supports balance tracking. Construction API can now construct any message supported by the application.
- #8754 Added support for reverse iteration to pagination.
- (types) #9079 Add
AddAmount/SubAmountmethods tosdk.Coin. - #9088 Added implementation to ADR-28 Derived Addresses.
- #9133 Added hooks for governance actions.
- (x/staking) #9214 Added
new_sharesattribute insideEventTypeDelegateevent. - #9382 feat: add Dec.Float64() function.
- #9457 Add amino support for x/authz and x/feegrant Msgs.
- #9498 Added
Codec: codec.Codecattribute toclient/Contextstructure. - #9540 Add output flag for query txs command.
- (errors) #8845 Add
Error.Wraphandy method - #8518 Help users of multisig wallets debug signature issues.
- #9573 ADR 040 implementation: New DB interface
- #9952 ADR 040: Implement in-memory DB backend
- #9848 ADR-040: Implement BadgerDB backend
- #9851 ADR-040: Implement RocksDB backend
- #10308 ADR-040: Implement DBConnection.Revert
- #9892 ADR-040: KV Store with decoupled storage and state commitment
Client Breaking Changes
- #8363 Addresses no longer have a fixed 20-byte length. From the SDK modules' point of view, any 1-255 bytes-long byte array is a valid address.
- (crypto/ed25519) [#8690] Adopt zip1215 ed2559 verification rules.
- #8849 Upgrade module no longer supports time based upgrades.
- #7477 Changed Bech32 Public Key serialization in the client facing functionality (CLI, MsgServer, QueryServer):
- updated the keyring display structure (it uses protobuf JSON serialization) - the output is more verbose.
- Renamed
MarshalAnyandUnmarshalAnytoMarshalInterfaceandUnmarshalInterfacerespectively. These functions must take an interface as parameter (not a concrete type norAnyobject). Underneath they useAnywrapping for correct protobuf serialization. - CLI: removed
--textflag fromshow-node-idcommand; the text format for public keys is not used any more - instead we use ProtoJSON.
- (store) #8790 Reduce gas costs by 10x for transient store operations.
- #9139 Querying events:
- via
ServiceMsgTypeURLs (e.g.message.action='/cosmos.bank.v1beta1.Msg/Send') does not work anymore, - via legacy
msg.Type()(e.g.message.action='send') is being deprecated, newMsgs won't emit these events. - Please use concrete
MsgTypeURLs instead (e.g.message.action='/cosmos.bank.v1beta1.MsgSend').
- via
- #9859 The
defaultpruning strategy now keeps the last 362880 blocks instead of 100. 362880 equates to roughly enough blocks to cover the entire unbonding period assuming a 21 day unbonding period and 5s block time. - #9785 Missing coin denomination in logs
API Breaking Changes
- (keyring) #\8662
NewMnemonicnow receives an additionalpassphraseargument to secure the key generated by the bip39 mnemonic. - (x/bank) #8473 Bank keeper does not expose unsafe balance changing methods such as
SetBalance,SetSupplyetc. - (x/staking) #8473 On genesis init, if non bonded pool and bonded pool balance, coming from the bank module, does not match what is saved in the staking state, the initialization will panic.
- (x/gov) #8473 On genesis init, if the gov module account balance, coming from bank module state, does not match the one in gov module state, the initialization will panic.
- (x/distribution) #8473 On genesis init, if the distribution module account balance, coming from bank module state, does not match the one in distribution module state, the initialization will panic.
- (client/keys) #8500
InfoImporterinterface is removed from legacy keybase. - (x/staking) #8505
sdk.PowerReductionhas been renamed tosdk.DefaultPowerReduction, and most staking functions relying on power reduction take a new function argument, instead of relying on that global variable. - #8629 Deprecated
SetFullFundraiserPathfromConfigin favor ofSetPurposeandSetCoinType. - (x/upgrade) #8673 Remove IBC logic from x/upgrade. Deprecates IBC fields in an Upgrade Plan, an error will be thrown if they are set. IBC upgrade logic moved to 02-client and an IBC UpgradeProposal is added.
- (x/bank) #8517
SupplyIinterface andSupplyare removed and usessdk.Coinsfor supply tracking - (x/upgrade) #8743
UpgradeHandlerincludes a new argumentVersionMapwhich helps facilitate in-place migrations. - (x/auth) #8129 Updated
SigVerifiableTx.GetPubKeysmethod signature to return error. - (x/upgrade) \7487 Upgrade
Keepertakes new argumentProtocolVersionSetterwhich implements setting a protocol version on baseapp. - (baseapp) \7487 BaseApp's fields appVersion and version were swapped to match Tendermint's fields.
- #8682
ante.NewAnteHandlerupdated to receive all positional params asante.HandlerOptionsstruct. If required fields aren't set, throws error accordingly. - (x/staking/types) #7447 Remove bech32 PubKey support:
ValidatorIinterface update:GetConsPubKeyrenamed toTmConsPubKey(this is to clarify the return type: consensus public key must be a tendermint key);TmConsPubKey,GetConsAddrmethods return error.Validatorupdated according to theValidatorIchanges described above.ToTmValidatorfunction: addederrorto return values.Validator.ConsensusPubkeytype changed fromstringtocodectypes.Any.MsgCreateValidator.Pubkeytype changed fromstringtocodectypes.Any.
- (client) #8926
client/tx.PrepareFactoryhas been converted to a private function, as it's only used internally. - (auth/tx) #8926 The
ProtoTxProviderinterface used as a workaround for transaction simulation has been removed. - (x/bank) #8798
GetTotalSupplyis removed in favour ofGetPaginatedTotalSupply - (keyring) #8739 Rename InfoImporter -> LegacyInfoImporter.
- (x/bank/types) #9061
AddressFromBalancesStorenow returns an error for invalid key instead of panic. - (x/auth) #9144 The
NewTxTimeoutHeightDecoratorantehandler has been converted from a struct to a function. - (codec) #9226 Rename codec interfaces and methods, to follow a general Go interfaces:
codec.Marshaler→codec.Codec(this defines objects which serialize other objects)codec.BinaryMarshaler→codec.BinaryCodeccodec.JSONMarshaler→codec.JSONCodec- Removed
BinaryBaresuffix fromBinaryCodecmethods (MarshalBinaryBare,UnmarshalBinaryBare, ...) - Removed
Binaryinfix fromBinaryCodecmethods (MarshalBinaryLengthPrefixed,UnmarshalBinaryLengthPrefixed, ...)
- #9139
ServiceMsgTypeURLs (e.g./cosmos.bank.v1beta1.Msg/Send) have been removed, as they don't comply to the ProbobufAnyspec. Please useMsgtype TypeURLs (e.g./cosmos.bank.v1beta1.MsgSend). This has multiple consequences:- The
sdk.ServiceMsgstruct has been removed. sdk.Msgnow only containsValidateBasicandGetSignersmethods. The remaining methodsGetSignBytes,RouteandTypeare moved tolegacytx.LegacyMsg.- The
RegisterCustomTypeURLfunction and thecosmos.base.v1beta1.ServiceMsginterface have been removed from the interface registry.
- The
- (codec) #9251 Rename
clientCtx.JSONMarshalertoclientCtx.JSONCodecas per #9226. - (x/bank) #9271 SendEnabledCoin(s) renamed to IsSendEnabledCoin(s) to better reflect its functionality.
- (x/bank) #9550
server.InterceptConfigsPreRunHandlernow takes 2 additional arguments: customAppConfigTemplate and customAppConfig. If you don't need to customize these, simply put""andnil. - #8245 Removed
simapp.MakeCodecsand usesimapp.MakeTestEncodingConfiginstead. - (x/capability) #9836 Removed
InitializeAndSeal(ctx sdk.Context)and replaced withSeal(). App must add x/capability module to the begin blockers which will assure that the x/capability keeper is properly initialized. The x/capability begin blocker must be run before any other module which uses x/capability.
State Machine Breaking
- (x/{bank,distrib,gov,slashing,staking}) #8363 Store keys have been modified to allow for variable-length addresses.
- (x/evidence) #8502
HandleEquivocationEvidencepersists the evidence to state. - (x/gov) #7733 ADR 037 Implementation: Governance Split Votes, use
MsgWeightedVoteto send a split vote. Sending a regularMsgVotewill convert the underlying vote option into a weighted vote with weight 1. - (x/bank) #8656 balance and supply are now correctly tracked via
coin_spent,coin_received,coinbaseandburnevents. - (x/bank) #8517 Supply is now stored and tracked as
sdk.Coins - (x/bank) #9051 Supply value is stored as
sdk.Intrather thanstring.
CLI Breaking Changes
- #8880 The CLI
simd migrate v0.40 ...command has been renamed tosimd migrate v0.42. - #8628 Commands no longer print outputs using
stderrby default - #9134 Renamed the CLI flag
--memoto--note. - #9291 Migration scripts prior to v0.38 have been removed from the CLI
migratecommand. The oldest supported migration is v0.39->v0.42. - #9371 Non-zero default fees/Server will error if there's an empty value for min-gas-price in app.toml
- #9827 Ensure input parity of validator public key input between
tx staking create-validatorandgentx. - #9621 Rollback #9371 and log warning if there's an empty value for min-gas-price in app.toml
Improvements
- (store) #8012 Implementation of ADR-038 WriteListener and listen.KVStore
- (x/bank) #8614 Add
NameandSymbolfields to denom metadata - (x/auth) #8522 Allow to query all stored accounts
- (crypto/types) #8600
CompactBitArray: optimize theNumTrueBitsBeforemethod and add anEqualmethod. - (x/upgrade) #8743 Add tracking module versions as per ADR-041
- (types) #8962 Add
Abs()method tosdk.Int. - (x/bank) #8950 Improve efficiency on supply updates.
- (store) #8811 store/cachekv: use typed
types/kv.Listinstead ofcontainer/list.List. The change brings time spent on the time assertion cummulatively to 580ms down from 6.88s. - (keyring) #8826 add trust to macOS Keychain for calling apps by default, avoiding repeating keychain popups that appears when dealing with keyring (key add, list, ...) operations.
- (makefile) #7933 Use Docker to generate swagger files.
- (crypto/types) #9196 Fix negative index accesses in CompactUnmarshal,GetIndex,SetIndex
- (makefile) #9192 Reuse proto containers in proto related jobs.
- #9205 Improve readability in
abcihandleQueryP2P - #9231 Remove redundant staking errors.
- #9314 Update Rosetta SDK to upstream's latest release.
- (gRPC-Web) #9493 Add
EnableUnsafeCORSflag to grpc-web config. - (x/params) #9481 Speedup simulator for parameter change proposals.
- (x/staking) #9423 Staking delegations now returns empty list instead of rpc error when no records found.
- (x/auth) #9553 The
--multisigflag now accepts both a name and address. - #8549 Make gRPC requests go through tendermint Query
- #8093 Limit usage of context.background.
- #8460 Ensure b.ReportAllocs() in all the benchmarks
- #8461 Fix upgrade tx commands not showing up in CLI
Bug Fixes
- (gRPC) #8945 gRPC reflection now works correctly.
- (keyring) #\8635 Remove hardcoded default passphrase value on
NewMnemonic - (x/bank) #8434 Fix legacy REST API
GET /bank/totalandGET /bank/total/{denom}in swagger - (x/slashing) #8427 Fix query signing infos command
- (x/bank/types) #9112 fix AddressFromBalancesStore address length overflow
- (x/bank) #9229 Now zero coin balances cannot be added to balances & supply stores. If any denom becomes zero corresponding key gets deleted from store. State migration: #9664.
- #9363 Check store key uniqueness in app wiring.
- #9460 Fix lint error in
MigratePrefixAddress. - #9480 Fix added keys when using
--dry-run. - (types) #9511 Change
maxBitLenofsdk.Intandsdk.Decto handle max ERC20 value. - #9454 Fix testnet command with --node-dir-prefix accepts
-and changenode-dir-prefix tokentotesttoken. - (keyring) #9562 fix keyring kwallet backend when using with empty wallet.
- (keyring) #9583 Fix correct population of legacy
Vote.Optionfield for votes with 1 VoteOption of weight 1. - (x/distinction) #8918 Fix module's parameters validation.
- (x/gov/types) #8586 Fix bug caused by NewProposal that unnecessarily creates a Proposal object that’s discarded on any error.
- #8580 Use more cheaper method from the math/big package that provides a way to trivially check if a value is zero with .BitLen() == 0
- #8567 Fix bug by introducing pagination to GetValidatorSetByHeight response
- (x/bank) #8531 Fix bug caused by ignoring errors returned by Balance.GetAddress()
- (server) #8399 fix gRPC-web flag default value
- #8282 fix zero time checks
- (cli) #9593 Check if chain-id is blank before verifying signatures in multisign and error.
- #9720 Feegrant grant cli granter now accepts key name as well as address in general and accepts only address in --generate-only mode
- #9793 Fixed ECDSA/secp256r1 transaction malleability.
- (server) #9704 Start GRPCWebServer in goroutine, avoid blocking other services from starting.
- (bank) #9687 fixes #9159. Added migration to prune balances with zero coins.
Deprecated
- (grpc) #8926 The
txfield inSimulateRequesthas been deprecated, prefer to passtx_bytesinstead. - (sdk types) #9498
clientContext.JSONCodecwill be removed in the next version. useclientContext.Codecinstead.
v0.42.10 - 2021-09-28
Improvements
- (store) #10026 Improve CacheKVStore datastructures / algorithms, to no longer take O(N^2) time when interleaving iterators and insertions.
- (store) #10040 Bump IAVL to v0.17.1 which includes performance improvements on a batch load.
- #10211 Backport of the mechanism to reject redundant IBC transactions from ibc-go #235.
Bug Fixes
- #9969 fix: use keyring in config for add-genesis-account cmd.
Client Breaking Changes
- #9879 Modify ABCI Queries to use
abci.QueryRequestHeight field if it is non-zero, otherwise continue using context height.
API Breaking Changes
- #10077 Remove telemetry on
GasKVandCacheKVstore Get/Set operations, significantly improving their performance.
v0.42.9 - 2021-08-04
Bug Fixes
- #9835 Moved capability initialization logic to BeginBlocker to fix nondeterminsim issue mentioned in #9800. Applications must now include the capability module in their BeginBlocker order before any module that uses capabilities gets run.
- #9201 Fixed
<app> init --recoverflag.
API Breaking Changes
- #9835 The
InitializeAndSealAPI has not changed, however it no longer initializes the in-memory state.InitMemStorehas been introduced to serve this function, which will be called either inInitChainorBeginBlock(whichever is first after app start). Nodes may run this version on a network running 0.42.x, however, they must update their app.go files to include the capability module in their begin blockers.
Client Breaking Changes
- #9781 Improve
withdraw-all-rewardsUX when broadcast modeasyncorasyncis used.
v0.42.8 - 2021-07-30
Features
- #9750 Emit events for tx signature and sequence, so clients can now query txs by signature (
tx.signature='<base64_sig>') or by address and sequence combo (tx.acc_seq='<addr>/<seq>').
Improvements
- (cli) #9717 Added CLI flag
--output json/texttotxcli commands.
Bug Fixes
- #9766 Fix hardcoded ledger signing algorithm on
keys addcommand.
v0.42.7 - 2021-07-09
Improvements
- (baseapp) #9578 Return
Baseapp'stracevalue for logging error stack traces.
Bug Fixes
- (x/ibc) #9640 Fix IBC Transfer Ack Success event as it was initially emitting opposite value.
- #9645 Use correct Prometheus format for metric labels.
- #9299 Fix
[appd] keys parse cosmos1...freezing. - (keyring) #9563 fix keyring kwallet backend when using with empty wallet.
- (x/capability) #9392 initialization fix, which fixes the consensus error when using statesync.
v0.42.6 - 2021-06-18
Improvements
- #9428 Optimize bank InitGenesis. Added
k.initBalances. - #9429 Add
cosmos_sdk_versionto node_info - #9541 Bump tendermint dependency to v0.34.11.
Bug Fixes
- #9385 Fix IBC
query ibc client headercli command. Support historical queries for query header/node-state commands. - #9401 Fixes incorrect export of IBC identifier sequences. Previously, the next identifier sequence for clients/connections/channels was not set during genesis export. This resulted in the next identifiers being generated on the new chain to reuse old identifiers (the sequences began again from 0).
- #9408 Update simapp to use correct default broadcast mode.
- #9513 Fixes testnet CLI command. Testnet now updates the supply in genesis. Previously, when using add-genesis-account and testnet together, inconsistent genesis files would be produced, as only add-genesis-account was updating the supply.
- (x/gov) #8813 fix
GET /cosmos/gov/v1beta1/proposals/{proposal_id}/depositsto include initial deposit
Features
- #9383 New CLI command
query ibc-transfer escrow-address <port> <channel id>to get the escrow address for a channel; can be used to then query balance of escrowed tokens - (baseapp, types) #\9390 Add current block header hash to
Context - (store) #9403 Add
RefundGasfunction toGasMeterinterface
v0.42.5 - 2021-05-18
Bug Fixes
- #9514 Fix panic when retrieving the
BlockGasMeteron(Re)CheckTxmode. - #9235 CreateMembershipProof/CreateNonMembershipProof now returns an error if input key is empty, or input data contains empty key.
- #9108 Fixed the bug with querying multisig account, which is not showing threshold and public_keys.
- #9345 Fix ARM support.
- #9040 Fix ENV variables binding to CLI flags for client config.
Features
- #8953 Add the
configCLI subcommand back to the SDK, which saves client-side configuration in aclient.tomlfile.
v0.42.4 - 2021-04-08
Client Breaking Changes
- #9026 By default, the
tx signandtx sign-batchCLI commands use SIGN_MODE_DIRECT to sign transactions for local pubkeys. For multisigs and ledger keys, the default LEGACY_AMINO_JSON is used.
Bug Fixes
- (gRPC) #9015 Fix invalid status code when accessing gRPC endpoints.
- #9026 Fixed the bug that caused the
gentxcommand to fail for Ledger keys.
Improvements
- #9081 Upgrade Tendermint to v0.34.9 that includes a security issue fix for Tendermint light clients.
v0.42.3 - 2021-03-24
This release fixes a security vulnerability identified in x/bank.
v0.42.2 - 2021-03-19
Improvements
- (grpc) #8815 Add orderBy parameter to
TxsByEventsendpoint. - (cli) #8826 Add trust to macOS Keychain for caller app by default.
- (store) #8811 store/cachekv: use typed types/kv.List instead of container/list.List
Bug Fixes
- (crypto) #8841 Fix legacy multisig amino marshaling, allowing migrations to work between v0.39 and v0.40+.
- (cli tx) \8873 add missing
--output-documentoption toapp tx multisign-batch.
v0.42.1 - 2021-03-10
This release fixes security vulnerability identified in the simapp.
v0.42.0 - 2021-03-08
IMPORTANT: This release contains an important security fix for all non Cosmos Hub chains running Stargate version of the Cosmos SDK (>0.40). Non-hub chains should not be using any version of the SDK in the v0.40.x or v0.41.x release series. See #8461 for more details.
Improvements
- (x/ibc) #8624 Emit full header in IBC UpdateClient message.
- (x/crisis) #8621 crisis invariants names now print to loggers.
Bug fixes
- (x/evidence) #8461 Fix bech32 prefix in evidence validator address conversion
- (x/gov) #8806 Fix q gov proposals command's mishandling of the --status parameter's values.
v0.41.4 - 2021-03-02
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 t he 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.
Features
- #7787 Add multisign-batch command.
Bug fixes
- #8730 Allow REST endpoint to query txs with multisig addresses.
- #8680 Fix missing timestamp in GetTxsEvent response #8732.
- #8681 Fix missing error message when calling GetTxsEvent #8732
- (server) #8641 Fix Tendermint and application configuration reading from file
- (client/keys) #8639 Fix keys migrate for mulitisig, offline, and ledger keys. The migrate command now takes a positional old_home_dir argument.
Improvements
- (store/cachekv), (x/bank/types) #8719 algorithmically fix pathologically slow code
- #8701 Upgrade tendermint v0.34.8.
- #8714 Allow accounts to have a balance of 0 at genesis.
v0.41.3 - 2021-02-18
Bug Fixes
- #8617 Fix build failures caused by a small API breakage introduced in tendermint v0.34.7.
v0.41.2 - 2021-02-18
Improvements
- Bump tendermint dependency to v0.34.7.
v0.41.1 - 2021-02-17
Bug Fixes
- (grpc) #8549 Make gRPC requests go through ABCI and disallow concurrency.
- (x/staking) #8546 Fix caching bug where concurrent calls to GetValidator could cause a node to crash
- (server) #8481 Don't create files when running
{appd} tendermint show-*subcommands. - (client/keys) #8436 Fix keybase->keyring keys migration.
- (crypto/hd) #8607 Make DerivePrivateKeyForPath error and not panic on trailing slashes.
Improvements
- (x/ibc) #8458 Add
packet_connectionattribute to ibc events to enable relayer filtering - #8396 Add support for ARM platform
- (x/bank) #8479 Aditional client denom metadata validation for
baseanddisplaydenoms. - (codec/types) #8605 Avoid unnecessary allocations for NewAnyWithCustomTypeURL on error.
v0.41.0 - 2021-01-26
State Machine Breaking
- (x/ibc) #8266 Add amino JSON support for IBC MsgTransfer in order to support Ledger text signing transfer transactions.
- (x/ibc) #8404 Reorder IBC
ChanOpenAckandChanOpenConfirmhandler execution to perform core handler first, followed by application callbacks.
Bug Fixes
- (simapp) #8418 Add balance coin to supply when adding a new genesis account
- (x/bank) #8417 Validate balances and coin denom metadata on genesis
v0.40.1 - 2021-01-19
Improvements
- (x/bank) #8302 Add gRPC and CLI queries for client denomination metadata.
- (tendermint) Bump Tendermint version to v0.34.3.
Bug Fixes
- #8085 fix zero time checks
- #8280 fix GET /upgrade/current query
- (x/auth) #8287 Fix
tx sign --signature-onlyto return correct sequence value in signature. - (build) \8300, \8301 Fix reproducible builds
- (types/errors) #8355 Fix errorWrap
Ismethod. - (x/ibc) #8341 Fix query latest consensus state.
- (proto) #8350, #8361 Update gogo proto deps with v1.3.2 security fixes
- (x/ibc) #8359 Add missing UnpackInterfaces functions to IBC Query Responses. Fixes 'cannot unpack Any' error for IBC types.
- (x/bank) #8317 Fix panic when querying for a not found client denomination metadata.
v0.40.0 - 2021-01-08
v0.40.0, known as the Stargate release of the Cosmos SDK, is one of the largest releases of the Cosmos SDK since launch. Please read through this changelog and release notes to make sure you are aware of any relevant breaking changes.
Client Breaking Changes
- CLI
- (client/keys) #5889 remove
keys updatecommand. - (x/auth) #5844
tx signcommand now returns an error when signing is attempted with offline/multisig keys. - (x/auth) #6108
tx signcommand's--validate-signaturesflag is migrated into atx validate-signaturesstandalone command. - (x/auth) #7788 Remove
tx authsubcommands, all auth subcommands exist astx <subcommand> - (x/genutil) #6651 The
gentxcommand has been improved. No longer are--fromand--nameflags required. Instead, a single argument,name, is required which refers to the key pair in the Keyring. In addition, an optional--monikerflag can be provided to override the moniker found inconfig.toml. - (x/upgrade) #7697 Rename flag name "--time" to "--upgrade-time", "--info" to "--upgrade-info", to keep it consistent with help message.
- (client/keys) #5889 remove
- REST / Queriers
- (api) #6426 The ability to start an out-of-process API REST server has now been removed. Instead, the API server is now started in-process along with the application and Tendermint. Configuration options have been added to
app.tomlto enable/disable the API server along with additional HTTP server options. - (client) #7246 The rest server endpoint
/swagger-ui/is replaced by/swagger/, and contains swagger documentation for gRPC Gateway routes in addition to legacy REST routes. Swagger API is exposed only if set inapp.toml. - (x/auth) #5702 The
x/authquerier route has changed from"acc"to"auth". - (x/bank) #5572 The
/bank/balances/{address}endpoint now returns all account balances or a single balance by denom when thedenomquery parameter is present. - (x/evidence) #5952 Remove CLI and REST handlers for querying
x/evidenceparameters. - (x/gov) #6295 Fix typo in querying governance params.
- (api) #6426 The ability to start an out-of-process API REST server has now been removed. Instead, the API server is now started in-process along with the application and Tendermint. Configuration options have been added to
- General
- (baseapp) #6384 The
Result.Datais now a Protocol Buffer encoded binary blob of typeTxData. TheTxDatacontainsDatawhich contains a list of Protocol Buffer encoded message data and the corresponding message type. - (client) #5783 Unify all coins representations on JSON client requests for governance proposals.
- (crypto) #7419 The SDK doesn't use Tendermint's
crypto.PubKeyinterface anymore, and uses instead it's ownPubKeyinterface, defined incrypto/types. Replace all instances ofcrypto.PubKeybycryptotypes.Pubkey. - (store/rootmulti) #6390 Proofs of empty stores are no longer supported.
- (store/types) #5730 store.types.Cp() is removed in favour of types.CopyBytes().
- (x/auth) #6054 Remove custom JSON marshaling for base accounts as multsigs cannot be bech32 decoded.
- (x/auth/vesting) #6859 Custom JSON marshaling of vesting accounts was removed. Vesting accounts are now marshaled using their default proto or amino JSON representation.
- (x/bank) #5785 In x/bank errors, JSON strings coerced to valid UTF-8 bytes at JSON marshalling time are now replaced by human-readable expressions. This change can potentially break compatibility with all those client side tools that parse log messages.
- (x/evidence) #7538 The ABCI's
Result.Datafield forMsgSubmitEvidenceresponses does not contain the raw evidence's hash, but the protobuf encodedMsgSubmitEvidenceResponsestruct. - (x/gov) #7533 The ABCI's
Result.Datafield forMsgSubmitProposalresponses does not contain a raw binary encoding of theproposalID, but the protobuf encodedMsgSubmitSubmitProposalResponsestruct. - (x/gov) #6859
ProposalStatusandVoteOptionare now JSON serialized using its protobuf name, so expect names likePROPOSAL_STATUS_DEPOSIT_PERIODas opposed toDepositPeriod. - (x/staking) #7499
BondStatusis now a protobufenuminstead of anint32, and JSON serialized using its protobuf name, so expect names likeBOND_STATUS_UNBONDINGas opposed toUnbonding. - (x/staking) #7556 The ABCI's
Result.Datafield forMsgBeginRedelegateandMsgUndelegateresponses does not contain custom binary marshaledcompletionTime, but the protobuf encodedMsgBeginRedelegateResponseandMsgUndelegateResponsestructs respectively
- (baseapp) #6384 The
API Breaking Changes
- Baseapp / Client
- (AppModule) #7518 #7584 Rename
AppModule.RegisterQueryServicestoAppModule.RegisterServices, as this method now registers multiple services (the gRPC query service and the protobuf Msg service). AConfiguratorstruct is used to hold the different services. - (baseapp) #5865 The
SimulationResponsereturned from tx simulation is now JSON encoded instead of Amino binary. - (client) #6290
CLIContextis renamed toContext.Contextand all related methods have been moved from package context to client. - (client) #6525 Removed support for
indentin JSON responses. Clients should consider piping to an external tool such asjq. - (client) #8107 Renamed
PrintOutputandPrintOutputLegacymethods of thecontext.Clientobject toPrintProtoandPrintObjectLegacy. - (client/flags) #6632 Remove NewCompletionCmd(), the function is now available in tendermint.
- (client/input) #5904 Removal of unnecessary
GetCheckPassword,PrintPrefixedfunctions. - (client/keys) #5889 Rename
NewKeyBaseFromDir()->NewLegacyKeyBaseFromDir(). - (client/keys) #5820 Removed method CloseDB from Keybase interface.
- (client/rpc) #6290
clientpackage and subdirs reorganization. - (client/lcd) #6290
CliCtxof structRestServerin package client/lcd has been renamed toClientCtx. - (codec) #6330
codec.RegisterCryptohas been moved to thecrypto/codecpackage and the globalcodec.CdcAmino instance has been deprecated and moved to thecodec/legacy_globalpackage. - (codec) #8080 Updated the
codec.Marshalerinterface- Moved
MarshalAnyandUnmarshalAnyhelper functions tocodec.Marshalerand renamed toMarshalInterfaceandUnmarshalInterfacerespectively. These functions must take interface as a parameter (not a concrete type norAnyobject). Underneath they useAnywrapping for correct protobuf serialization.
- Moved
- (crypto) #6780 Move ledger code to its own package.
- (crypto/types/multisig) #6373
multisig.Multisignaturehas been renamed toAminoMultisignature - (codec)
*codec.LegacyAminois now a wrapper around Amino which provides backwards compatibility with protobufAny. ALL legacy code should use*codec.LegacyAminoinstead of*amino.Codecdirectly - (crypto) #5880 Merge
crypto/keys/mintkeyintocrypto. - (crypto/hd) #5904
crypto/keys/hdmoved tocrypto/hd. - (crypto/keyring):
- #5866 Rename
crypto/keys/tocrypto/keyring/. - #5904
Keybase->Keyringinterfaces migration.LegacyKeybaseinterface is added in order to guarantee limited backward compatibility with the old Keybase interface for the sole purpose of migrating keys across the new keyring backends.NewLegacyconstructor is provided #5889 to allow for smooth migration of keys from the legacy LevelDB based implementation to new keyring backends. Plus, the package and the new keyring no longer depends on the sdk.Config singleton. Please consult the package documentation for more information on how to implement the newKeyringinterface. - #5858 Make Keyring store keys by name and address's hexbytes representation.
- #5866 Rename
- (export) #5952
AppExporternow returns ABCI consensus parameters to be included in marshaled exported state. These parameters must be returned from the application via theBaseApp. - (simapp) Deprecating and renaming
MakeEncodingConfigtoMakeTestEncodingConfig(both insimappandsimapp/paramspackages). - (store) #5803 The
store.CommitMultiStoreinterface now includes the newsnapshots.Snapshotterinterface as well. - (types) #5579 The
keepRecentfield has been removed from thePruningOptionstype. ThePruningOptionstype now only includes fieldsKeepEveryandSnapshotEvery, whereKeepEverydetermines which committed heights are flushed to disk andSnapshotEverydetermines which of these heights are kept after pruning. TheIsValidmethod should be called whenever using these options. MethodsSnapshotVersionandFlushVersionaccept a version arugment and determine if the version should be flushed to disk or kept as a snapshot. Note,KeepRecentis automatically inferred from the options and provided directly the IAVL store. - (types) #5533 Refactored
AppModuleBasicandAppModuleGenesisto now accept acodec.JSONMarshalerfor modular serialization of genesis state. - (types/rest) #5779 Drop unused Parse{Int64OrReturnBadRequest,QueryParamBool}() functions.
- (AppModule) #7518 #7584 Rename
- Modules
- (modules) #7243 Rename
RegisterCodectoRegisterLegacyAminoCodecandcodec.New()is now renamed tocodec.NewLegacyAmino() - (modules) #6564 Constant
DefaultParamspaceis removed from all modules, use ModuleName instead. - (modules) #5989
AppModuleBasic.GetTxCmdnow takes a singleCLIContextparameter. - (modules) #5664 Remove amino
Codecfrom simulationStoreDecoder, which now returns a function closure in order to unmarshal the key-value pairs. - (modules) #5555 Move
x/auth/client/utils/types and functions tox/auth/client/. - (modules) #5572 Move account balance logic and APIs from
x/authtox/bank. - (modules) #6326
AppModuleBasic.GetQueryCmdnow takes a singleclient.Contextparameter. - (modules) #6336
AppModuleBasic.RegisterQueryServicemethod was added to support gRPC queries, andQuerierRouteandNewQuerierHandlerwere deprecated. - (modules) #6311 Remove
alias.gousage - (modules) #6447 Rename
blacklistedAddrstoblockedAddrs. - (modules) #6834 Add
RegisterInterfacesmethod toAppModuleBasicto support registration of protobuf interface types. - (modules) #6734 Add
TxEncodingConfigparameter toAppModuleBasic.ValidateGenesiscommand to support JSON tx decoding ingenutil. - (modules) #7764 Added module initialization options:
server/types.AppExporterrequires extra argument:AppOptions.server.AddCommandsrequires extra argument:addStartFlags types.ModuleInitFlagsx/crisis.NewAppModulehas a new attribute:skipGenesisInvariants. PR
- (types) #6327
sdk.Msgnow inheritsproto.Message, as a result allsdk.Msgtypes now use pointer semantics. - (types) #7032 All types ending with
ID(e.g.ProposalID) now end withId(e.g.ProposalId), to match default Protobuf generated format. Also see #7033 for more details. - (x/auth) #6029 Module accounts have been moved from
x/supplytox/auth. - (x/auth) #6443 Move
FeeTxandTxWithMemointerfaces fromx/auth/antetotypes. - (x/auth) #7006 All
AccountRetrievermethods now takeclient.Contextas a parameter instead of as a struct member. - (x/auth) #6270 The passphrase argument has been removed from the signature of the following functions and methods:
BuildAndSign,MakeSignature,SignStdTx,TxBuilder.BuildAndSign,TxBuilder.Sign,TxBuilder.SignStdTx - (x/auth) #6428:
NewAnteHandlerandNewSigVerificationDecoratorboth now take aSignModeHandlerparameter.SignatureVerificationGasConsumernow has the signature:func(meter sdk.GasMeter, sig signing.SignatureV2, params types.Params) error.- The
SigVerifiableTxinterface now has aGetSignaturesV2() ([]signing.SignatureV2, error)method and no longer has theGetSignBytesmethod.
- (x/auth/tx) #8106 change related to missing append functionality in
client transaction signing
- added
overwriteSigargument tox/auth/client.SignTxandclient/tx.Signfunctions. - removed
x/auth/tx.go:wrapper.GetSignatures. ThewrapperprovidesTxBuilderfunctionality, and it's a private structure. That function was not used at all and it's not exposed through theTxBuilderinterface.
- added
- (x/bank) #7327 AddCoins and SubtractCoins no longer return a resultingValue and will only return an error.
- (x/capability) #7918 Add x/capability safety checks:
- All outward facing APIs will now check that capability is not nil and name is not empty before performing any state-machine changes
SetIndexhas been renamed toInitializeIndex
- (x/evidence) #7251 New evidence types and light client evidence handling. The module function names changed.
- (x/evidence) #5952 Remove APIs for getting and setting
x/evidenceparameters.BaseAppnow uses aParamStoreto manage Tendermint consensus parameters which is managed via thex/paramsSubstoretype. - (x/gov) #6147 The
Contentfield onProposalandMsgSubmitProposalis nowAnyin concordance with ADR 019 andGetContentshould now be used to retrieve the actual proposalContent. Also theNewMsgSubmitProposalconstructor now may return anerror - (x/ibc) #6374
VerifyMembershipandVerifyNonMembershipnow take aspecs []stringargument to specify the proof format used for verification. Most SDK chains can simply usecommitmenttypes.GetSDKSpecs()for this argument. - (x/params) #5619 The
x/paramskeeper now accepts acodec.Marshallerinstead of a reference to an amino codec. Amino is still used for JSON serialization. - (x/staking) #6451
DefaultParamspaceandParamKeyTablein staking module are moved from keeper to types to enforce consistency. - (x/staking) #7419 The
TmConsPubKeymethod on ValidatorI has been removed and replaced instead byConsPubKey(which returns a SDKcryptotypes.PubKey) andTmConsPublicKey(which returns a Tendermint proto PublicKey). - (x/staking/types) #7447 Remove bech32 PubKey support:
ValidatorIinterface update.GetConsPubKeyrenamed toTmConsPubKey(consensus public key must be a tendermint key).TmConsPubKey,GetConsAddrmethods return error.Validatorupdate. Methods changed inValidatorI(as described above) andToTmValidatorreturn error.Validator.ConsensusPubkeytype changed fromstringtocodectypes.Any.MsgCreateValidator.Pubkeytype changed fromstringtocodectypes.Any.
- (x/supply) #6010 All
x/supplytypes and APIs have been moved tox/bank. - #6409 Rename all IsEmpty methods to Empty across the codebase and enforce consistency.
- #6231 Simplify
AppModuleinterface,RouteandNewHandlermethods become onlyRouteand returns a newRoutetype. - (x/slashing) #6212 Remove
Get*prefixes from key construction functions - (server) #6079 Remove
UpgradeOldPrivValFile(deprecated in Tendermint Core v0.28). - #5719 Bump Go requirement to 1.14+
- (modules) #7243 Rename
State Machine Breaking
-
General
-
Modules
- (modules) #5572 Separate balance from accounts per ADR 004.
- Account balances are now persisted and retrieved via the
x/bankmodule. - Vesting account interface has been modified to account for changes.
- Callers to
NewBaseVestingAccountare responsible for verifying account balance in relation to the original vesting amount. - The
SendKeeperandViewKeeperinterfaces inx/bankhave been modified to account for changes.
- Account balances are now persisted and retrieved via the
- (x/auth) #5533 Migrate the
x/authmodule to use Protocol Buffers for state serialization instead of Amino.- The
BaseAccount.PubKeyfield is now represented as a Bech32 string instead of acrypto.Pubkey. NewBaseAccountWithAddressnow returns a reference to aBaseAccount.- The
x/authmodule now accepts aCodecinterface which extends thecodec.Marshalerinterface by requiring a concrete codec to know how to serialize accounts. - The
AccountRetrievertype now accepts aCodecin its constructor in order to know how to serialize accounts.
- The
- (x/bank) #6518 Support for global and per-denomination send enabled flags.
- Existing send_enabled global flag has been moved into a Params structure as
default_send_enabled. - An array of:
{denom: string, enabled: bool}is added to bank Params to support per-denomination override of global default value.
- Existing send_enabled global flag has been moved into a Params structure as
- (x/distribution) #5610 Migrate the
x/distributionmodule to use Protocol Buffers for state serialization instead of Amino. The exact codec used iscodec.HybridCodecwhich utilizes Protobuf for binary encoding and Amino for JSON encoding.ValidatorHistoricalRewards.ReferenceCountis now of typesuint32instead ofuint16.ValidatorSlashEventsis now a struct withslashevents.ValidatorOutstandingRewardsis now a struct withrewards.ValidatorAccumulatedCommissionis now a struct withcommission.- The
Keeperconstructor now takes acodec.Marshalerinstead of a concrete Amino codec. This exact type provided is specified byModuleCdc.
- (x/evidence) #5634 Migrate the
x/evidencemodule to use Protocol Buffers for state serialization instead of Amino.- The
internalsub-package has been removed in order to expose the types proto file. - The module now accepts a
Codecinterface which extends thecodec.Marshalerinterface by requiring a concrete codec to know how to serializeEvidencetypes. - The
MsgSubmitEvidencemessage has been removed in favor ofMsgSubmitEvidenceBase. The application-level codec must now define the concreteMsgSubmitEvidencetype which must implement the module'sMsgSubmitEvidenceinterface.
- The
- (x/evidence) #5952 Remove parameters from
x/evidencegenesis and module state. Thex/evidencemodule now solely uses Tendermint consensus parameters to determine of evidence is valid or not. - (x/gov) #5737 Migrate the
x/govmodule to use Protocol Buffers for state serialization instead of Amino.MsgSubmitProposalwill be removed in favor of the application-level proto-definedMsgSubmitProposalwhich implements theMsgSubmitProposalIinterface. Applications should extend theNewMsgSubmitProposalBasetype to define their own concreteMsgSubmitProposaltypes.- The module now accepts a
Codecinterface which extends thecodec.Marshalerinterface by requiring a concrete codec to know how to serializeProposaltypes.
- (x/mint) #5634 Migrate the
x/mintmodule to use Protocol Buffers for state serialization instead of Amino.- The
internalsub-package has been removed in order to expose the types proto file.
- The
- (x/slashing) #5627 Migrate the
x/slashingmodule to use Protocol Buffers for state serialization instead of Amino. The exact codec used iscodec.HybridCodecwhich utilizes Protobuf for binary encoding and Amino for JSON encoding.- The
Keeperconstructor now takes acodec.Marshalerinstead of a concrete Amino codec. This exact type provided is specified byModuleCdc.
- The
- (x/staking) #6844 Validators are now inserted into the unbonding queue based on their unbonding time and height. The relevant keeper APIs are modified to reflect these changes by now also requiring a height.
- (x/staking) #6061 Allow a validator to immediately unjail when no signing info is present due to falling below their minimum self-delegation and never having been bonded. The validator may immediately unjail once they've met their minimum self-delegation.
- (x/staking) #5600 Migrate the
x/stakingmodule to use Protocol Buffers for state serialization instead of Amino. The exact codec used iscodec.HybridCodecwhich utilizes Protobuf for binary encoding and Amino for JSON encoding.BondStatusis now of typeint32instead ofbyte.- Types of
int16in theParamstype are now of typeint32. - Every reference of
crypto.Pubkeyin context of aValidatoris now of type string.GetPubKeyFromBech32must be used to get thecrypto.Pubkey. - The
Keeperconstructor now takes acodec.Marshalerinstead of a concrete Amino codec. This exact type provided is specified byModuleCdc.
- (x/staking) #7979 keeper pubkey storage serialization migration from bech32 to protobuf.
- (x/supply) #6010 Removed the
x/supplymodule by merging the existing types and APIs into thex/bankmodule. - (x/supply) #5533 Migrate the
x/supplymodule to use Protocol Buffers for state serialization instead of Amino.- The
internalsub-package has been removed in order to expose the types proto file. - The
x/supplymodule now accepts aCodecinterface which extends thecodec.Marshalerinterface by requiring a concrete codec to know how to serializeSupplyItypes. - The
SupplyIinterface has been modified to no longer returnSupplyIon methods. Instead the concrete type's receiver should modify the type.
- The
- (x/upgrade) #5659 Migrate the
x/upgrademodule to use Protocol Buffers for state serialization instead of Amino.- The
internalsub-package has been removed in order to expose the types proto file. - The
x/upgrademodule now accepts acodec.Marshalerinterface.
- The
- (modules) #5572 Separate balance from accounts per ADR 004.
Features
- Baseapp / Client / REST
- (x/auth) #6213 Introduce new protobuf based path for transaction signing, see ADR020 for more details
- (x/auth) #6350 New sign-batch command to sign StdTx batch files.
- (baseapp) #5803 Added support for taking state snapshots at regular height intervals, via options
snapshot-intervalandsnapshot-keep-recent. - (baseapp) #7519 Add
ServiceMsgRouterto BaseApp to handle routing of protobuf serviceMsgs. The two new types defined in ADR 031,sdk.ServiceMsgandsdk.MsgRequestare introduced with this router. - (client) #5921 Introduce new gRPC and gRPC Gateway based APIs for querying app & module data. See ADR021 for more details
- (cli) #7485 Introduce a new optional
--keyring-dirflag that allows clients to specify a Keyring directory if it does not reside in the directory specified by--home. - (cli) #7221 Add the option of emitting amino encoded json from the CLI
- (codec) #7519
InterfaceRegistrynow inheritsjsonpb.AnyResolver, and has aRegisterCustomTypeURLmethod to support ADR 031 packing ofAnys.AnyResolveris now a required parameter toRejectUnknownFields. - (coin) #6755 Add custom regex validation for
Coindenom by overwritingCoinDenomRegexwhen using/types/coin.go. - (config) #7265 Support Tendermint block pruning through a new
min-retain-blocksconfiguration that can be set in eitherapp.tomlor via the CLI. This parameter is used in conjunction with other criteria to determine the height at which Tendermint should prune blocks. - (events) #7121 The application now derives what events are indexed by Tendermint via the
index-eventsconfiguration inapp.toml, which is a list of events taking the form{eventType}.{attributeKey}. - (tx) #6089 Transactions can now have a
TimeoutHeightset which allows the transaction to be rejected if it's committed at a height greater than the timeout. - (rest) #6167 Support
max-body-bytesCLI flag for the REST service. - (genesis) #7089 The
exportcommand now adds ainitial_heightfield in the exported JSON. Baseapp'sCommitMultiStorenow also has aSetInitialVersionsetter, so it can set the initial store version insideInitChainand start a new chain from a given height.
- General
- (crypto/multisig) #6241 Add Multisig type directly to the repo. Previously this was in tendermint.
- (codec/types) #8106 Adding
NewAnyWithCustomTypeURLto correctly marshal Messages in TxBuilder. - (tests) #6489 Introduce package
testutil, new in-process testing network framework for use in integration and unit tests. - (tx) Add new auth/tx gRPC & gRPC-Gateway endpoints for basic querying & broadcasting support
- (tx) #7688 Add a new Tx gRPC service with methods
SimulateandGetTx(by hash). - (store) #5803 Added
rootmulti.Storemethods for taking and restoring snapshots, based oniavl.Storeexport/import. - (store) #6324 IAVL store query proofs now return CommitmentOp which wraps an ics23 CommitmentProof
- (store) #6390
RootMultistore query proofs now returnCommitmentOpwhich wrapsCommitmentProofsstore.Querynow only returns chainedics23.CommitmentProofwrapped inmerkle.ProofProofRuntimeonly decodes and verifiesics23.CommitmentProof
- Modules
- (modules) #5921 Introduction of Query gRPC service definitions along with REST annotations for gRPC Gateway for each module
- (modules) #7540 Protobuf service definitions can now be used for
packing
Msgs in transactions as defined in ADR 031. All modules now define aMsgprotobuf service. - (x/auth/vesting) #7209 Create new
MsgCreateVestingAccountmessage type along with CLI handler that allows for the creation of delayed and continuous vesting types. - (x/capability) #5828 Capability module integration as outlined in ADR 3 - Dynamic Capability Store.
- (x/crisis)
x/crisishas a new function:AddModuleInitFlags, which will register optional crisis module flags for the start command. - (x/ibc) #5277
x/ibcchanges from IBC alpha. For more details check the thex/ibc/core/specdirectory, or the ICS specs below:- ICS 002 - Client Semantics subpackage
- ICS 003 - Connection Semantics subpackage
- ICS 004 - Channel and Packet Semantics subpackage
- ICS 005 - Port Allocation subpackage
- ICS 006 - Solo Machine Client subpackage
- ICS 007 - Tendermint Client subpackage
- ICS 009 - Loopback Client subpackage
- ICS 020 - Fungible Token Transfer subpackage
- ICS 023 - Vector Commitments subpackage
- ICS 024 - Host State Machine Requirements subpackage
- (x/ibc) #6374 ICS-23 Verify functions will now accept and verify ics23 CommitmentProofs exclusively
- (x/params) #6005 Add new CLI command for querying raw x/params parameters by subspace and key.
Bug Fixes
- Baseapp / Client / REST
- (client) #5964
--trust-nodeis now false by default - for real. Users must ensure it is set to true if they don't want to enable the verifier. - (client) #6402 Fix
keys add--algoflag which only worked for Tendermint'ssecp256k1default key signing algorithm. - (client) #7699 Fix panic in context when setting invalid nodeURI.
WithNodeURIdoes not set theClientin the context. - (export) #6510 Field TimeIotaMs now is included in genesis file while exporting.
- (rest) #5906 Fix an issue that make some REST calls panic when sending invalid or incomplete requests.
- (crypto) #7966
Bip44ParamsString()function now correctly returns the absolute HD path by adding them/prefix. - (crypto/keyring) #5844
Keyring.Sign()methods no longer decode amino signatures when method receivers are offline/multisig keys. - (store) #7415 Allow new stores to be registered during on-chain upgrades.
- (client) #5964
- Modules
- (modules) #5569
InitGenesis, for the relevant modules, now ensures module accounts exist. - (x/auth) #5892 Add
RegisterKeyTypeCodecto register new types (eg. keys) to theauthmodule internal amino codec. - (x/bank) #6536 Fix bug in
WriteGeneratedTxResponsefunction used by multiple REST endpoints. Now it writes a Tx in StdTx format. - (x/genutil) #5938 Fix
InitializeNodeValidatorFileserror handling. - (x/gentx) #8183 change gentx cmd amount to arg from flag
- (x/gov) #7641 Fix tally calculation precision error.
- (x/staking) #6529 Export validator addresses (previously was empty).
- (x/staking) #5949 Skip staking
HistoricalInfoKeyin simulations as headers are not exported. - (x/staking) #6061 Allow a validator to immediately unjail when no signing info is present due to falling below their minimum self-delegation and never having been bonded. The validator may immediately unjail once they've met their minimum self-delegation.
- (modules) #5569
- General
Improvements
- Baseapp / Client / REST
- (baseapp) #6186 Support emitting events during
AnteHandlerexecution. - (baseapp) #6053 Customizable panic recovery handling added for
app.runTx()method (as proposed in the ADR 22). Adds ability for developers to register custom panic handlers extending standard ones. - (client) #5810 Added a new
--offlineflag that allows commands to be executed without an internet connection. Previously,--generate-onlyserved this purpose in addition to only allowing txs to be generated. Now,--generate-onlysolely allows txs to be generated without being broadcasted and disallows Keybase use and--offlineallows the use of Keybase but does not allow any functionality that requires an online connection. - (cli) #7764 Update x/banking and x/crisis InitChain to improve node startup time
- (client) #5856 Added the possibility to set
--offlineflag with config command. - (client) #5895 show config options in the config command's help screen.
- (client/keys) #8043 Add support for export of unarmored private key
- (client/tx) #7801 Update sign-batch multisig to work online
- (x/genutil) #8099
initnow supports a--recoverflag to recover the private validator key from a given mnemonic
- (baseapp) #6186 Support emitting events during
- Modules
- (x/auth) #5702 Add parameter querying support for
x/auth. - (x/auth/ante) #6040
AccountKeeperinterface used forNewAnteHandlerand handler's decorators to add support of using customAccountKeeperimplementations. - (x/evidence) #5952 Tendermint Consensus parameters can now be changed via parameter change proposals through
x/gov. - (x/evidence) #5961 Add
StoreDecodersimulation for evidence module. - (x/ibc) #5948 Add
InitGenesisandExportGenesisfunctions foribcmodule. - (x/ibc-transfer) #6871 Implement ADR 001 - Coin Source Tracing.
- (x/staking) #6059 Updated
HistoricalEntriesparameter default to 100. - (x/staking) #5584 Add util function
ToTmValidatorthat converts astaking.Validatortype to*tmtypes.Validator. - (x/staking) #6163 CLI and REST call to unbonding delegations and delegations now accept pagination.
- (x/staking) #8178 Update default historical header number for stargate
- (x/auth) #5702 Add parameter querying support for
- General
- (crypto) #7987 Fix the inconsistency of CryptoCdc, only use
codec/legacy.Cdc. - (logging) #8072 Refactor logging:
- Use zerolog over Tendermint's go-kit logging wrapper.
- Introduce Tendermint's
--log_format=plain|jsonflag. Using formatjsonallows for emitting structured JSON logs which can be consumed by an external logging facility (e.g. Loggly). Both formats log to STDERR. - The existing
--log_levelflag and it's default value now solely relates to the global logging level (e.g.info,debug, etc...) instead of<module>:<level>.
- (rest) #7649 Return an unsigned tx in legacy GET /tx endpoint when signature conversion fails
- (simulation) #6002 Add randomized consensus params into simulation.
- (store) #6481 Move
SimpleProofsFromMapfrom Tendermint into the SDK. - (store) #6719 Add validity checks to stores for nil and empty keys.
- (SDK) Updated dependencies
- Updated iavl dependency to v0.15.3
- Update tendermint to v0.34.1
- (types) #7027
Coin(s)andDecCoin(s)updates:- Bump denomination max length to 128
- Allow uppercase letters and numbers in denominations to support ADR 001
- Added
Validatefunction that returns a descriptive error
- (types) #5581 Add convenience functions {,Must}Bech32ifyAddressBytes.
- (types/module) #5724 The
types/modulepackage does no longer depend onx/simulation. - (types) #5585 IBC additions:
Coindenomination max lenght has been increased to 32.- Added
CapabilityKeyalias forStoreKeyto match IBC spec.
- (types/rest) #5900 Add Check*Error function family to spare developers from replicating tons of boilerplate code.
- (types) #6128 Add
String()method toGasMeter. - (types) #6195 Add codespace to broadcast(sync/async) response.
- (types) #6897 Add KV type from tendermint to
typesdirectory. - (version) #7848 #7941
version --longoutput now shows the list of build dependencies and replaced build dependencies.
- (crypto) #7987 Fix the inconsistency of CryptoCdc, only use
v0.39.1 - 2020-08-11
Client Breaking
- (x/auth) #6861 Remove public key Bech32 encoding for all account types for JSON serialization, instead relying on direct Amino encoding. In addition, JSON serialization utilizes Amino instead of the Go stdlib, so integers are treated as strings.
Improvements
- (client) #6853 Add --unsafe-cors flag.
v0.39.0 - 2020-07-20
Improvements
- (deps) Bump IAVL version to v0.14.0
- (client) #5585
CLIContextadditions:- Introduce
QueryABCIthat returns the fullabci.ResponseQuerywith inclusion Merkle proofs. - Added
proveflag for Merkle proof verification.
- Introduce
- (x/staking) #6791) Close {UBDQueue,RedelegationQueu}Iterator once used.
API Breaking Changes
- (baseapp) #5837 Transaction simulation now returns a
SimulationResponsewhich contains theGasInfoandResultfrom the execution.
Client Breaking Changes
- (x/auth) #6745 Remove BaseAccount's custom JSON {,un}marshalling.
Bug Fixes
- (store) #6475 Revert IAVL pruning functionality introduced in
v0.13.0,
where the IAVL no longer keeps states in-memory in which it flushes periodically. IAVL now commits and
flushes every state to disk as it did pre-v0.13.0. The SDK's multi-store will track and ensure the proper
heights are pruned. The operator can set the pruning options via a
pruningconfig via the CLI or throughapp.toml. Thepruningflag exposesdefault|everything|nothing|customas options -- see docs for further details. If the operator choosescustom, they may provide granular pruning optionspruning-keep-recent,pruning-keep-every, andpruning-interval. The former two options dictate how many recent versions are kept on disk and the offset of what versions are kept after that respectively, and the latter defines the height interval in which versions are deleted in a batch. Note, there are some client-facing API breaking changes with regard to IAVL, stores, and pruning settings. - (x/distribution) #6210 Register
MsgFundCommunityPoolin distribution amino codec. - (types) #5741 Prevent
ChainAnteDecorators()from panicking when emptyAnteDecoratorslice is supplied. - (baseapp) #6306 Prevent events emitted by the antehandler from being persisted between transactions.
- (client/keys) #5091
keys parsedoes not honor client app's configuration. - (x/bank) #6674 Create account if recipient does not exist on handing
MsgMultiSend. - (x/auth) #6287 Fix nonce stuck when sending multiple transactions from an account in a same block.
[v0.38.5] - 2020-07-02
Improvements
- (tendermint) Bump Tendermint version to v0.33.6.
[v0.38.4] - 2020-05-21
Bug Fixes
- (x/auth) #5950 Fix
IncrementSequenceDecoratorto use isIsReCheckTxinstead ofIsCheckTxto allow account sequence incrementing.
[v0.38.3] - 2020-04-09
Improvements
- (tendermint) Bump Tendermint version to v0.33.3.
v0.38.2 - 2020-03-25
Bug Fixes
- (baseapp) #5718 Remove call to
ctx.BlockGasMeterduring failed message validation which resulted in a panic when the tx execution mode wasCheckTx. - (x/genutil) #5775 Fix
ExportGenesisinx/genutilto export default genesis state ([]) instead ofnull. - (client) #5618 Fix crash on the client when the verifier is not set.
- (crypto/keys/mintkey) #5823 fix errors handling in
UnarmorPubKeyBytes(underlying armoring function's return error was not being checked). - (x/distribution) #5620 Fix nil pointer deref in distribution tax/reward validation helpers.
Improvements
- (rest) #5648 Enhance /txs usability:
- Add
tx.minheightkey to filter transaction with an inclusive minimum block height - Add
tx.maxheightkey to filter transaction with an inclusive maximum block height
- Add
- (crypto/keys) #5739 Print an error message if the password input failed.
v0.38.1 - 2020-02-11
Improvements
- (modules) #5597 Add
amountevent attribute to thecomplete_unbondingandcomplete_redelegationevents that reflect the total balances of the completed unbondings and redelegations respectively.
Bug Fixes
- (types) #5579 The IAVL
Store#Commitmethod has been refactored to delete a flushed version if it is not a snapshot version. The root multi-store now keeps track ofcommitInfoinstead oftypes.CommitID. DuringCommitof the root multi-store,lastCommitInfois updated from the saved state and is only flushed to disk if it is a snapshot version. DuringQueryof the root multi-store, if the request height is the latest height, we'll use the store'slastCommitInfo. Otherwise, we fetchcommitInfofrom disk. - (x/bank) #5531 Added missing amount event to MsgMultiSend, emitted for each output.
- (x/gov) #5622 Track any events emitted from a proposal's handler upon successful execution.
v0.38.0 - 2020-01-23
State Machine Breaking
- (genesis) #5506 The
x/distributiongenesis state now includesparamsinstead of individual parameters. - (genesis) #5017 The
x/genaccountsmodule has been deprecated and all components removed except thelegacy/package. This requires changes to the genesis state. Namely,accountsnow exist underapp_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
ABCIEvidenceTypeDuplicateVoteduringBeginBlockalong with the corresponding parameters (MaxEvidenceAge) have moved from thex/slashingmodule to thex/evidencemodule.
API Breaking Changes
- (modules) #5506 Remove individual setters of
x/distributionparameters. Instead, follow the module spec in getting parameters, setting new value(s) and finally callingSetParams. - (types) #5495 Remove redundant
(Must)Bech32ify*and(Must)Get*KeyBech32functions in favor of(Must)Bech32ifyPubKeyand(Must)GetPubKeyFromBech32respectively, both of which take aBech32PubKeyType(string). - (types) #5430
DecCoins#Addparameter changed fromDecCoinsto...DecCoin,Coins#Addparameter changed fromCoinsto...Coin. - (baseapp/types) #5421 The
Errorinterface (types/errors.go) has been removed in favor of the concrete type defined intypes/errors/which implements the standarderrorinterface.- As a result, the
HandlerandQuerierimplementations now return a standarderror. WithinBaseApp,runTxnow returns a(GasInfo, *Result, error)tuple andrunMsgsreturns a(*Result, error)tuple. A reference to aResultis now used to indicate success whereas an error signals an invalid message or failed message execution. As a result, the fieldsCode,Codespace,GasWanted, andGasUsedhave been removed theResulttype. The latter two fields are now found in theGasInfotype which is always returned regardless of execution outcome. - Note to developers: Since all handlers and queriers must now return a standard
error, thetypes/errors/package contains all the relevant and pre-registered errors that you typically work with. A typical error returned will look likesdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "..."). You can retrieve relevant ABCI information from the error viaABCIInfo.
- As a result, the
- (client) #5442 Remove client/alias.go as it's not necessary and components can be imported directly from the packages.
- (store) #4748 The
CommitMultiStoreinterface now requires aSetInterBlockCachemethod. Applications that do not wish to support this can simply have this method perform a no-op. - (modules) #4665 Refactored
x/govmodule 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/genaccountsmodule has been deprecated and all components removed except thelegacy/package. - #4486 Vesting account types decoupled from the
x/authmodule and now live underx/auth/vesting. Applications wishing to use vesting account types must be sure to register types viaRegisterCodecunder the new vesting package. - #4486 The
NewBaseVestingAccountconstructor returns an error if the provided arguments are invalid. - (x/auth) #5006 Modular
AnteHandlervia composable decorators:- The
AnteHandlerinterface now returns(newCtx Context, err error)instead of(newCtx Context, result sdk.Result, abort bool) - The
NewAnteHandlerfunction returns anAnteHandlerfunction that returns the newAnteHandlerinterface and has been moved into theauth/antedirectory. ValidateSigCount,ValidateMemo,ProcessPubKey,EnsureSufficientMempoolFee, andGetSignByteshave all been removed as public functions.- Invalid Signatures may return
InvalidPubKeyinstead ofUnauthorizederror, since the transaction will first hitSetPubKeyDecoratorbefore theSigVerificationDecoratorruns. StdTx#GetSignatureswill return an array of just signature byte slices[][]byteinstead of returning an array ofStdSignaturestructs. To replicate the old behavior, use the public fieldStdTx.Signaturesto get back the array of StdSignatures[]StdSignature.
- The
- (modules) #5299
HandleDoubleSignalong with paramsMaxEvidenceAgeandDoubleSignJailEndTimehave moved from thex/slashingmodule to thex/evidencemodule. - (keys) #4941 Keybase concrete types constructors such as
NewKeyBaseFromDirandNewInMemorynow accept optional parameters of typeKeybaseOption. 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
NewKeyBaseFromHomeFlagconstructor has been removed. - #5439 Further modularization was done to the
keybasepackage to make it more suitable for use with different key formats and algorithms:- The
WithKeygenFuncfunction added as aKeybaseOptionwhich allows a custom bytes to key implementation to be defined when keys are created. - The
WithDeriveFuncfunction added as aKeybaseOptionallows 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 theclient/keysadd command. SupportedAlgosandSupportedAlgosLedgerfunctions return a slice ofSigningAlgos that are supported by the keybase and the ledger integration respectively.
- The
- (simapp) #5419 The
helpers.GenTx()now accepts a gas argument. - (baseapp) #5455 A
sdk.Contextis now passed into therouter.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
AnteHandlerhas increased significantly due to modularAnteHandlersupport. Increase GasLimit accordingly. - (rest) #5336
MsgEditValidatorusesdescriptioninstead ofDescriptionas a JSON key. - (keys) #5097 Due to the keybase -> keyring transition, keys need to be migrated. See
keys migratecommand for more info. - (x/auth) #5424 Drop
decode-txcommand from x/auth/client/cli, duplicate of thedecodecommand.
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/evidencemodule. - (cli) #5212 The
q gov proposalscommand now supports pagination. - (store) #4724 Multistore supports substore migrations upon load. New
rootmulti.Store.LoadLatestVersionAndUpgrademethod inBaseappsupportsStoreLoaderto enable various upgrade strategies. It no longer panics if the store to load contains substores that we didn't explicitly mount. - #4972 A
TxResponsewith a corresponding code and tx hash will be returned for specific Tendermint errors:CodeTxInMempoolCacheCodeMempoolIsFullCodeTxTooLarge
- #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-keychainlibrary. 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-backendoption 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 migratecommand to assist users migrate their keys to the new keyring. - (keys) #5366
keys listnow accepts a--list-namesoption to list key names only, whilst thekeys deletecommand 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
PeriodicVestingAccountvesting account type that allows for arbitrary vesting periods. - (baseapp) #5196 Baseapp has a new
runTxModeReCheckto allow applications to skip expensive and unnecessary re-checking of transactions. - (types) #5196 Context has new
IsRecheckTx() boolandWithIsReCheckTx(bool) Contextmethods to to be used in theAnteHandler. - (x/auth/ante) #5196 AnteDecorators have been updated to avoid unnecessary checks when
ctx.IsReCheckTx() == true - (x/auth) #5006 Modular
AnteHandlervia composable decorators:- The
AnteDecoratorinterface has been introduced to allow users to implement modularAnteHandlerfunctionality that can be composed together to create a singleAnteHandlerrather than implementing a customAnteHandlercompletely from scratch, where eachAnteDecoratorallows for custom behavior in tightly defined and logically isolated manner. These customAnteDecoratorcan then be chained together with defaultAnteDecoratoror third-partyAnteDecoratorto create a modularizedAnteHandlerwhich will run eachAnteDecoratorin the order specified inChainAnteDecorators. For details on the new architecture, refer to the ADR. ChainAnteDecoratorsfunction has been introduced to take in a list ofAnteDecoratorsand chain them in sequence and return a singleAnteHandler:SetUpContextDecorator: SetsGasMeterin context and creates defer clause to recover from anyOutOfGaspanics in future AnteDecorators and returnOutOfGaserror toBaseApp. It MUST be the firstAnteDecoratorin 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 mempoolminFeeparameter duringCheckTx.DeductFeeDecorator: Deducts theFeeAmountfrom 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.
- The
- (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
HistoricalEntrieswhich 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
- Introduces new parameter
- (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 addcli command. - (keys) #5439 Flags
--algoand--hd-pathare added tokeys addcommand 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
ApproxRootfunction to sdk.Decimal type in order to get the nth root for a decimal number, where n is a positive integer.- An
ApproxSqrtfunction was also added for convenience around the common case of n=2.
- An
Improvements
-
(iavl) #5538 Remove manual IAVL pruning in favor of IAVL's internal pruning strategy.
-
(server) #4215 The
--pruningflag has been moved to the configuration file, to allow easier node configuration. -
(cli) #5116 The
CLIContextnow supports multiple verifiers when connecting to multiple chains. The connecting chain'sCLIContextwill have to have the correct chain ID and node URI or client set. To use aCLIContextwith 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/authpackage now supports generalized genesis accounts through theGenesisAccountinterface. -
(modules) #4762 Deprecate remove and add permissions in ModuleAccount.
-
(modules) #4760 update
x/authto 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
DiffKVStoresto return an array ofKVPairsthat are then compared to check for inconsistencies. -
(sdk) #4717 refactor
x/slashingto match the new module spec -
(sdk) #4758 update
x/genaccountsto match module spec -
(simulation) #4824
PrintAllInvariantsflag will print all failed invariants -
(simulation) #4490 add
InitialBlockHeightflag to resume a simulation from a given block- Support exporting the simulation stats to a given JSON file
-
(simulation) #4847, #4838 and #4869
SimAppand simulation refactors:- Implement
SimulationManagerfor executing modules' simulation functionalities in a modularized way - Add
RegisterStoreDecodersto theSimulationManagerfor decoding each module's types - Add
GenerateGenesisStatesto theSimulationManagerto generate a randomizedGenStatefor each module - Add
RandomizedParamsto theSimulationManagerthat registers each modules' parameters in order to simulateParamChangeProposals'Contents - Add
WeightedOperationsto theSimulationManagerthat define simulation operations (modules'Msgs) with their respective weights (i.e chance of being simulated). - Add
ProposalContentsto theSimulationManagerto register each module's governance proposalContents.
- Implement
-
(simulation) #4893 Change
SimAppkeepers to be public and add getter functions for keys and codec -
(simulation) #4906 Add simulation
Configstruct that wraps simulation flags -
(simulation) #4935 Update simulation to reflect a proper
ABCIapplication without bypassingBaseAppsemantics -
(simulation) #5378 Simulation tests refactor:
- Add
Appinterface for general SDK-based app's methods. - Refactor and cleanup simulation tests into util functions to simplify their implementation for other SDK apps.
- Add
-
(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 aBaseAppoption. TheBaseAppdocs 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,contextand 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 andRelativePow(exponentation) function forUint. -
(modules) #5506 Remove redundancy in
x/distributions use of parameters. There now exists a singleParamstype with a getter and setter along with a getter for each individual parameter.
Bug Fixes
- (client) #5303 Fix ignored error in tx generate only mode.
- (cli) #4763 Fix flag
--min-self-delegationfor stakingEditValidator - (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/proposalshandler.
[v0.37.14] - 2020-08-12
Improvements
- (tendermint) Bump Tendermint version to v0.32.13.
[v0.37.13] - 2020-06-03
Improvements
- (tendermint) Bump Tendermint version to v0.32.12.
- (cosmos-ledger-go) Bump Cosmos Ledger Wallet library version to v0.11.1.
[v0.37.12] - 2020-05-05
Improvements
- (tendermint) Bump Tendermint version to v0.32.11.
[v0.37.11] - 2020-04-22
Bug Fixes
- (x/staking) #6021 --trust-node's false default value prevents creation of the genesis transaction.
[v0.37.10] - 2020-04-22
Bug Fixes
- (client/context) #5964 Fix incorrect instantiation of tmlite verifier when --trust-node is off.
v0.37.9 - 2020-04-09
Improvements
- (tendermint) Bump Tendermint version to v0.32.10.
v0.37.8 - 2020-03-11
Bug Fixes
- (rest) #5508 Fix
x/distributionendpoints to properly return height in the response. - (x/genutil) #5499 Ensure
DefaultGenesisreturns valid and non-nil default genesis state. - (x/genutil) #5775 Fix
ExportGenesisinx/genutilto export default genesis state ([]) instead ofnull. - (genesis) #5086 Ensure
gentxsare always an empty array instead ofnil.
Improvements
- (rest) #5648 Enhance /txs usability:
- Add
tx.minheightkey to filter transaction with an inclusive minimum block height - Add
tx.maxheightkey to filter transaction with an inclusive maximum block height
- Add
v0.37.7 - 2020-02-10
Improvements
- (modules) #5597 Add
amountevent attribute to thecomplete_unbondingandcomplete_redelegationevents that reflect the total balances of the completed unbondings and redelegations respectively.
Bug Fixes
- (x/gov) #5622 Track any events emitted from a proposal's handler upon successful execution.
- (x/bank) #5531 Added missing amount event to MsgMultiSend, emitted for each output.
v0.37.6 - 2020-01-21
Improvements
- (tendermint) Bump Tendermint version to v0.32.9
v0.37.5 - 2020-01-07
Features
- (types) #5360 Implement
SortableDecByteswhich allows theDectype be sortable.
Improvements
- (tendermint) Bump Tendermint version to v0.32.8
- (cli) #5482 Remove old "tags" nomenclature from the
q txscommand 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-heightorhalt-timehas been triggered. - (types) #5395 Fix
Uint#LTE. - (types) #5408
NewDecCoinsconstructor now sorts the coins.
v0.37.4 - 2019-11-04
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.
v0.37.3 - 2019-10-10
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
v0.37.1 - 2019-09-19
Features
- (cli) #4973 Enable application CPU profiling
via the
--cpu-profileflag. - #4979 Introduce a new
halt-timeconfig and CLI option to thestartcommand. When provided, an application will halt duringCommitwhen the block time is >= thehalt-time.
Improvements
- #4990 Add
Eventsto theABCIMessageLogto provide context and grouping of events based on the messages they correspond to. TheEventsfield inTxResponseis deprecated and will be removed in the next major release.
Bug Fixes
- #4979 Use
Signal(os.Interrupt)overos.Exit(0)during configured halting to allow anydefercalls to be executed. - #5034 Binary search in NFT Module wasn't working on larger sets.
v0.37.0 - 2019-08-21
Bug Fixes
- (baseapp) #4903 Various height query fixes:
- Move height with proof check from
CLIContexttoBaseAppas the height can automatically be injected there. - Update
handleQueryStoreto resemblehandleQueryCustom
- Move height with proof check from
- (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 votecommand 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.
v0.36.0 - 2019-08-13
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_contenttocontent - Rename JSON field from
proposal_idtoid - Disable
ProposalTypeSoftwareUpgradetemporarily
- 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/distributionModuleName - Genesis JSON and CLI now use
distributioninstead ofdistr - Introduce
ModuleAccounttype, which tracks the flow of coins held within a module - Replaced
FeeCollectorKeeperfor aModuleAccount - Replaced the staking
Pool, which coins are now held by theBondedPoolandNotBondedmodule accounts - The
NotBondedmodule 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
ModuleAccountfor the distribution module - Added a
ModuleAccountfor the mint module #4472 validation for crisis genesis
- Renamed
- #3985
ValidatorPowerRankuses 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
GenerateOrBroadcastMsgsno longer takes anofflineparameter. - #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
Contextto use newEventManager - (Begin|End)Blocker no longer return tags, but rather uses new
EventManager - Message handlers no longer return tags, but rather uses new
EventManagerAny 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
[]byteinstead 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 the
x/authmodule. - #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 aheightin 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 customSignatureVerificationGasConsumerfunction. - #4663 Refactor bank keeper by removing private functions
InputOutputCoins,SetCoins,SubtractCoinsandAddCoinsare now part of theSendKeeperinstead of theKeeperinterface
- (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
rewardsandcommissionto distribution tx tags. - #3981 Add support to gracefully halt a node at a given height
via the node's
halt-heightconfig 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-timeoutand--write-timeoutargs to therest-servercommand 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
migratecommand 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
InitialBlockHeightflag 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/genutilsto 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
Coinsthat arenilare now JSON encoded as an empty array[]. Decoding remains unchanged and behavior is left intact. -
#4305 The
--generate-onlyCLI 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.Valueinto 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#BlockHeightto properly set the block height viaWithBlockHeader. -
#4584 Update bank Keeper to use expected keeper interface of the AccountKeeper.
-
#4584 Move
AccountandVestingAccountinterface 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
SimappgenState 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
ValueandGetValueas 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)Now becomes:
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
SetAddressVerifierandGetAddressVerifiertosdk.Configto 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-responseflag 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
blockbroadcasting 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-rewardscommand when--generate-onlyis 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
DefaultUnbondingTimefrom 3 days to 3 weeks to be inline with documentation. - (abci) #4639 Fix
CheckTxby verifying the message route - Return height in responses when querying against BaseApp
- #1351 Stable AppHash allows no_empty_blocks
- #3705 Return
[]instead ofnullwhen 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-onlyto 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
GetAllMatureValidatorQueueandUnbondAllMatureValidatorQueuemethods. - #4654 validator slash event stored by period and height
- #4681 panic on invalid amount on
MintCoinsandBurnCoins- skip minting if inflation is set to zero
- Sort state JSON during export and initialization
0.35.0
Bug Fixes
- Fix gas consumption bug in
Undelegatepreventing the ability to sync from genesis.
0.34.10
Bug Fixes
- Bump Tendermint version to v0.31.11 to address the vulnerability found in the
consensuspackage.
0.34.9
Bug Fixes
- Bump Tendermint version to v0.31.10 to address p2p panic errors.
0.34.8
Bug Fixes
- Bump Tendermint version to v0.31.9 to fix the p2p panic error.
- Update gaiareplay's use of an internal Tendermint API
0.34.7
Bug Fixes
SDK
- Fix gas consumption bug in
Undelegatepreventing the ability to sync from genesis.
0.34.6
Bug Fixes
SDK
- Unbonding from a validator is now only considered "complete" after the full unbonding period has elapsed regardless of the validator's status.
0.34.5
Bug Fixes
SDK
- #4273 Fix usage of
AppendTagsin x/staking/handler.go
Improvements
SDK
- #2286 Improve performance of
CacheKVStoreiterator. - #3655 Improve signature verification failure error message.
- #4384 Allow splitting withdrawal transaction in several chunks.
Gaia CLI
0.34.4
Bug Fixes
SDK
- #4234 Allow
tx send --generate-onlyto 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
rewardsandcommissionto distribution tx tags.
0.34.3
Bug Fixes
Gaia
- #4196 Set default invariant check period to zero.
0.34.2
Improvements
SDK
- #4135 Add further clarification to generate only usage.
Bug Fixes
SDK
- #4135 Fix
NewResponseFormatBroadcastTxCommit - #4053 Add
--inv-check-periodflag to gaiad to set period at which invariants checks will run. - #4099 Update the /staking/validators endpoint to support status and pagination query flags.
0.34.1
Bug Fixes
Gaia
- #4163 Fix v0.33.x export script to port gov data correctly.
0.34.0
Breaking Changes
Gaia
- #3463 Revert bank module handler fork (re-enables transfers)
- #3875 Replace
asyncflag with--broadcast-modeflag where the default value issync. Theblockmode should not be used. The REST client now usesmodeparameter instead of thereturnparameter.
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
gaiadandgaiacliintegration tests use ./build/ binaries. - #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 (
--SimulationLeanflag)
- #3893 Improve
gaiacli tx signcommand- 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 Explanatory docs for minting mechanism (
docs/spec/mint/01_concepts.md) - #3801
baseappsafety 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-onlyis provided, the Keybase is not used and as a result the--fromvalue 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
WithdrawValidatorCommissionto 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
calculateDelegationRewardsby accounting for rounding errors when multiplying stake by slashing fractions.
0.33.2
Improvements
Tendermint
- Upgrade Tendermint to
v0.31.0-dev0-fix0which includes critical security fixes.
0.33.1
Bug Fixes
Gaia
- #3999 Fix distribution delegation for zero height export bug
0.33.0
BREAKING CHANGES
-
Gaia REST API
- #3641 Remove the ability to use a Keybase from the REST API client:
passwordandgenerate_onlyhave been removed from thebase_reqobject- All txs that used to sign or use the Keybase now only generate the tx
keysroutes completely removed
- #3692 Update tx encoding and broadcasting endpoints:
- Remove duplicate broadcasting endpoints in favor of POST @
/txs- The
Txfield now accepts aStdTxand not raw tx bytes
- The
- Move encoding endpoint to
/txs/encode
- Remove duplicate broadcasting endpoints in favor of POST @
- #3641 Remove the ability to use a Keybase from the REST API client:
-
Gaia
- #3787 Fork the
x/bankmodule into the Gaia application with only a modified message handler, where the modified message handler behaves the same as the standardx/bankmessage handler except forMsgMultiSendthat must burn exactly 9 atoms and transfer 1 atom, andMsgSendis disabled. - #3789 Update validator creation flow:
- Remove
NewMsgCreateValidatorOnBehalfOfand corresponding business logic - Ensure the validator address equals the delegator address during
MsgCreateValidator#ValidateBasic
- Remove
- #3787 Fork the
-
SDK
- #3750 Track outstanding rewards per-validator instead of globally, and fix the main simulation issue, which was that slashes of re-delegations to a validator were not correctly accounted for in fee distribution when the redelegation in question had itself been slashed (from a fault committed by a different validator) in the same BeginBlock. Outstanding rewards are now available on a per-validator basis in REST.
- #3669 Ensure consistency in message naming, codec registration, and JSON tags.
- #3788 Change order of operations for greater accuracy when calculating delegation share token value
- #3788 DecCoins.Cap -> DecCoins.Intersect
- #3666 Improve coins denom validation.
- #3751 Disable (temporarily) support for ED25519 account key pairs.
-
Tendermint
- [#3804] Update to Tendermint
v0.31.0-dev0
- [#3804] Update to Tendermint
FEATURES
- SDK
- #3719 DBBackend can now be set at compile time. Defaults: goleveldb. Supported: cleveldb.
IMPROVEMENTS
-
Gaia REST API
- Update the
TxResponsetype allowing for theLogsresult to be JSON decoded automatically.
- Update the
-
Gaia CLI
- #3653 Prompt user confirmation prior to signing and broadcasting a transaction.
- #3670 CLI support for showing bech32 addresses in Ledger devices
- #3711 Update
tx signto use--frominstead of the deprecated--nameCLI flag. - #3738 Improve multisig UX:
gaiacli keys show -o jsonnow includes constituent pubkeys, respective weights and thresholdgaiacli keys show --show-multisignow displays constituent pubkeys, respective weights and thresholdgaiacli tx sign --validate-signaturesnow displays multisig signers with their respective weights
- #3730 Improve workflow for
gaiad gentxwith offline public keys, by outputting stdtx file that needs to be signed. - #3761 Querying account related information using custom querier in auth module
-
SDK
- #3753 Remove no-longer-used governance penalty parameter
- #3679 Consistent operators across Coins, DecCoins, Int, Dec replaced: Minus->Sub Plus->Add Div->Quo
- #3665 Overhaul sdk.Uint type in preparation for Coins Int -> Uint migration.
- #3691 Cleanup error messages
- #3456 Integrate in the Int.ToDec() convenience function
- #3300 Update the spec-spec, spec file reorg, and TOC updates.
- #3694 Push tagged docker images on docker hub when tag is created.
- #3716 Update file permissions the client keys directory and contents to
0700. - #3681 Migrate ledger-cosmos-go from ZondaX to Cosmos organization
-
Tendermint
- #3699 Upgrade to Tendermint 0.30.1
BUG FIXES
-
Gaia CLI
-
Gaia
-
SDK
- #3728 Truncate decimal multiplication & division in distribution to ensure no more than the collected fees / inflation are distributed
- #3727 Return on zero-length (including []byte{}) PrefixEndBytes() calls
- #3559 fix occasional failing due to non-determinism in lcd test TestBonding where validator is unexpectedly slashed throwing off test calculations
- #3411 Include the
RequestInitChain.Timein the block header init duringInitChain. - #3717 Update the vesting specification and implementation to cap deduction from
DelegatedVestingby at mostDelegatedVesting. This accounts for the case where the undelegation amount may exceed the original delegation amount due to truncation of undelegation tokens. - #3717 Ignore unknown proposers in allocating rewards for proposers, in case unbonding period was just 1 block and proposer was already deleted.
- #3726 Cap(clip) reward to remaining coins in AllocateTokens.
0.32.0
BREAKING CHANGES
-
Gaia REST API
- #3642
GET /tx/{hash}now returns404instead of500if the transaction is not found
- #3642
-
SDK
-
#3580 Migrate HTTP request/response types and utilities to types/rest.
-
#3592 Drop deprecated keybase implementation's New() constructor in favor of a new crypto/keys.New(string, string) implementation that returns a lazy keybase instance. Remove client.MockKeyBase, superseded by crypto/keys.NewInMemory()
-
#3621 staking.GenesisState.Bonds -> Delegations
IMPROVEMENTS
-
SDK
- #3311 Reconcile the
DecCoin/sAPI with theCoin/sAPI. - #3614 Add coin denom length checks to the coins constructors.
- #3621 remove many inter-module dependancies
- #3601 JSON-stringify the ABCI log response which includes the log and message index.
- #3604 Improve SDK funds related error messages and allow for unicode in JSON ABCI log.
- #3620 Version command shows build tags
- #3638 Add Bcrypt benchmarks & justification of security parameter choice
- #3648 Add JSON struct tags to vesting accounts.
- #3311 Reconcile the
-
Tendermint
- #3618 Upgrade to Tendermint 0.30.03
BUG FIXES
- SDK
- #3646
x/mintnow uses total token supply instead of total bonded tokens to calculate inflation
- #3646
0.31.2
BREAKING CHANGES
- SDK
- #3592 Drop deprecated keybase implementation's New constructor in favor of a new crypto/keys.New(string, string) implementation that returns a lazy keybase instance. Remove client.MockKeyBase, superseded by crypto/keys.NewInMemory()
IMPROVEMENTS
-
SDK
- #3604 Improve SDK funds related error messages and allow for unicode in JSON ABCI log.
-
Tendermint
- #3563 Update to Tendermint version
0.30.0-rc0
- #3563 Update to Tendermint version
BUG FIXES
-
Gaia
- [#3585] Fix setting the tx hash in
NewResponseFormatBroadcastTxCommit. - [#3585] Return an empty
TxResponsewhen Tendermint returns an emptyResultBroadcastTx.
- [#3585] Fix setting the tx hash in
-
SDK
0.31.0
BREAKING CHANGES
-
Gaia REST API (
gaiacli advanced rest-server) -
Gaia CLI (
gaiacli)- #3399 Add
gaiad validate-genesiscommand to facilitate checking of genesis files - #1894
versionprints out short info by default. Add--longflag. Proper handling of--formatflag introduced. - #3465
gaiacli rest-serverswitched back to insecure mode by default:--insecureflag is removed.--tlsis now used to enable secure layer.
- #3451
gaiaclinow returns transactions in plain text including tags. - #3497
gaiad initnow takes moniker as required arguments, not as parameter. - #3501 Change validator
address Bech32 encoding to consensus address in
tendermint-validator-set.
- #3399 Add
-
Gaia
-
SDK
- #2513 Tendermint updates are adjusted by 10^-6 relative to staking tokens,
- #3487 Move HTTP/REST utilities out of client/utils into a new dedicated client/rest package.
- #3490 ReadRESTReq() returns bool to avoid callers to write error responses twice.
- #3502 Fixes issue when comparing genesis states
- #3514 Various clean ups:
- Replace all GetKeyBase* functions family in favor of NewKeyBaseFromDir and NewKeyBaseFromHomeFlag.
- Remove Get prefix from all TxBuilder's getters.
- #3522 Get rid of double negatives: Coins.IsNotNegative() -> Coins.IsAnyNegative().
- #3561 Don't unnecessarily store denominations in staking
FEATURES
-
Gaia REST API
-
#2358 Add distribution module REST interface
-
Gaia CLI (
gaiacli) -
Gaia
-
SDK
- #3270 [x/staking] limit number of ongoing unbonding delegations /redelegations per pair/trio
- [#3477][distribution] new query endpoint "delegator_validators"
- #3514 Provided a lazy loading implementation of Keybase that locks the underlying storage only for the time needed to perform the required operation. Also added Keybase reference to TxBuilder struct.
- [types] #2580 Addresses now Bech32 empty addresses to an empty string
IMPROVEMENTS
-
Gaia REST API
- #3284 Update Gaia Lite
REST service to support the following:
- Automatic account number and sequence population when fields are omitted
- Generate only functionality no longer requires access to a local Keybase
fromfield in thebase_reqbody can be a Keybase name or account address
- #3423 Allow simulation (auto gas) to work with generate only.
- #3514 REST server calls to keybase does not lock the underlying storage anymore.
- #3523 Added
/tx/encodeendpoint to serialize a JSON tx to base64-encoded Amino.
- #3284 Update Gaia Lite
REST service to support the following:
-
Gaia CLI (
gaiacli)- #3476 New
withdraw-all-rewardscommand to withdraw all delegations rewards for delegators. - #3497
gaiad gentxsupports--ipand--node-idflags to override defaults. - #3518 Fix flow in
keys addto show the mnemonic by default. - #3517 Increased test coverage
- #3523 Added
tx encodecommand to serialize a JSON tx to base64-encoded Amino.
- #3476 New
-
Gaia
- #3418 Add vesting account
genesis validation checks to
GaiaValidateGenesisState. - #3420 Added maximum length to governance proposal descriptions and titles
- #3256 Add gas consumption for tx size in the ante handler.
- #3454 Add
--jail-whitelisttogaiad exportto enable testing of complex exports - #3424 Allow generation of gentxs with empty memo field.
- #3507 General cleanup, removal of unnecessary struct fields, undelegation bugfix, and comment clarification in x/staking and x/slashing
- #3418 Add vesting account
genesis validation checks to
-
SDK
- [#2605] x/params add subkey accessing
- #2986 Store Refactor
- #3435 Test that store implementations do not allow nil values
- #2509 Sanitize all usage of Dec.RoundInt64()
- #556 Increase
BaseApptest coverage. - #3357 develop state-transitions.md for staking spec, missing states added to
state.md - #3552 Validate bit length when
deserializing
Inttypes.
BUG FIXES
-
Gaia CLI (
gaiacli)- #3417 Fix
q slashing signing-infopanic by ensuring safety of user input and properly returning not found error - #3345 Upgrade ledger-cosmos-go dependency to v0.9.3 to pull
ed9aa39ce8in order to fix a derivation path issue that causesgaiacli keys add --recoverto malfunction. - #3419 Fix
q distr slashespanic - #3453 The
rest-servercommand didn't respect persistent flags such as--chain-idand--trust-nodeif they were passed on the command line. - #3441 Improved resource management and connection handling (ledger devices). Fixes issue with DER vs BER signatures.
- #3417 Fix
-
Gaia
- #3486 Use AmountOf in vesting accounts instead of zipping/aligning denominations.
0.30.0
BREAKING CHANGES
-
Gaia REST API (
gaiacli advanced rest-server)- [gaia-lite] [#2182] Renamed and merged all redelegations endpoints into
/staking/redelegations - #3176
tx/signendpoint now expectsBaseReqfields as nested object. - [#2222] all endpoints renamed from
/stake->/staking - [#1268]
LooseTokens->NotBondedTokens - [#3289] misc renames:
Validator.UnbondingMinTime->Validator.UnbondingCompletionTimeDelegation->ValueinMsgCreateValidatorandMsgDelegateMsgBeginUnbonding->MsgUndelegate
- [gaia-lite] [#2182] Renamed and merged all redelegations endpoints into
-
Gaia CLI (
gaiacli)- #810 Don't fallback to any default values for chain ID.
- Users need to supply chain ID either via config file or the
--chain-idflag. - Change
chain_idandtrust_nodeingaiacliconfiguration tochain-idandtrust-noderespectively.
- Users need to supply chain ID either via config file or the
- #3069
--feeflag renamed to--feesto support multiple coins - #3156 Remove unimplemented
gaiacli initcommand - [#2222]
gaiacli tx stake->gaiacli tx staking,gaiacli query stake->gaiacli query staking - #1894
versioncommand now shows latest commit, vendor dir hash, and build machine info. - #3320 Ensure all
gaiacli querycommands respect the--outputand--indentflags
- #810 Don't fallback to any default values for chain ID.
-
Gaia
- https://github.com/cosmos/cosmos-sdk/issues/2838 - Move store keys to constants
- #3162 The
--gasflag now takesautoinstead ofsimulatein order to trigger a simulation of the tx before the actual execution. - #3285 New
gaiad tendermint versionto print libs versions - #1894
versioncommand now shows latest commit, vendor dir hash, and build machine info. - #3249
tendermint'sshow-validatorandshow-address--jsonflags removed in favor of--output-format=json.
-
SDK
- [distribution] #3359 Always round down when calculating rewards-to-be-withdrawn in F1 fee distribution
- #3336 Ensure all SDK
messages have their signature bytes contain canonical fields
valueandtype. - #3333 - F1 storage efficiency improvements - automatic withdrawals when unbonded, historical reward reference counting
- [staking] #2513 Validator power type from Dec -> Int
- [staking] #3233 key and value now contain duplicate fields to simplify code
- #3064 Sanitize
sdk.Coindenom. Coins denoms are now case insensitive, i.e. 100fooToken equals to 100FOOTOKEN. - #3195 Allows custom configuration for syncable strategy
- #3242 Fix infinite gas meter utilization during aborted ante handler executions.
- [x/distribution] #3292 Enable or disable withdraw addresses with a parameter in the param store
- [staking] #2222
/stake->/stakingmodule rename - [staking] #1268
LooseTokens->NotBondedTokens - [staking] #1402 Redelegation and unbonding-delegation structs changed to include multiple an array of entries
- [staking] #3289 misc renames:
Validator.UnbondingMinTime->Validator.UnbondingCompletionTimeDelegation->ValueinMsgCreateValidatorandMsgDelegateMsgBeginUnbonding->MsgUndelegate
- [#3315] Increase decimal precision to 18
- #3323 Update to Tendermint 0.29.0
- #3328 [x/gov] Remove redundant action tag
-
Tendermint
- #3298 Upgrade to Tendermint 0.28.0
FEATURES
-
Gaia REST API (
gaiacli advanced rest-server) -
Gaia CLI (
gaiacli)- #2399 Implement
paramscommand to query slashing parameters. - #2730 Add tx search pagination parameter
- #3027 Implement
query gov proposer [proposal-id]to query for a proposal's proposer. - #3198 New
keys add --multisigflag to store multisig keys locally. - #3198 New
multisigncommand to generate multisig signatures. - #3198 New
sign --multisigflag to enable multisig mode. - #2715 Reintroduce gaia server's insecure mode.
- #3334 New
gaiad completionandgaiacli completionto generate Bash/Zsh completion scripts. - #2607 Make
gaiacli confighandle the booleanindentflag to beautify commands JSON output.
- #2399 Implement
-
Gaia
-
SDK
- #3099 Implement F1 fee distribution
- #2926 Add TxEncoder to client TxBuilder.
- #2694 Vesting account implementation.
- #2996 Update the
AccountKeeperto contain params used in the context of the ante handler. - #3179 New CodeNoSignatures error code.
- #3319 [x/distribution] Queriers for all distribution state worth querying; distribution query commands
- #3356 [x/auth] bech32-ify accounts address in error message.
IMPROVEMENTS
-
Gaia REST API
-
Gaia CLI (
gaiacli)- #3224 Support adding offline public keys to the keystore
-
Gaia
- #2186 Add Address Interface
- #3158 Validate slashing genesis
- #3172 Support minimum fees in a local testnet.
- #3250 Refactor integration tests and increase coverage
- #3248 Refactor tx fee
model:
- Validators specify minimum gas prices instead of minimum fees
- Clients may provide either fees or gas prices directly
- The gas prices of a tx must meet a validator's minimum
gaiad startandgaia.tomltake --minimum-gas-prices flag and minimum-gas-price config key respectively.
- #2859 Rename
TallyResultin gov proposals toFinalTallyResult - #3286 Fix
gaiad gentxprintout of account's addresses, i.e. user bech32 instead of hex. - #3249
--jsonflag removed, users should use--output=jsoninstead.
-
SDK
- #3137 Add tag documentation for each module along with cleaning up a few existing tags in the governance, slashing, and staking modules.
- #3093 Ante handler does no longer read all accounts in one go when processing signatures as signature verification may fail before last signature is checked.
- [staking] #1402 Add for multiple simultaneous redelegations or unbonding-delegations within an unbonding period
- [staking] #1268 staking spec rewrite
-
CI
BUG FIXES
-
Gaia CLI (
gaiacli) -
Gaia
- #3148 Fix
gaiad exportby adding a boolean toNewGaiaAppdetermining whether or not to load the latest version - #3181 Correctly reset total accum update height and jailed-validator bond height / unbonding height on export-for-zero-height
- #3172 Fix parsing
gaiad.tomlwhen it already exists. - #3223 Fix unset governance proposal queues when importing state from old chain
- #3187 Fix
gaiad exportby resetting each validator's slashing period.
- #3148 Fix
0.29.1
BUG FIXES
- SDK
- #3207 - Fix token printing bug
0.29.0
BREAKING CHANGES
-
Gaia
- #3148 Fix
gaiad exportby adding a boolean toNewGaiaAppdetermining whether or not to load the latest version
- #3148 Fix
-
SDK
- #3163 Withdraw commission on self bond removal
0.28.1
BREAKING CHANGES
- Gaia REST API (
gaiacli advanced rest-server)- [lcd] #3045 Fix quoted json return on GET /keys (keys list)
- [gaia-lite] #2191 Split
POST /stake/delegators/{delegatorAddr}/delegationsintoPOST /stake/delegators/{delegatorAddr}/delegations,POST /stake/delegators/{delegatorAddr}/unbonding_delegationsandPOST /stake/delegators/{delegatorAddr}/redelegations - [gaia-lite] #3056
generate_onlyandsimulatehave moved from query arguments to POST requests body.
- Tendermint
- [tendermint] Now using Tendermint 0.27.3
FEATURES
- Gaia REST API (
gaiacli advanced rest-server)- [slashing] #2399 Implement
/slashing/parametersendpoint to query slashing parameters.
- [slashing] #2399 Implement
- Gaia CLI (
gaiacli)- [gaiacli] #2399 Implement
paramscommand to query slashing parameters.
- [gaiacli] #2399 Implement
- SDK
- [client] #2926 Add TxEncoder to client TxBuilder.
- Other
- Introduced the logjack tool for saving logs w/ rotation
IMPROVEMENTS
- Gaia REST API (
gaiacli advanced rest-server) - Gaia CLI (
gaiacli) - Gaia
- #3021 Add
--gentx-dirtogaiad collect-gentxsto specify a directory from which collect and load gentxs. Add--output-documenttogaiad initto allow one to redirect output to file.
- #3021 Add
0.28.0
BREAKING CHANGES
-
Gaia CLI (
gaiacli)- [cli] #2595 Remove
keys newin favor ofkeys addincorporating existing functionality with addition of key recovery functionality. - [cli] #2987 Add shorthand
-atogaiacli keys showand update docs - [cli] #2971 Additional verification when running
gaiad gentx - [cli] #2734 Rewrite
gaiacli config. It is now a non-interactive config utility.
- [cli] #2595 Remove
-
Gaia
- #128 Updated CircleCI job to trigger website build on every push to master/develop.
- #2994 Change wrong-password error message.
- #3009 Added missing Gaia genesis verification
- #128 Updated CircleCI job to trigger website build on every push to master/develop.
- #2994 Change wrong-password error message.
- #3009 Added missing Gaia genesis verification
- [gas] #3052 Updated gas costs to more reasonable numbers
-
SDK
FEATURES
- Gaia CLI (
gaiacli)- #2961 Add --force flag to gaiacli keys delete command to skip passphrase check and force key deletion unconditionally.
IMPROVEMENTS
-
Gaia CLI (
gaiacli)- #2991 Fully validate transaction signatures during
gaiacli tx sign --validate-signatures
- #2991 Fully validate transaction signatures during
-
SDK
BUG FIXES
-
Gaia CLI (
gaiacli)- #2921 Fix
keys deleteinability to delete offline and ledger keys.
- #2921 Fix
-
Gaia
- #3003 CollectStdTxs() must validate DelegatorAddr against genesis accounts.
-
SDK
0.27.0
BREAKING CHANGES
-
Gaia REST API (
gaiacli advanced rest-server)- [gaia-lite] #2819 Txs query param format is now:
/txs?tag=value(removed '' wrapping the query parametervalue)
- [gaia-lite] #2819 Txs query param format is now:
-
Gaia CLI (
gaiacli)- [cli] #2728 Seperate
txandquerysubcommands by module - [cli] #2727 Fix unbonding command flow
- [cli] #2786 Fix redelegation command flow
- [cli] #2829 add-genesis-account command now validates state when adding accounts
- [cli] #2804 Check whether key exists before passing it on to
tx create-validator. - [cli] #2874
gaiacli tx signtakes an optional--output-documentflag to support output redirection. - [cli] #2875 Refactor
gaiad gentxand avoid redirection togaiacli tx signfor tx signing.
- [cli] #2728 Seperate
-
Gaia
- [mint] [#2825] minting now occurs every block, inflation parameter updates still hourly
-
SDK
- #2752 Don't hardcode bondable denom.
- #2701 Account numbers and sequence numbers in
authare nowuint64instead ofint64 - #2019 Cap total number of signatures. Current per-transaction limit is 7, and if that is exceeded transaction is rejected.
- #2801 Remove AppInit structure.
- #2798 Governance API has miss-spelled English word in JSON response ('depositer' -> 'depositor')
- #2943 Transaction action tags equal the message type. Staking EndBlocker tags are included.
-
Tendermint
- Update to Tendermint 0.27.0
FEATURES
-
Gaia REST API (
gaiacli advanced rest-server)- [gov] #2479 Added governance parameter query REST endpoints.
-
Gaia CLI (
gaiacli) -
Gaia
- [app] #2791 Support export at a specific height, with
gaiad export --height=HEIGHT. - [x/gov] #2479 Implemented querier for getting governance parameters.
- [app] #2663 - Runtime-assertable invariants
- [app] #2791 Support export at a specific height, with
gaiad export --height=HEIGHT. - [app] #2812 Support export alterations to prepare for restarting at zero-height
- [app] #2791 Support export at a specific height, with
-
SDK
IMPROVEMENTS
-
Gaia REST API (
gaiacli advanced rest-server) -
Gaia CLI (
gaiacli) -
Gaia
- #2772 Update BaseApp to not persist state when the ante handler fails on DeliverTx.
- #2773 Require moniker to be provided on
gaiad init. - #2672 [Makefile] Updated for better Windows compatibility and ledger support logic, get_tools was rewritten as a cross-compatible Makefile.
- #2766 [Makefile] Added goimports tool to get_tools. Get_tools now only builds new versions if binaries are missing.
- #110 Updated CircleCI job to trigger website build when cosmos docs are updated.
-
SDK & [x/mock/simulation] [#2720] major cleanup, introduction of helper objects, reorganization
-
#2821 Codespaces are now strings
-
[types] #2776 Improve safety of
CoinandCoinstypes. Various functions and methods will panic when a negative amount is discovered. -
#2815 Gas unit fields changed from
int64touint64. -
#2821 Codespaces are now strings
-
#2779 Introduce
ValidateBasicto theTxinterface and call it in the ante handler. -
#2825 More staking and distribution invariants
-
#2912 Print commit ID in hex when commit is synced.
-
Tendermint
-
#2796 Update to go-amino 0.14.1
BUG FIXES
-
Gaia REST API (
gaiacli advanced rest-server) -
Gaia
-
SDK
-
Tendermint
- #2797 AddressBook requires addresses to have IDs; Do not crap out immediately after sending pex addrs in seed mode
0.26.0
BREAKING CHANGES
-
Gaia
- [gaiad init] #2602 New genesis workflow
-
SDK
- [simulation] #2665 only argument to sdk.Invariant is now app
-
Tendermint
- Upgrade to version 0.26.0
FEATURES
-
Gaia CLI (
gaiacli)- [cli] #2569 Add commands to query validator unbondings and redelegations
- [cli] #2569 Add commands to query validator unbondings and redelegations
- [cli] #2524 Add support offline mode to
gaiacli tx sign. Lookups are not performed if the flag--offlineis on. - [cli] #2558 Rename --print-sigs to --validate-signatures. It now performs a complete set of sanity checks and reports to the user. Also added --print-signature-only to print the signature only, not the whole transaction.
- [cli] #2704 New add-genesis-account convenience command to populate genesis.json with genesis accounts.
-
SDK
- #1336 Mechanism for SDK Users to configure their own Bech32 prefixes instead of using the default cosmos prefixes.
IMPROVEMENTS
-
Gaia
-
#2637 [x/gov] Switched inactive and active proposal queues to an iterator based queue
-
SDK
-
#2573 [x/distribution] add accum invariance
-
#2556 [x/mock/simulation] Fix debugging output
-
#2396 [x/mock/simulation] Change parameters to get more slashes
-
#2617 [x/mock/simulation] Randomize all genesis parameters
-
#2669 [x/stake] Added invarant check to make sure validator's power aligns with its spot in the power store.
-
#1924 [x/mock/simulation] Use a transition matrix for block size
-
#2660 [x/mock/simulation] Staking transactions get tested far more frequently
-
#2610 [x/stake] Block redelegation to and from the same validator
-
#2652 [x/auth] Add benchmark for get and set account
-
#2685 [store] Add general merkle absence proof (also for empty substores)
-
#2708 [store] Disallow setting nil values
BUG FIXES
-
Gaia
-
#2670 [x/stake] fixed incorrect
IterateBondedValidatorsand split into two functions:IterateBondedValidatorsandIterateLastBlockConsValidators -
#2691 Fix local testnet creation by using a single canonical genesis time
-
#2648 [gaiad] Fix
gaiad export/gaiad importconsistency, test in CI -
SDK
-
#2625 [x/gov] fix AppendTag function usage error
-
#2677 [x/stake, x/distribution] various staking/distribution fixes as found by the simulator
-
#2674 [types] Fix coin.IsLT() impl, coins.IsLT() impl, and renamed coins.Is* to coins.IsAll* (see #2686)
-
#2711 [x/stake] Add commission data to
MsgCreateValidatorsignature bytes. -
Temporarily disable insecure mode for Gaia Lite
0.25.0
October 24th, 2018.
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_delegationsandGET 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 advancedno longer exists - to accessibc,rest-server, andvalidator-setcommands usegaiacli ibc,gaiacli rest-server, andgaiacli tendermint, respectively - [makefile]
get_vendor_depsno longer updates lock file it just updates vendor directory. Useupdate_vendor_depsto 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-txsis nowgaiacli init --with-txsto 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--offlineis 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:
cosmosvalconsandcosmosvalconspubrespectively. Also, existing Bech32 prefixes have been renamed for accounts and validator operators:cosmosaccaddr/cosmosaccpub=>cosmos/cosmospubcosmosvaladdr/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
CompleteUnbondingandCompleteRedelegationMsg 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 gentxtogaiad gentx. - [cli] Add
--skip-genesisflag togaiad initto preventgenesis.jsongeneration. - Drop
GenesisTxin favor of a signedStdTxwith only oneMsgCreateValidatormessage. - [cli] Port
gaiad initandgaiad testnetto work withStdTxgenesis transactions. - [cli] Add
--monikerflag togaiad initto override moniker when generatinggenesis.json- i.e. it takes effect when running with the--with-txsflag, 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
SetTxDecoderin 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
AccountMappertoAccountKeeper. - [types] #2456 Renamed msg.Name() and msg.Type() to msg.Type() and msg.Route() respectively
- [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=truerequests query argument to endpoints that send txs to run simulations of transactions - [gaia-lite] #966 Add support for
generate_only=truequery 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}/sendto/bank/accounts/{address}/transfers, rename/accounts/{address}to/auth/accounts/{address}, replaceproposal-idwithproposalIdin all gov endpoints - [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
--proposalflag tosubmit-proposalthat allows a JSON file containing a proposal to be passed in - #2040 Add
--bechtogaiacli keys showand 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 configfeature to interactively create CLI config files to reduce the number of required flags - [stake][cli] #1672 Introduced
new commission flags for validator commands
create-validatorandedit-validator. - [stake][cli] #1890 Add
--genesis-formatflag togaiacli tx create-validatorto produce transactions in genesis-friendly format. - [cli]#2554 Make
gaiacli keys showmultisig ready.
-
Gaia
- [cli] #2170 added ability to show the node's address via
gaiad tendermint show-address - [simulation] #2313 Reworked
make test_sim_gaia_slowtomake test_sim_gaia_full, now simulates from multiple starting seeds in parallel - [cli] #1921
- New configuration file
gaiad.tomlis 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.
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) -
Gaia
- [x/stake] #2023 Terminate iteration loop in
UpdateBondedValidatorsandUpdateBondedValidatorsFullwhen 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 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-newdirectories, in case scratch files are present. - [spec] Added simple piggy bank distribution spec
- [cli] #1632 Add integration tests to ensure
basecoind init && basecoindstart sequences run successfully for bothdemocoinandbasecoinexamples. - [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 testnetto make config directory of daemon (defaultgaiad) and cli (defaultgaiacli) configurable - [x/stake] Add stake
Queriersfor Gaia-lite endpoints. This increases the staking endpoints performance by reusing the stakingkeeperlogic for queries. #2249 - [store] #2017 Refactor
gas iterator gas consumption to only consume gas for iterator creation and
Nextcalls 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
- #2573 [x/distribution] add accum invariance
- [tools] Make get_vendor_deps deletes
BUG FIXES
-
Gaia CLI (
gaiacli) -
Gaia
- [x/stake] Return correct Tendermint validator update set on
EndBlockerby not including non previously bonded validators that have zero power. #2189 - [docs] Fixed light client section links
- [x/stake] Return correct Tendermint validator update set on
-
SDK
- #1988 Make us compile on OpenBSD (disable ledger)
- #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
InitializeTestLCDto properly include proposing validator in genesis state. - #2573 [x/distribution] accum invariance bugfix
- #2573 [x/slashing] unbonding-delegation slashing invariance bugfix
0.24.2
August 22nd, 2018.
BUG FIXES
- Tendermint
- Fix unbounded consensus WAL growth
0.24.1
August 21st, 2018.
BUG FIXES
- Gaia
- [x/slashing] Evidence tracking now uses validator address instead of validator pubkey
0.24.0
August 13th, 2018.
BREAKING CHANGES
-
Gaia REST API (
gaiacli advanced rest-server)- [x/stake] #1880 More REST-ful endpoints (large refactor)
- [x/slashing] #1866
/slashing/signing_infotakes cosmosvalpub instead of cosmosvaladdr - use time.Time instead of int64 for time. See Tendermint v0.23.0
- Signatures are no longer Amino encoded with prefixes (just encoded as raw bytes) - see Tendermint v0.23.0
-
Gaia CLI (
gaiacli)- [x/stake] change
--keybase-sigto--identity - [x/stake] #1828 Force user to specify amount on create-validator command by removing default
- [x/gov] Change
--proposalIDto--proposal-id - [x/stake, x/gov] #1606 Use
--frominstead of adhoc flags like--address-validatorand--proposerto indicate the sender address. - #1551 Remove
--namecompletely - Genesis/key creation (
gaiad init) now supports user-provided key passwords
- [x/stake] change
-
Gaia
- [x/stake] Inflation doesn't use rationals in calculation (performance boost)
- [x/stake] Persist a map from
addr->pubkeyin the state since BeginBlock doesn't provide pubkeys. - [x/gov] #1781 Added tags sub-package, changed tags to use dash-case
- [x/gov] #1688 Governance parameters are now stored in globalparams store
- [x/gov] #1859 Slash validators who do not vote on a proposal
- [x/gov] #1914 added TallyResult type that gets stored in Proposal after tallying is finished
-
SDK
- [baseapp] Msgs are no longer run on CheckTx, removed
ctx.IsCheckTx() - [baseapp] NewBaseApp constructor takes sdk.TxDecoder as argument instead of wire.Codec
- [types] sdk.NewCoin takes sdk.Int, sdk.NewInt64Coin takes int64
- [x/auth] Default TxDecoder can be found in
x/authrather than baseapp - [client] #1551: Refactored
CoreContexttoTxContextandQueryContext- Removed all tx related fields and logic (building & signing) to separate
structure
TxContextinx/auth/client/context
- Removed all tx related fields and logic (building & signing) to separate
structure
- [baseapp] Msgs are no longer run on CheckTx, removed
-
Tendermint
- v0.22.5 -> See Tendermint PR
- change all the cryptography imports.
- v0.23.0 -> See
Changelog
and SDK PR
- BeginBlock no longer includes crypto.Pubkey
- use time.Time instead of int64 for time.
- v0.22.5 -> See Tendermint PR
FEATURES
-
Gaia REST API (
gaiacli advanced rest-server)- [x/gov] Can now query governance proposals by ProposalStatus
-
Gaia CLI (
gaiacli)- [x/gov] added
query-proposalscommand. Can filter bydepositer,voter, andstatus - [x/stake] #2043 Added staking query cli cmds for unbonding-delegations and redelegations
- [x/gov] added
-
Gaia
- [networks] Added ansible scripts to upgrade seed nodes on a network
-
SDK
- [x/mock/simulation] Randomized simulation framework
- Modules specify invariants and operations, preferably in an x/[module]/simulation package
- Modules can test random combinations of their own operations
- Applications can integrate operations and invariants from modules together for an integrated simulation
- Simulates Tendermint's algorithm for validator set updates
- Simulates validator signing/downtime with a Markov chain, and occaisional double-signatures
- Includes simulated operations & invariants for staking, slashing, governance, and bank modules
- [store] #1481 Add transient store
- [baseapp] Initialize validator set on ResponseInitChain
- [baseapp] added BaseApp.Seal - ability to seal baseapp parameters once they've been set
- [cosmos-sdk-cli] New
cosmos-sdk-clitool to quickly initialize a new SDK-based project - [scripts] added log output monitoring to DataDog using Ansible scripts
- [x/mock/simulation] Randomized simulation framework
IMPROVEMENTS
-
Gaia
- [spec] #967 Inflation and distribution specs drastically improved
- [x/gov] #1773 Votes on a proposal can now be queried
- [x/gov] Initial governance parameters can now be set in the genesis file
- [x/stake] #1815 Sped up the processing of
EditValidatortxs. - [config] #1930 Transactions indexer indexes all tags by default.
- [ci] #2057 Run
make localnet-starton every commit and ensure network reaches at least 10 blocks
-
SDK
- [baseapp] #1587 Allow any alphanumeric character in route
- [baseapp] Allow any alphanumeric character in route
- [tools] Remove
rm -rf vendor/frommake get_vendor_deps - [x/auth] Recover ErrorOutOfGas panic in order to set sdk.Result attributes correctly
- [x/auth] #2376 No longer runs any signature in a multi-msg, if any account/sequence number is wrong.
- [x/auth] #2376 No longer charge gas for subtracting fees
- [x/bank] Unit tests are now table-driven
- [tests] Add tests to example apps in docs
- [tests] Fixes ansible scripts to work with AWS too
- [tests] #1806 CLI tests are now behind the build flag 'cli_test', so go test works on a new repo
BUG FIXES
-
Gaia CLI (
gaiacli) -
Gaia
- [x/stake] #2077 Fixed invalid cliff power comparison
- #1804 Fixes gen-tx genesis generation logic temporarily until upstream updates
- #1799 Fix
gaiad export - #1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators
- [x/stake] #1858 Fixed bug where the cliff validator was not updated correctly
- [tests] #1675 Fix non-deterministic
test_cover - [tests] #1551 Fixed invalid LCD test JSON payload in
doIBCTransfer - [basecoin] Fixes coin transaction failure and account query discussion
- [x/gov] #1757 Fix VoteOption conversion to String
- [x/stake] [#2083] Fix broken invariant of bonded validator power decrease
0.23.1
July 27th, 2018.
BUG FIXES
- [tendermint] Update to v0.22.8
- [consensus, blockchain] Register the Evidence interface so it can be marshalled/unmarshalled by the blockchain and consensus reactors
0.23.0
July 25th, 2018.
BREAKING CHANGES
- [x/stake] Fixed the period check for the inflation calculation
IMPROVEMENTS
- [cli] Improve error messages for all txs when the account doesn't exist
- [tendermint] Update to v0.22.6
- Updates the crypto imports/API (#1966)
- [x/stake] Add revoked to human-readable validator
BUG FIXES
- [tendermint] Update to v0.22.6
- Fixes some security vulnerabilities reported in the Bug Bounty
- #1797 Fix off-by-one error in slashing for downtime
- #1787 Fixed bug where Tally fails due to revoked/unbonding validator
- #1666 Add intra-tx counter to the genesis validators
0.22.0
July 16th, 2018.
BREAKING CHANGES
- [x/gov] Increase VotingPeriod, DepositPeriod, and MinDeposit
IMPROVEMENTS
- [gaiad] Default config updates:
timeout_commit=5000so blocks only made every 5sprof_listen_addr=localhost:6060so profile server is on by defaultp2p.send_rateandp2p.recv_rateincreases 10x (~5MB/s)
BUG FIXES
- [server] Fix to actually overwrite default tendermint config
0.21.1
July 14th, 2018.
BUG FIXES
- [build] Added Ledger build support via
LEDGER_ENABLED=true|false- True by default except when cross-compiling
0.21.0
July 13th, 2018.
BREAKING CHANGES
- [x/stake] Specify DelegatorAddress in MsgCreateValidator
- [x/stake] Remove the use of global shares in the pool
- Remove the use of
PoolSharestype inx/stake/validatortype - replace withStatusTokensfields
- Remove the use of
- [x/auth] NewAccountMapper takes a constructor instead of a prototype
- [keys] Keybase.Update function now takes in a function to get the newpass, rather than the password itself
FEATURES
- [baseapp] NewBaseApp now takes option functions as parameters
IMPROVEMENTS
- Updated docs folder to accommodate cosmos.network docs project
- [store] Added support for tracing multi-store operations via
--trace-store - [store] Pruning strategy configurable with pruning flag on gaiad start
BUG FIXES
- #1630 - redelegation nolonger removes tokens from the delegator liquid account
- [keys] #1629 - updating password no longer asks for a new password when the first entered password was incorrect
- [lcd] importing an account would create a random account
- [server] 'gaiad init' command family now writes provided name as the moniker in
config.toml - [build] Added Ledger build support via
LEDGER_ENABLED=true|false- True by default except when cross-compiling
0.20.0
July 10th, 2018.
BREAKING CHANGES
- msg.GetSignBytes() returns sorted JSON (by key)
- msg.GetSignBytes() field changes
msg_bytes->msgsfee_bytes->fee
- Update Tendermint to v0.22.2
- Default ports changed from 466xx to 266xx
- Amino JSON uses type names instead of prefix bytes
- ED25519 addresses are the first 20-bytes of the SHA256 of the raw 32-byte pubkey (Instead of RIPEMD160)
- go-crypto, abci, tmlibs have been merged into Tendermint
- The keys sub-module is now in the SDK
- Various other fixes
- [auth] Signers of a transaction now only sign over their own account and sequence number
- [auth] Removed MsgChangePubKey
- [auth] Removed SetPubKey from account mapper
- [auth] AltBytes renamed to Memo, now a string, max 100 characters, costs a bit of gas
- [types]
GetMsg()->GetMsgs()as txs wrap many messages - [types] Removed GetMemo from Tx (it is still on StdTx)
- [types] renamed rational.Evaluate to rational.Round{Int64, Int}
- [types] Renamed
sdk.Addresstosdk.AccAddress/sdk.ValAddress - [types]
sdk.AccAddress/sdk.ValAddressnatively marshals to Bech32 in String, Sprintf (when used with%s), and MarshalJSON - [keys] Keybase and Ledger support from go-crypto merged into the SDK in the
cryptofolder - [cli] Rearranged commands under subcommands
- [x/slashing] Update slashing for unbonding period
- Slash according to power at time of infraction instead of power at time of discovery
- Iterate through unbonding delegations & redelegations which contributed to an infraction, slash them proportional to their stake at the time
- Add REST endpoint to unrevoke a validator previously revoked for downtime
- Add REST endpoint to retrieve liveness signing information for a validator
- [x/stake] Remove Tick and add EndBlocker
- [x/stake] most index keys nolonger hold a value - inputs are rearranged to form the desired key
- [x/stake] store-value for delegation, validator, ubd, and red do not hold duplicate information contained store-key
- [x/stake] Introduce concept of unbonding for delegations and validators
gaiacli stake unbondreplaced withgaiacli stake begin-unbonding- Introduced:
gaiacli stake complete-unbondinggaiacli stake begin-redelegationgaiacli stake complete-redelegation
- [lcd] Switch key creation output to return bech32
- [lcd] Removed shorthand CLI flags (
a,c,n,o) - [gaiad] genesis transactions now use bech32 addresses / pubkeys
- [gov] VoteStatus renamed to ProposalStatus
- [gov] VoteOption, ProposalType, and ProposalStatus all marshal to string form in JSON
DEPRECATED
- [cli] Deprecated
--nameflag in commands that send txs, in favor of--from
FEATURES
-
[x/gov] Implemented MVP
- Supported proposal types: just binary (pass/fail) TextProposals for now
- Proposals need deposits to be votable; deposits are burned if proposal fails
- Delegators delegate votes to validator by default but can override (for their stake)
-
[gaiacli] Ledger support added
- You can now use a Ledger with
gaiacli --ledgerfor all key-related commands - Ledger keys can be named and tracked locally in the key DB
- You can now use a Ledger with
-
[gaiacli] You can now attach a simple text-only memo to any transaction, with the
--memoflag -
[gaiacli] added the following flags for commands that post transactions to the chain:
- async -- send the tx without waiting for a tendermint response
- json -- return the output in json format for increased readability
- print-response -- return the tx response. (includes fields like gas cost)
-
[lcd] Queried TXs now include the tx hash to identify each tx
-
[mockapp] CompleteSetup() no longer takes a testing parameter
-
[x/bank] Add benchmarks for signing and delivering a block with a single bank transaction
- Run with
cd x/bank && go test --bench=.
- Run with
-
[tools] make get_tools installs tendermint's linter, and gometalinter
-
[tools] Switch gometalinter to the stable version
-
[tools] Add the following linters
- misspell
- gofmt
- go vet -composites=false
- unconvert
- ineffassign
- errcheck
- unparam
- gocyclo
-
[tools] Added
make formatcommand to automate fixing misspell and gofmt errors. -
[server] Default config now creates a profiler at port 6060, and increase p2p send/recv rates
-
[types] Switches internal representation of Int/Uint/Rat to use pointers
-
[types] Added MinInt and MinUint functions
-
[gaiad]
unsafe_reset_allnow resets addrbook.json -
[democoin] add x/oracle, x/assoc
-
[tests] created a randomized testing framework.
- Currently bank has limited functionality in the framework
- Auth has its invariants checked within the framework
-
[tests] Add WaitForNextNBlocksTM helper method
-
[keys] New keys now have 24 word recovery keys, for heightened security
-
[keys] Add a temporary method for exporting the private key
IMPROVEMENTS
- [x/bank] Now uses go-wire codec instead of 'encoding/json'
- [x/auth] Now uses go-wire codec instead of 'encoding/json'
- revised use of endblock and beginblock
- [stake] module reorganized to include
typesandkeeperpackage - [stake] keeper always loads the store (instead passing around which doesn't really boost efficiency)
- [stake] edit-validator changes now can use the keyword [do-not-modify] to not modify unspecified
--flag(aka won't set them to""value) - [stake] offload more generic functionality from the handler into the keeper
- [stake] clearer staking logic
- [types] added common tag constants
- [keys] improve error message when deleting non-existent key
- [gaiacli] improve error messages on
sendandaccountcommands - added contributing guidelines
- [docs] Added commands for governance CLI on testnet README
BUG FIXES
- [x/slashing] #1510 Unrevoked validators cannot un-revoke themselves
- [x/stake] #1513 Validators slashed to zero power are unbonded and removed from the store
- [x/stake] #1567 Validators decreased in power but not unbonded are now updated in Tendermint
- [x/stake] error strings lower case
- [x/stake] pool loose tokens now accounts for unbonding and unbonding tokens not associated with any validator
- [x/stake] fix revoke bytes ordering (was putting revoked candidates at the top of the list)
- [x/stake] bond count was counting revoked validators as bonded, fixed
- [gaia] Added self delegation for validators in the genesis creation
- [lcd] tests now don't depend on raw json text
- Retry on HTTP request failure in CLI tests, add option to retry tests in Makefile
- Fixed bug where chain ID wasn't passed properly in x/bank REST handler, removed Viper hack from ante handler
- Fixed bug where
democli accountdidn't decode the account data correctly - #872 - recovery phrases no longer all end in
abandon - #887 - limit the size of rationals that can be passed in from user input
- #1052 - Make all now works
- #1258 - printing big.rat's can no longer overflow int64
- #1259 - fix bug where certain tests that could have a nil pointer in defer
- #1343 - fixed unnecessary parallelism in CI
- #1353 - CLI: Show pool shares fractions in human-readable format
- #1367 - set ChainID in InitChain
- #1461 - CLI tests now no longer reset your local environment data
- #1505 -
gaiacli stake validatorno longer panics if validator doesn't exist - #1565 - fix cliff validator persisting when validator set shrinks from max
- #1287 - prevent zero power validators at genesis
- [x/stake] fix bug when unbonding/redelegating using
--shares-percent - #1010 - two validators can't bond with the same pubkey anymore
0.19.0
June 13, 2018.
BREAKING CHANGES
- msg.GetSignBytes() now returns bech32-encoded addresses in all cases
- [lcd] REST end-points now include gas
- sdk.Coin now uses sdk.Int, a big.Int wrapper with 256bit range cap
FEATURES
- [x/auth] Added AccountNumbers to BaseAccount and StdTxs to allow for replay protection with account pruning
- [lcd] added an endpoint to query for the SDK version of the connected node
IMPROVEMENTS
- export command now writes current validator set for Tendermint
- [tests] Application module tests now use a mock application
- [gaiacli] Fix error message when account isn't found when running gaiacli account
- [lcd] refactored to eliminate use of global variables, and interdependent tests
- [tests] Added testnet command to gaiad
- [tests] Added localnet targets to Makefile
- [x/stake] More stake tests added to test ByPower index
FIXES
- Fixes consensus fault on testnet - see postmortem here
- [x/stake] bonded inflation removed, non-bonded inflation partially implemented
- [lcd] Switch to bech32 for addresses on all human readable inputs and outputs
- [lcd] fixed tx indexing/querying
- [cli] Added
--gasflag to specify transaction gas limit - [gaia] Registered slashing message handler
- [x/slashing] Set signInfo.StartHeight correctly for newly bonded validators
FEATURES
- [docs] Reorganize documentation
- [docs] Update staking spec, create WIP spec for slashing, and fees
0.18.0
June 9, 2018.
BREAKING CHANGES
- [stake] candidate -> validator throughout (details in refactor comment)
- [stake] delegate-bond -> delegation throughout
- [stake]
gaiacli query validatortakes and argument instead of using the--address-candidateflag - [stake] introduce
gaiacli query delegations - [stake] staking refactor
- ValidatorsBonded store now take sorted pubKey-address instead of validator owner-address, is sorted like Tendermint by pk's address
- store names more understandable
- removed temporary ToKick store, just needs a local map!
- removed distinction between candidates and validators
- everything is now a validator
- only validators with a status == bonded are actively validating/receiving rewards
- Introduction of Unbonding fields, lowlevel logic throughout (not fully implemented with queue)
- Introduction of PoolShares type within validators, replaces three rational fields (BondedShares, UnbondingShares, UnbondedShares
- [x/auth] move stuff specific to auth anteHandler to the auth module rather than the types folder. This includes:
- StdTx (and its related stuff i.e. StdSignDoc, etc)
- StdFee
- StdSignature
- Account interface
- Related to this organization, I also:
- [x/auth] got rid of AccountMapper interface (in favor of the struct already in auth module)
- [x/auth] removed the FeeHandler function from the AnteHandler, Replaced with FeeKeeper
- [x/auth] Removed GetSignatures() from Tx interface (as different Tx styles might use something different than StdSignature)
- [store] Removed SubspaceIterator and ReverseSubspaceIterator from KVStore interface and replaced them with helper functions in /types
- [cli] rearranged commands under subcommands
- [stake] remove Tick and add EndBlocker
- Switch to bech32cosmos on all human readable inputs and outputs
FEATURES
- [x/auth] Added ability to change pubkey to auth module
- [baseapp] baseapp now has settable functions for filtering peers by address/port & public key
- [sdk] Gas consumption is now measured as transactions are executed
- Transactions which run out of gas stop execution and revert state changes
- A "simulate" query has been added to determine how much gas a transaction will need
- Modules can include their own gas costs for execution of particular message types
- [stake] Seperation of fee distribution to a new module
- [stake] Creation of a validator/delegation generics in
/types - [stake] Helper Description of the store in x/stake/store.md
- [stake] removed use of caches in the stake keeper
- [stake] Added REST API
- [Makefile] Added terraform/ansible playbooks to easily create remote testnets on Digital Ocean
BUG FIXES
- [stake] staking delegator shares exchange rate now relative to equivalent-bonded-tokens the validator has instead of bonded tokens ^ this is important for unbonded validators in the power store!
- [cli] fixed cli-bash tests
- [ci] added cli-bash tests
- [basecoin] updated basecoin for stake and slashing
- [docs] fixed references to old cli commands
- [docs] Downgraded Swagger to v2 for downstream compatibility
- auto-sequencing transactions correctly
- query sequence via account store
- fixed duplicate pub_key in stake.Validator
- Auto-sequencing now works correctly
- [gaiacli] Fix error message when account isn't found when running gaiacli account
0.17.5
June 5, 2018.
Update to Tendermint v0.19.9 (Fix evidence reactor, mempool deadlock, WAL panic, memory leak)
0.17.4
May 31, 2018.
Update to Tendermint v0.19.7 (WAL fixes and more)
0.17.3
May 29, 2018.
Update to Tendermint v0.19.6 (fix fast-sync halt)
0.17.2
May 20, 2018.
Update to Tendermint v0.19.5 (reduce WAL use, bound the mempool and some rpcs, improve logging)
0.17.1 (May 17, 2018)
Update to Tendermint v0.19.4 (fixes a consensus bug and improves logging)
0.17.0 (May 15, 2018)
BREAKING CHANGES
- [stake] MarshalJSON -> MarshalBinaryLengthPrefixed
- Queries against the store must be prefixed with the path "/store"
FEATURES
- [gaiacli] Support queries for candidates, delegator-bonds
- [gaiad] Added
gaiad exportcommand to export current state to JSON - [x/bank] Tx tags with sender/recipient for indexing & later retrieval
- [x/stake] Tx tags with delegator/candidate for delegation & unbonding, and candidate info for declare candidate / edit validator
IMPROVEMENTS
- [gaiad] Update for Tendermint v0.19.3 (improve
/dump_consensus_stateand add/consensus_state) - [spec/ibc] Added spec!
- [spec/stake] Cleanup structure, include details about slashing and auto-unbonding
- [spec/governance] Fixup some names and pseudocode
- NOTE: specs are still a work-in-progress ...
BUG FIXES
- Auto-sequencing now works correctly
0.16.0 (May 14th, 2018)
BREAKING CHANGES
- Move module REST/CLI packages to x/[module]/client/rest and x/[module]/client/cli
- Gaia simple-staking bond and unbond functions replaced
- [stake] Delegator bonds now store the height at which they were updated
- All module keepers now require a codespace, see basecoin or democoin for usage
- Many changes to names throughout
- Type as a prefix naming convention applied (ex. BondMsg -> MsgBond)
- Removed redundancy in names (ex. stake.StakingKeeper -> stake.Keeper)
- Removed SealedAccountMapper
- gaiad init now requires use of
--nameflag - Removed Get from Msg interface
- types/rational now extends big.Rat
FEATURES:
- Gaia stake commands include, CreateValidator, EditValidator, Delegate, Unbond
- MountStoreWithDB without providing a custom store works.
- Repo is now lint compliant / GoMetaLinter with tendermint-lint integrated into CI
- Better key output, pubkey go-amino hex bytes now output by default
- gaiad init overhaul
- Create genesis transactions with
gaiad init gen-tx - New genesis account keys are automatically added to the client keybase (introduce
--client-homeflag) - Initialize with genesis txs using
--gen-txsflag
- Create genesis transactions with
- Context now has access to the application-configured logger
- Add (non-proof) subspace query helper functions
- Add more staking query functions: candidates, delegator-bonds
BUG FIXES
- Gaia now uses stake, ported from github.com/cosmos/gaia
0.15.1 (April 29, 2018)
IMPROVEMENTS:
- Update Tendermint to v0.19.1 (includes many rpc fixes)
0.15.0 (April 29, 2018)
NOTE: v0.15.0 is a large breaking change that updates the encoding scheme to use Amino.
For details on how this changes encoding for public keys and addresses, see the docs.
BREAKING CHANGES
- Remove go-wire, use go-amino
- [store] Add
SubspaceIteratorandReverseSubspaceIteratortoKVStoreinterface - [basecoin] NewBasecoinApp takes a
dbm.DBand uses namespaced DBs for substores
FEATURES:
- Add CacheContext
- Add auto sequencing to client
- Add FeeHandler to ante handler
BUG FIXES
- MountStoreWithDB without providing a custom store works.
0.14.1 (April 9, 2018)
BUG FIXES
- [gaiacli] Fix all commands (just a duplicate of basecli for now)
0.14.0 (April 9, 2018)
BREAKING CHANGES:
- [client/builder] Renamed to
client/coreand refactored to use a CoreContext struct - [server] Refactor to improve useability and de-duplicate code
- [types]
Result.ToQuery -> Error.QueryResult - [makefile]
make buildandmake installonly build/installgaiacliandgaiad. Usemake build_examplesandmake install_examplesforbasecoind/baseclianddemocoind/democli - [staking] Various fixes/improvements
FEATURES:
- [democoin] Added Proof-of-Work module
BUG FIXES
- [client] Reuse Tendermint RPC client to avoid excessive open files
- [client] Fix setting log level
- [basecoin] Sort coins in genesis
0.13.1 (April 3, 2018)
BUG FIXES
- [x/ibc] Fix CLI and relay for IBC txs
- [x/stake] Various fixes/improvements
0.13.0 (April 2, 2018)
BREAKING CHANGES
- [basecoin] Remove cool/sketchy modules -> moved to new
democoin - [basecoin] NewBasecoinApp takes a
map[string]dbm.DBas temporary measure to allow mounting multiple stores with their own DB until they can share one - [x/staking] Renamed to
simplestake - [builder] Functions don't take
passphraseas argument - [server] GenAppParams returns generated seed and address
- [basecoind]
initcommand outputs JSON of everything necessary for testnet - [basecoind]
basecoin.db -> data/basecoin.db - [basecli]
data/keys.db -> keys/keys.db
FEATURES
- [types]
Coinsupports direct arithmetic operations - [basecoind] Add
show_validatorandshow_node_idcommands - [x/stake] Initial merge of full staking module!
- [democoin] New example application to demo custom modules
IMPROVEMENTS
- [makefile]
make install - [testing] Use
/tmpfor directories so they don't get left in the repo
BUG FIXES
- [basecoin] Allow app to be restarted
- [makefile] Fix build on Windows
- [basecli] Get confirmation before overriding key with same name
0.12.0 (March 27 2018)
BREAKING CHANGES
- Revert to old go-wire for now
- glide -> godep
- [types] ErrBadNonce -> ErrInvalidSequence
- [types] Replace tx.GetFeePayer with FeePayer(tx) - returns the first signer
- [types] NewStdTx takes the Fee
- [types] ParseAccount -> AccountDecoder; ErrTxParse -> ErrTxDecoder
- [x/auth] AnteHandler deducts fees
- [x/bank] Move some errors to
types - [x/bank] Remove sequence and signature from Input
FEATURES
- [examples/basecoin] New cool module to demonstrate use of state and custom transactions
- [basecoind]
show_node_idcommand - [lcd] Implement the Light Client Daemon and endpoints
- [types/stdlib] Queue functionality
- [store] Subspace iterator on IAVLTree
- [types] StdSignDoc is the document that gets signed (chainid, msg, sequence, fee)
- [types] CodeInvalidPubKey
- [types] StdFee, and StdTx takes the StdFee
- [specs] Progression of MVPs for IBC
- [x/ibc] Initial shell of IBC functionality (no proofs)
- [x/simplestake] Simple staking module with bonding/unbonding
IMPROVEMENTS
- Lots more tests!
- [client/builder] Helpers for forming and signing transactions
- [types] sdk.Address
- [specs] Staking
BUG FIXES
- [x/auth] Fix setting pubkey on new account
- [x/auth] Require signatures to include the sequences
- [baseapp] Dont panic on nil handler
- [basecoin] Check for empty bytes in account and tx
0.11.0 (March 1, 2017)
BREAKING CHANGES
- [examples] dummy -> kvstore
- [examples] Remove gaia
- [examples/basecoin] MakeTxCodec -> MakeCodec
- [types] CommitMultiStore interface has new
GetCommitKVStore(key StoreKey) CommitKVStoremethod
FEATURES
- [examples/basecoin] CLI for
basecliandbasecoind(!) - [baseapp] router.AddRoute returns Router
IMPROVEMENTS
- [baseapp] Run msg handlers on CheckTx
- [docs] Add spec for REST API
- [all] More tests!
BUG FIXES
- [baseapp] Fix panic on app restart
- [baseapp] InitChain does not call Commit
- [basecoin] Remove IBCStore because mounting multiple stores is currently broken
0.10.0 (February 20, 2017)
BREAKING CHANGES
- [baseapp] NewBaseApp(logger, db)
- [baseapp] NewContext(isCheckTx, header)
- [x/bank] CoinMapper -> CoinKeeper
FEATURES
- [examples/gaia] Mock CLI !
- [baseapp] InitChainer, BeginBlocker, EndBlocker
- [baseapp] MountStoresIAVL
IMPROVEMENTS
- [docs] Various improvements.
- [basecoin] Much simpler :)
BUG FIXES
- [baseapp] initialize and reset msCheck and msDeliver properly
0.9.0 (February 13, 2017)
BREAKING CHANGES
- Massive refactor. Basecoin works. Still needs <3
0.8.1
- Updates for dependencies
0.8.0 (December 18, 2017)
- Updates for dependencies
0.7.1 (October 11, 2017)
IMPROVEMENTS:
- server/commands: GetInitCmd takes list of options
0.7.0 (October 11, 2017)
BREAKING CHANGES:
- Everything has changed, and it's all about to change again, so don't bother using it yet!
0.6.2 (July 27, 2017)
IMPROVEMENTS:
- auto-test all tutorials to detect breaking changes
- move deployment scripts from
/scriptsto/publishfor clarity
BUG FIXES:
basecoin initensures the address in genesis.json is valid- fix bug that certain addresses couldn't receive ibc packets
0.6.1 (June 28, 2017)
Make lots of small cli fixes that arose when people were using the tools for the testnet.
IMPROVEMENTS:
- basecoin
basecoin startsupports all flags thattendermint nodedoes, such as--rpc.laddr,--p2p.seeds, and--p2p.skip_upnp- fully supports
--log_leveland--tracefor logger configuration - merkleeyes no longers spams the logs... unless you want it
- Example:
basecoin start --log_level="merkleeyes:info,state:info,*:error" - Example:
basecoin start --log_level="merkleeyes:debug,state:info,*:error"
- Example:
- basecli
basecli initis more intelligent and only complains if there really was a connected chain, not just random files- support
localhost:46657orhttp://localhost:46657format for nodes, not justtcp://localhost:46657 - Add
--genesisto init to specify chain-id and validator hash- Example:
basecli init --node=localhost:46657 --genesis=$HOME/.basecoin/genesis.json
- Example:
basecli rpchas a number of methods to easily accept tendermint rpc, and verifies what it can
BUG FIXES:
- basecli
basecli query accountaccepts hex account address with or without0xprefix- gives error message when running commands on an unitialized chain, rather than some unintelligable panic
0.6.0 (June 22, 2017)
Make the basecli command the only way to use client-side, to enforce best security practices. Lots of enhancements to get it up to production quality.
BREAKING CHANGES:
- ./cmd/commands -> ./cmd/basecoin/commands
- basecli
basecli proof state get->basecli query keybasecli proof tx get->basecli query txbasecli proof state get --app=account->basecli query account- use
--chain-idnot--chainidfor consistency - update to use
--tracenot--debugfor stack traces on errors - complete overhaul on how tx and query subcommands are added. (see counter or trackomatron for examples)
- no longer supports counter app (see new countercli)
- basecoin
basecoin inittakes an argument, an address to allocate funds to in the genesis- removed key2.json
- removed all client side functionality from it (use basecli now for proofs)
- no tx subcommand
- no query subcommand
- no account (query) subcommand
- a few other random ones...
- enhanced relay subcommand
- relay start did what relay used to do
- relay init registers both chains on one another (to set it up so relay start just works)
- docs
- removed
example-plugin, putcounterinsidedocs/guide
- removed
- app
- Implements ABCI handshake by proxying merkleeyes.Info()
IMPROVEMENTS:
basecoin initsupport--chain-id- intergrates tendermint 0.10.0 (not the rc-2, but the real thing)
- commands return error code (1) on failure for easier script testing
- add
reset_allto basecli, and never delete keys oninit - new shutil based unit tests, with better coverage of the cli actions
- just
make freshwhen things are getting stale ;)
BUG FIXES:
- app: no longer panics on missing app_options in genesis (thanks, anton)
- docs: updated all docs... again
- ibc: fix panic on getting BlockID from commit without 100% precommits (still a TODO)
0.5.2 (June 2, 2017)
BUG FIXES:
- fix parsing of the log level from Tendermint config (#97)
0.5.1 (May 30, 2017)
BUG FIXES:
- fix ibc demo app to use proper tendermint flags, 0.10.0-rc2 compatibility
- Make sure all cli uses new json.Marshal not wire.JSONBytes
0.5.0 (May 27, 2017)
BREAKING CHANGES:
- only those related to the tendermint 0.9 -> 0.10 upgrade
IMPROVEMENTS:
- basecoin cli
- integrates tendermint 0.10.0 and unifies cli (init, unsafe_reset_all, ...)
- integrate viper, all command line flags can also be defined in environmental variables or config.toml
- genesis file
- you can define accounts with either address or pub_key
- sorts coins for you, so no silent errors if not in alphabetical order
- light-client integration
- no longer must you trust the node you connect to, prove everything!
- new basecli command
- integrated key management, stored encrypted locally
- tracks validator set changes and proves everything from one initial validator seed
basecli proof stategets complete proofs for any abci statebasecli proof txgets complete proof where a tx was stored in the chainbasecli proxyexposes tendermint rpc, but only passes through results after doing complete verification
BUG FIXES:
- no more silently ignored error with invalid coin names (eg. "17.22foo coin" used to parse as "17 foo", not warning/error)
0.4.1 (April 26, 2017)
BUG FIXES:
- Fix bug in
basecoin unsafe_reset_Xwhere thepriv_validator.jsonwas not being reset
0.4.0 (April 21, 2017)
BREAKING CHANGES:
- CLI now uses Cobra, which forced changes to some of the flag names and orderings
IMPROVEMENTS:
basecoin initdoesn't generate error if already initialized- Much more testing
0.3.1 (March 23, 2017)
IMPROVEMENTS:
- CLI returns exit code 1 and logs error before exiting
0.3.0 (March 23, 2017)
BREAKING CHANGES:
- Remove
--dataflag and useBCHOMEto set the home directory (defaults to~/.basecoin) - Remove
--in-procflag and start Tendermint in-process by default (expect Tendermint files in $BCHOME/tendermint). To start just the ABCI app/server, usebasecoin start --without-tendermint. - Consolidate genesis files so the Basecoin genesis is an object under
app_optionsin Tendermint genesis. For instance:
{
"app_hash": "",
"chain_id": "foo_bar_chain",
"genesis_time": "0001-01-01T00:00:00.000Z",
"validators": [
{
"amount": 10,
"name": "",
"pub_key": [
1,
"7B90EA87E7DC0C7145C8C48C08992BE271C7234134343E8A8E8008E617DE7B30"
]
}
],
"app_options": {
"accounts": [{
"pub_key": {
"type": "ed25519",
"data": "6880db93598e283a67c4d88fc67a8858aa2de70f713fe94a5109e29c137100c2"
},
"coins": [
{
"denom": "blank",
"amount": 12345
},
{
"denom": "ETH",
"amount": 654321
}
]
}],
"plugin_options": ["plugin1/key1", "value1", "plugin1/key2", "value2"]
}
}
Note the array of key-value pairs is now under app_options.plugin_options while the app_options themselves are well formed.
We also changed chainID to chain_id and consolidated to have just one of them.
FEATURES:
- Introduce
basecoin initandbasecoin unsafe_reset_all
0.2.0 (March 6, 2017)
BREAKING CHANGES:
- Update to ABCI v0.4.0 and Tendermint v0.9.0
- Coins are specified on the CLI as
Xcoin, eg.5gold Costis nowFee
FEATURES:
- CLI for sending transactions and querying the state, designed to be easily extensible as plugins are implemented
- Run Basecoin in-process with Tendermint
- Add
/accountpath in Query - IBC plugin for InterBlockchain Communication
- Demo script of IBC between two chains
IMPROVEMENTS:
- Use new Tendermint
/commitendpoint for crafting IBC transactions - More unit tests
- Use go-crypto S structs and go-data for more standard JSON
- Demo uses fewer sleeps
BUG FIXES:
- Various little fixes in coin arithmetic
- More commit validation in IBC
- Return results from transactions
PreHistory
January 14-18, 2017
- Update to Tendermint v0.8.0
- Cleanup a bit and release blog post
September 22, 2016
- Basecoin compiles again