##v0.25.1
- [sdk] #290 BEP153: Native Staking Implementation
##v0.25.0-binance.28
- [sdk] #284 Disable TSS support
##v0.25.0-binance.27
- [store] #272 Change default saved recent iavl version from 10K to 100K
- [sdk] #273 Change default file permissions
- [sdk] #274 Bump up go version and replace ioutil with io/os
- [sdk] #275 #277 Enhance checks of ValidateBasic for messages
- [sdk] #278 Fix checksum mismatch issue of btcd
- [core] #279 Upgrade Tendermint to v0.32.3-binance.7
##v0.25.0-binance.26
- [stake] #259 Improve staking reward distribution
##v0.25.0-binance.25
- [sdk] #260 Bug fixes (e.g., unclosed iterator)
- [stake] #261 Remove GetValidator caching to fix concurrency error
- [keys] #263 Add 'm/' prefix to hd path
- [core] #264 Upgrade Tendermint to v0.32.3-binance.6
- Update go version to 1.16
- Fix infinite recursion in Secp256k1 String() method
##v0.25.0-binance.24
- [sdk] #248 owner transfer
- [sdk] Allow tx send (generate-only) to actually work offline #4234
- [store] (iavl) #5276 Fix potential race condition in iavlIterator#Close.
- [sdk] #247 Fix failack payload
- [sdk] #251 change minimum length to 2
- [sdk] #252 Fix Fee compatibility issue
- [sdk] #163 Tss for project team
- [sdk] #165 Improve perf
- [sdk] #166 Upgrade tendermint to 0.32.3 and use go mod instead of deps
- [sdk] #167 Add blockhash context
- [sdk] #168 Fix sign bytes issue
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_delegations
andGET stake/delegators/{delegatorAddr}/redelegations
-
Gaia CLI (
gaiacli
)- [x/stake] Validator.Owner renamed to Validator.Operator
- [cli] unsafe_reset_all, show_validator, and show_node_id have been renamed to unsafe-reset-all, show-validator, and show-node-id
- [cli] #1983 --print-response now defaults to true in commands that create and send a transaction
- [cli] #1983 you can now pass --pubkey or --address to gaiacli keys show to return a plaintext representation of the key's address or public key for use with other commands
- [cli] #2061 changed proposalID in governance REST endpoints to proposal-id
- [cli] #2014
gaiacli advanced
no longer exists - to accessibc
,rest-server
, andvalidator-set
commands usegaiacli ibc
,gaiacli rest-server
, andgaiacli tendermint
, respectively - [makefile]
get_vendor_deps
no longer updates lock file it just updates vendor directory. Useupdate_vendor_deps
to update the lock file. #2152 - [cli] #2221 All commands that
utilize a validator's operator address must now use the new Bech32 prefix,
cosmosvaloper
. - [cli] #2190
gaiacli init --gen-txs
is nowgaiacli init --with-txs
to reduce confusion - [cli] #2073 --from can now be either an address or a key name
- [cli] #1184 Subcommands reorganisation, see #2390 for a comprehensive list of changes.
- [cli] #2524 Add support offline mode to
gaiacli tx sign
. Lookups are not performed if the flag--offline
is on. - [cli] #2570 Add commands to query deposits on proposals
-
Gaia
- Make the transient store key use a distinct store key. #2013
- [x/stake] #1901 Validator type's Owner field renamed to Operator; Validator's GetOwner() renamed accordingly to comply with the SDK's Validator interface.
- [docs] #2001 Update slashing spec for slashing period
- [x/stake, x/slashing] #1305 - Rename "revoked" to "jailed"
- [x/stake] [#1676] Revoked and jailed validators put into the unbonding state
- [x/stake] [#1877] Redelegations/unbonding-delegation from unbonding validator have reduced time
- [x/slashing] #1789 Slashing changes for Tendermint validator set offset (NextValSet)
- [x/stake] #2040 Validator
operator type has now changed to
sdk.ValAddress
- [x/stake] #2221 New
Bech32 prefixes have been introduced for a validator's consensus address and
public key:
cosmosvalcons
andcosmosvalconspub
respectively. Also, existing Bech32 prefixes have been renamed for accounts and validator operators:cosmosaccaddr
/cosmosaccpub
=>cosmos
/cosmospub
cosmosvaladdr
/cosmosvalpub
=>cosmosvaloper
/cosmosvaloperpub
- [x/stake] [#1013] TendermintUpdates now uses transient store
- [x/stake] #2435 Remove empty bytes from the ValidatorPowerRank store key
- [x/gov] [#2195] Governance uses BFT Time
- [x/gov] #2256 Removed slashing for governance non-voting validators
- [simulation] #2162 Added back correct supply invariants
- [x/slashing] #2430 Simulate more slashes, check if validator is jailed before jailing
- [x/stake] #2393 Removed
CompleteUnbonding
andCompleteRedelegation
Msg types, and instead added unbonding/redelegation queues to endblocker - [x/mock/simulation] #2501 Simulate transactions & invariants for fee distribution, and fix bugs discovered in the process
- [x/auth] Simulate random fee payments
- [cmd/gaia/app] Simulate non-zero inflation
- [x/stake] Call hooks correctly in several cases related to delegation/validator updates
- [x/stake] Check full supply invariants, including yet-to-be-withdrawn fees
- [x/stake] Remove no-longer-in-use store key
- [x/slashing] Call hooks correctly when a validator is slashed
- [x/slashing] Truncate withdrawals (unbonding, redelegation) and burn change
- [x/mock/simulation] Ensure the simulation cannot set a proposer address of nil
- [x/mock/simulation] Add more event logs on begin block / end block for clarity
- [x/mock/simulation] Correctly set validator power in abci.RequestBeginBlock
- [x/minting] Correctly call stake keeper to track inflated supply
- [x/distribution] Sanity check for nonexistent rewards
- [x/distribution] Truncate withdrawals and return change to the community pool
- [x/distribution] Add sanity checks for incorrect accum / total accum relations
- [x/distribution] Correctly calculate total power using Tendermint updates
- [x/distribution] Simulate withdrawal transactions
- [x/distribution] Fix a bug where the fee pool was not correctly tracked on WithdrawDelegatorRewardsAll
- [x/stake] #1673 Validators are no longer deleted until they can no longer possibly be slashed
- #1890 Start chain with initial state + sequence of transactions
- [cli] Rename
gaiad init gentx
togaiad gentx
. - [cli] Add
--skip-genesis
flag togaiad init
to preventgenesis.json
generation. - Drop
GenesisTx
in favor of a signedStdTx
with only oneMsgCreateValidator
message. - [cli] Port
gaiad init
andgaiad testnet
to work withStdTx
genesis transactions. - [cli] Add
--moniker
flag togaiad init
to override moniker when generatinggenesis.json
- i.e. it takes effect when running with the--with-txs
flag, it is ignored otherwise.
- [cli] Rename
-
SDK
- [core] #2219 Update to Tendermint 0.24.0
- Validator set updates delayed by one block
- BFT timestamp that can safely be used by applications
- Fixed maximum block size enforcement
- [core] #1807 Switch from use of rational to decimal
- [types] #1901 Validator interface's GetOwner() renamed to GetOperator()
- [x/slashing] #2122 - Implement slashing period
- [types] #2119 Parsed error messages and ABCI log errors to make them more human readable.
- [types] #2407 MulInt method added to big decimal in order to improve efficiency of slashing
- [simulation] Rename TestAndRunTx to Operation #2153
- [simulation] Remove log and testing.TB from Operation and Invariants, in favor of using errors #2282
- [simulation] Remove usage of keys and addrs in the types, in favor of simulation.Account #2384
- [tools] Removed gocyclo #2211
- [baseapp] Remove
SetTxDecoder
in favor of requiring the decoder be set in baseapp initialization. #1441 - [baseapp] #1921 Add minimumFees field to BaseApp.
- [store] Change storeInfo within the root multistore to use tmhash instead of ripemd160 #2308
- [codec] #2324 All referrences to wire have been renamed to codec. Additionally, wire.NewCodec is now codec.New().
- [types] #2343 Make sdk.Msg have a names field, to facilitate automatic tagging.
- [baseapp] #2366 Automatically add action tags to all messages
- [x/auth] #2377 auth.StdSignMsg -> txbuilder.StdSignMsg
- [x/staking] #2244 staking now holds a consensus-address-index instead of a consensus-pubkey-index
- [x/staking] #2236 more distribution hooks for distribution
- [x/stake] #2394 Split up UpdateValidator into distinct state transitions applied only in EndBlock
- [x/slashing] #2480 Fix signing info handling bugs & faulty slashing
- [x/stake] #2412 Added an unbonding validator queue to EndBlock to automatically update validator.Status when finished Unbonding
- [x/stake] #2500 Block conflicting redelegations until we add an index
- [x/params] Global Paramstore refactored
- [types] #2506 sdk.Dec MarshalJSON now marshals as a normal Decimal, with 10 digits of decimal precision
- [x/stake] #2508 Utilize Tendermint power for validator power key
- [x/stake] #2531 Remove all inflation logic
- [x/mint] #2531 Add minting module and inflation logic
- [x/auth] #2540 Rename
AccountMapper
toAccountKeeper
. - [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=true
requests query argument to endpoints that send txs to run simulations of transactions - [gaia-lite] #966 Add support for
generate_only=true
query argument to generate offline unsigned transactions - [gaia-lite] #1953 Add /sign endpoint to sign transactions generated with
generate_only=true
. - [gaia-lite] #1954 Add /broadcast endpoint to broadcast transactions signed by the /sign endpoint.
- [gaia-lite] #2113 Rename
/accounts/{address}/send
to/bank/accounts/{address}/transfers
, rename/accounts/{address}
to/auth/accounts/{address}
, replaceproposal-id
withproposalId
in 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
--proposal
flag tosubmit-proposal
that allows a JSON file containing a proposal to be passed in - #2040 Add
--bech
togaiacli keys show
and respective REST endpoint to provide desired Bech32 prefix encoding - [cli] #2047 #2306 Passing --gas=simulate triggers a simulation of the tx before the actual execution. The gas estimate obtained via the simulation will be used as gas limit in the actual execution.
- [cli] #2047 The --gas-adjustment flag can be used to adjust the estimate obtained via the simulation triggered by --gas=simulate.
- [cli] #2110 Add --dry-run flag to perform a simulation of a transaction without broadcasting it. The --gas flag is ignored as gas would be automatically estimated.
- [cli] #2204 Support generating and broadcasting messages with multiple signatures via command line:
- [cli] #2220 Add
gaiacli config
feature to interactively create CLI config files to reduce the number of required flags - [stake][cli] #1672 Introduced
new commission flags for validator commands
create-validator
andedit-validator
. - [stake][cli] #1890 Add
--genesis-format
flag togaiacli tx create-validator
to produce transactions in genesis-friendly format. - [cli]#2554 Make
gaiacli keys show
multisig ready.
-
Gaia
- [cli] #2170 added ability to show the node's address via
gaiad tendermint show-address
- [simulation] #2313 Reworked
make test_sim_gaia_slow
tomake test_sim_gaia_full
, now simulates from multiple starting seeds in parallel - [cli] [#1921] (cosmos/cosmos-sdk#1921)
- New configuration file
gaiad.toml
is now created to host Gaia-specific configuration. - New --minimum_fees/minimum_fees flag/config option to set a minimum fee.
- New configuration file
- [cli] #2170 added ability to show the node's address via
-
SDK
- [querier] added custom querier functionality, so ABCI query requests can be handled by keepers
- [simulation] #1924 allow operations to specify future operations
- [simulation] #1924 Add benchmarking capabilities, with makefile commands "test_sim_gaia_benchmark, test_sim_gaia_profile"
- [simulation] #2349 Add time-based future scheduled operations to simulator
- [x/auth] #2376 Remove FeePayer() from StdTx
- [x/stake] #1672 Implement basis for the validator commission model.
- [x/auth] Support account removal in the account mapper.
IMPROVEMENTS
-
[tools] Improved terraform and ansible scripts for infrastructure deployment
-
[tools] Added ansible script to enable process core dumps
-
Gaia REST API (
gaiacli advanced rest-server
) -
Gaia CLI (
gaiacli
)- [cli] #2060 removed
--select
fromblock
command - [cli] #2128 fixed segfault when exporting directly after
gaiad init
- [cli] #1255 open KeyBase in read-only mode for query-purpose CLI commands
- [cli] #2060 removed
-
Gaia
- [x/stake] #2023 Terminate iteration loop in
UpdateBondedValidators
andUpdateBondedValidatorsFull
when the first revoked validator is encountered and perform a sanity check. - [x/auth] Signature verification's gas cost now accounts for pubkey type. #2046
- [x/stake] [x/slashing] Ensure delegation invariants to jailed validators #1883.
- [x/stake] Improve speed of GetValidator, which was shown to be a performance bottleneck. #2046
- [x/stake] #2435 Improve memory efficiency of getting the various store keys
- [genesis] #2229 Ensure that there are no duplicate accounts or validators in the genesis state.
- [genesis] #2450 Validate staking genesis parameters.
- Add SDK validation to
config.toml
(namely disablingcreate_empty_blocks
) #1571 - #1941(cosmos/cosmos-sdk#1941) Version is now inferred via
git describe --tags
. - [x/distribution] #1671 add distribution types and tests
- [x/stake] #2023 Terminate iteration loop in
-
SDK
- [tools] Make get_vendor_deps deletes
.vendor-new
directories, in case scratch files are present. - [spec] Added simple piggy bank distribution spec
- [cli] #1632 Add integration tests to ensure
basecoind init && basecoind
start sequences run successfully for bothdemocoin
andbasecoin
examples. - [store] Speedup IAVL iteration, and consequently everything that requires IAVL iteration. #2143
- [store] #1952, #2281 Update IAVL dependency to v0.11.0
- [simulation] Make timestamps randomized #2153
- [simulation] Make logs not just pure strings, speeding it up by a large factor at greater block heights #2282
- [simulation] Add a concept of weighting the operations #2303
- [simulation] Logs get written to file if large, and also get printed on panics #2285
- [simulation] Bank simulations now makes testing auth configurable #2425
- [gaiad] #1992 Add optional flag to
gaiad testnet
to make config directory of daemon (defaultgaiad
) and cli (defaultgaiacli
) configurable - [x/stake] Add stake
Queriers
for Gaia-lite endpoints. This increases the staking endpoints performance by reusing the stakingkeeper
logic for queries. #2249 - [store] #2017 Refactor
gas iterator gas consumption to only consume gas for iterator creation and
Next
calls which includes dynamic consumption of value length. - [types/decimal] #2378 - Added truncate functionality to decimal
- [client] #1184 Remove unused
client/tx/sign.go
. - [tools] #2464 Lock binary dependencies to a specific version
- [tools] Make get_vendor_deps deletes
BUG FIXES
-
Gaia CLI (
gaiacli
) -
Gaia
- [x/stake] Return correct Tendermint validator update set on
EndBlocker
by not including non previously bonded validators that have zero power. #2189
- [x/stake] Return correct Tendermint validator update set on
-
SDK
- #1988 Make us compile on OpenBSD (disable ledger) [#1988] (cosmos/cosmos-sdk#1988)
- #2105 Fix DB Iterator leak, which may leak a go routine.
- [ledger] #2064 Fix inability to sign and send transactions via the LCD by loading a Ledger device at runtime.
- #2158 Fix non-deterministic ordering of validator iteration when slashing in
gov EndBlocker
- [simulation] #1924 Make simulation stop on SIGTERM
- #2388 Remove dependency on deprecated tendermint/tmlibs repository.
- #2416 Refactored
InitializeTestLCD
to properly include proposing validator in genesis state.
August 22nd, 2018
BUG FIXES
- Tendermint
- Fix unbounded consensus WAL growth
August 21st, 2018
BUG FIXES
- Gaia
- [x/slashing] Evidence tracking now uses validator address instead of validator pubkey
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_info
takes 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-sig
to--identity
- [x/stake] #1828 Force user to specify amount on create-validator command by removing default
- [x/gov] Change
--proposalID
to--proposal-id
- [x/stake, x/gov] #1606 Use
--from
instead of adhoc flags like--address-validator
and--proposer
to indicate the sender address. - #1551 Remove
--name
completely - 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->pubkey
in 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/auth
rather than baseapp - [client] #1551: Refactored
CoreContext
toTxContext
andQueryContext
- Removed all tx related fields and logic (building & signing) to separate
structure
TxContext
inx/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-proposals
command. 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-cli
tool 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
EditValidator
txs. - [config] #1930 Transactions indexer indexes all tags by default.
- [ci] #2057 Run
make localnet-start
on 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
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
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
July 16th, 2018
BREAKING CHANGES
- [x/gov] Increase VotingPeriod, DepositPeriod, and MinDeposit
IMPROVEMENTS
- [gaiad] Default config updates:
timeout_commit=5000
so blocks only made every 5sprof_listen_addr=localhost:6060
so profile server is on by defaultp2p.send_rate
andp2p.recv_rate
increases 10x (~5MB/s)
BUG FIXES
- [server] Fix to actually overwrite default tendermint config
July 14th, 2018
BUG FIXES
- [build] Added Ledger build support via
LEDGER_ENABLED=true|false
- True by default except when cross-compiling
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
PoolShares
type inx/stake/validator
type - replace withStatus
Tokens
fields
- 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
July 10th, 2018
BREAKING CHANGES
- msg.GetSignBytes() returns sorted JSON (by key)
- msg.GetSignBytes() field changes
msg_bytes
->msgs
fee_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.Address
tosdk.AccAddress
/sdk.ValAddress
- [types]
sdk.AccAddress
/sdk.ValAddress
natively 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
crypto
folder - [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 unbond
replaced withgaiacli stake begin-unbonding
- Introduced:
gaiacli stake complete-unbonding
gaiacli stake begin-redelegation
gaiacli 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
--name
flag 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 --ledger
for 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
--memo
flag - [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 format
command 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_all
now 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
types
andkeeper
package - [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
send
andaccount
commands - 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 account
didn'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 validator
no 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
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
--gas
flag 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
June 9, 2018
BREAKING CHANGES
- [stake] candidate -> validator throughout (details in refactor comment)
- [stake] delegate-bond -> delegation throughout
- [stake]
gaiacli query validator
takes and argument instead of using the--address-candidate
flag - [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
June 5, 2018
Update to Tendermint v0.19.9 (Fix evidence reactor, mempool deadlock, WAL panic, memory leak)
May 31, 2018
Update to Tendermint v0.19.7 (WAL fixes and more)
May 29, 2018
Update to Tendermint v0.19.6 (fix fast-sync halt)
June 5, 2018
Update to Tendermint v0.19.9 (Fix evidence reactor, mempool deadlock, WAL panic, memory leak)
May 31, 2018
Update to Tendermint v0.19.7 (WAL fixes and more)
May 29, 2018
Update to Tendermint v0.19.6 (fix fast-sync halt)
May 20, 2018
Update to Tendermint v0.19.5 (reduce WAL use, bound the mempool and some rpcs, improve logging)
Update to Tendermint v0.19.4 (fixes a consensus bug and improves logging)
BREAKING CHANGES
- [stake] MarshalJSON -> MarshalBinary
- Queries against the store must be prefixed with the path "/store"
FEATURES
- [gaiacli] Support queries for candidates, delegator-bonds
- [gaiad] Added
gaiad export
command 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_state
and 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
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.StakeKeeper -> stake.Keeper)
- Removed SealedAccountMapper
- gaiad init now requires use of
--name
flag - 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-home
flag) - Initialize with genesis txs using
--gen-txs
flag
- 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
IMPROVEMENTS:
- Update Tendermint to v0.19.1 (includes many rpc fixes)
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
SubspaceIterator
andReverseSubspaceIterator
toKVStore
interface - [basecoin] NewBasecoinApp takes a
dbm.DB
and 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.
BUG FIXES
- [gaiacli] Fix all commands (just a duplicate of basecli for now)
BREAKING CHANGES:
- [client/builder] Renamed to
client/core
and refactored to use a CoreContext struct - [server] Refactor to improve useability and de-duplicate code
- [types]
Result.ToQuery -> Error.QueryResult
- [makefile]
make build
andmake install
only build/installgaiacli
andgaiad
. Usemake build_examples
andmake install_examples
forbasecoind/basecli
anddemocoind/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
BUG FIXES
- [x/ibc] Fix CLI and relay for IBC txs
- [x/stake] Various fixes/improvements
BREAKING CHANGES
- [basecoin] Remove cool/sketchy modules -> moved to new
democoin
- [basecoin] NewBasecoinApp takes a
map[string]dbm.DB
as 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
passphrase
as argument - [server] GenAppParams returns generated seed and address
- [basecoind]
init
command outputs JSON of everything necessary for testnet - [basecoind]
basecoin.db -> data/basecoin.db
- [basecli]
data/keys.db -> keys/keys.db
FEATURES
- [types]
Coin
supports direct arithmetic operations - [basecoind] Add
show_validator
andshow_node_id
commands - [x/stake] Initial merge of full staking module!
- [democoin] New example application to demo custom modules
IMPROVEMENTS
- [makefile]
make install
- [testing] Use
/tmp
for 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
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_id
command - [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
BREAKING CHANGES
- [examples] dummy -> kvstore
- [examples] Remove gaia
- [examples/basecoin] MakeTxCodec -> MakeCodec
- [types] CommitMultiStore interface has new
GetCommitKVStore(key StoreKey) CommitKVStore
method
FEATURES
- [examples/basecoin] CLI for
basecli
andbasecoind
(!) - [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
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
BREAKING CHANGES
- Massive refactor. Basecoin works. Still needs <3
- Updates for dependencies
- Updates for dependencies
IMPROVEMENTS:
- server/commands: GetInitCmd takes list of options
BREAKING CHANGES:
- Everything has changed, and it's all about to change again, so don't bother using it yet!
IMPROVEMENTS:
- auto-test all tutorials to detect breaking changes
- move deployment scripts from
/scripts
to/publish
for clarity
BUG FIXES:
basecoin init
ensures the address in genesis.json is valid- fix bug that certain addresses couldn't receive ibc packets
Make lots of small cli fixes that arose when people were using the tools for the testnet.
IMPROVEMENTS:
- basecoin
basecoin start
supports all flags thattendermint node
does, such as--rpc.laddr
,--p2p.seeds
, and--p2p.skip_upnp
- fully supports
--log_level
and--trace
for 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 init
is more intelligent and only complains if there really was a connected chain, not just random files- support
localhost:46657
orhttp://localhost:46657
format for nodes, not justtcp://localhost:46657
- Add
--genesis
to init to specify chain-id and validator hash- Example:
basecli init --node=localhost:46657 --genesis=$HOME/.basecoin/genesis.json
- Example:
basecli rpc
has a number of methods to easily accept tendermint rpc, and verifies what it can
BUG FIXES:
- basecli
basecli query account
accepts hex account address with or without0x
prefix- gives error message when running commands on an unitialized chain, rather than some unintelligable panic
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 key
basecli proof tx get
->basecli query tx
basecli proof state get --app=account
->basecli query account
- use
--chain-id
not--chainid
for consistency - update to use
--trace
not--debug
for 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 init
takes 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
, putcounter
insidedocs/guide
- removed
- app
- Implements ABCI handshake by proxying merkleeyes.Info()
IMPROVEMENTS:
basecoin init
support--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_all
to basecli, and never delete keys oninit
- new shutil based unit tests, with better coverage of the cli actions
- just
make fresh
when 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)
BUG FIXES:
- fix parsing of the log level from Tendermint config (#97)
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
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 state
gets complete proofs for any abci statebasecli proof tx
gets complete proof where a tx was stored in the chainbasecli proxy
exposes 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)
BUG FIXES:
- Fix bug in
basecoin unsafe_reset_X
where thepriv_validator.json
was not being reset
BREAKING CHANGES:
- CLI now uses Cobra, which forced changes to some of the flag names and orderings
IMPROVEMENTS:
basecoin init
doesn't generate error if already initialized- Much more testing
IMPROVEMENTS:
- CLI returns exit code 1 and logs error before exiting
BREAKING CHANGES:
- Remove
--data
flag and useBCHOME
to set the home directory (defaults to~/.basecoin
) - Remove
--in-proc
flag 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_options
in 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 init
andbasecoin unsafe_reset_all
BREAKING CHANGES:
- Update to ABCI v0.4.0 and Tendermint v0.9.0
- Coins are specified on the CLI as
Xcoin
, eg.5gold
Cost
is 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
/account
path in Query - IBC plugin for InterBlockchain Communication
- Demo script of IBC between two chains
IMPROVEMENTS:
- Use new Tendermint
/commit
endpoint 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
- Update to Tendermint v0.8.0
- Cleanup a bit and release blog post
- Basecoin compiles again