Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
February 24, 2020
This release contains a hotfix for two client issues in the 0.3.0 release (the binaries for chain-abci, enclaves, and dev-utils remain the same).
This release's tarball contains two chain-abci binaries:
chain-abcithat's built with the same compiler version as the current Teaclave SGX SDK-based enclaves (nightly-2019-11-25) in the debug mode
chain-abci-experimentalthat's built using the latest stable version (1.41.0) in the release / optimised mode
February 16, 2020
This release fixes some of the main issues discovered during the testnet 0.2 operation and implements
various improvements, notably deployment is simplified through major parts of ADR-001 being implemented.
- client 723 830: uses argon2 function for its internal storage key derivation.
- client 976 Missing MultiSig pubkey methods in ClientRPC and ClientCLI
-- Rename client-rpc method
- client 1035: querying public information doesn't require a wallet name / passphrase
- chain-abci 982: a different reward formula + paramater renaming in genesis.json
- ADR-001 1073: tx-validation-app subsumed by chain-abci and sealed transaction payloads are stored in chain-abci's storage
- client 695: export and import transaction -- transactions that do not include receiver's view key can be exported, giving a base64 encoded plain transaction string which can be imported by the receiver.
- client 916: wallet delete API
- client 921: high-level deposit transaction workflow (note it has a bug pending to be fixed)
- client 1058: transaction details display
- client 736: more details in abci query errors
- client 701: tracking of utxo status after a transaction broadcast
- client 842: waiting for tendermint node to catch up before syncing
- client 841: not entering duplicate view keys in transaction metadata
- client 848: transaction type shown in history
- client 928: addresses sorted in creation order
- client 959: extra details in client-cli help messages
- client 1051: warning for potentially outdated information in client-cli
- chain-abci 843: sanity check for historical state querying
- chain-abci 875: arguments can be read from a yaml file
- chain-abci 1055: different log levels for missing liveness tracking information
- chain-tx-enclave 740: more logging
- chain-tx-enclave 836: retries for IAS in tx-query
- chain-tx-enclave 931: checking required environment variables are set in tx-query
- chain-tx-validation 845: more descriptive error message for non-existant accounts
January 3, 2020
This hotfix release patches the client with the fixes for bugs discovered in the 0.2.0 release
(the binaries for chain-abci, enclaves, and dev-utils remain the same).
- client 734: client-cli sync hangs after sync complete
- client 735: websocket rpc method id may overlap
- client 737: block id field in vote could be empty
- client 736: unclear client error message when tx-query not set
December 20, 2019
This release fixes some of the bugs discovered in deployment of v0.1 and is based on the released 1.1.0 version
of Rust SGX SDK (0.1.0 used a beta version of 1.1.0).
- client 703: HD wallet generate view key with a different account index.
- dev-utils 692: dev-utils init command logs error when it goes wrong
- client 698: watch-only mode
- client 700: client prints all environment variables in help
- client 705: client rejects weak passphrases based on zxcvbn score
December 17, 2019
The release is a more complete alpha version meant to be deployed on the second iteration of the public testnet.
There are no guarantees on future API and binary compatibility at this stage.
- chain-abci: early punishment logic -- validators that do not maintain liveness or exhibit Byzantine faults are punished
by having their respective account states jailed and their associated stake slashed. Slashing amount
depends on the configurable network parameter as well as how many validators are being punished at the same time. Unjailing can happen manually using a special transaction type (UnjailTx).
- chain-abci: early reward distribution logic -- fees and emissions (using an exponential decay) from the initial rewards pool are periodically distributed to validators.
- chain-abci: dynamic validator set -- new validator nodes can join the validator set by sending a special transaction type (NodeJoinTx).
- chain-abci: more complete and flexible genesis configuration -- the genesis file now contains the network parameters guarding the punishment and rewards logic, and the initial distribution is more flexible (e.g. amounts can be unbonded from a custom time instead of a genesis time).
- chain-tx-enclave: transaction workflows -- basic flows around transaction data confidentiality are sketched out in the client and validation and query enclaves (broadcasted transactions are encrypted with a static mock key; client can connect to an enclave over a remotely attested TLS connection and query transactions that were previously sealed on that node).
- client: HD-wallet -- using the standardized BIP44 derivations and BIP39 mnemonics.
- client: early lite verification -- block-level lite client verification using an early tendermint-rs implementation and basic app hash checking
- 365 Creating a transfer address also creates a staking address
- a lot of others, but as we didn't maintain this changelog, it'd take ages to list them all :/
- quite a few improvements in client, e.g. not signing every intermediate transaction used in fee estimation
- client: internals changed a lot: many dependency bumps + a different storage schema
- chain-abci: app state format changes in genesis.json + storage format
- chain-tx-enclave: changes in enclave-protocol and in EDL
- (compile-time) static mock key for transaction obfuscation
- many other things (e.g. full node synchronization needs to happen from genesis, no UTXO commitments)
September 12, 2019
A quick bug fix on top of 0.0.2
- 373 client-index auto-sync didn't work correctly
September 11, 2019
A small patches (mainly dependency bumps) to the released version
- 360 command to remove a wallet from client-rpc auto-sync
- 368 client-cli can select the network via an environment variable for address display
- 364 fewer logs in client-rpc
The release is an incomplete alpha version meant to be deployed on the first iteration of the public testnet. There are no guarantees of future API and binary compatibility at this stage.
- initial genesis procedure based on one-off snapshotting the ERC20 contract state and several allocation mentioned in the original whitepaper
- initial rewards pool
- initial configurable linear fee scheme
- initial basic network operations related to bonded stake management
- sketched out obfuscated transaction format
- transaction binary payloads use SCALE codec
- transaction validation in enclaves isolated in a separate process reached via a 0MQ socket
- threshold multi-signature support using Merkle trees of combined public keys and the Schnorr MuSig scheme
- (for the sample use case in the context of what was marketed as "Proof of Goods & Services Delivered", see https://github.com/crypto-com/multisig-demo )
- client library "backend" support for transfers, multi-signatures and staking operations
Far too many to list them all (e.g. a validator set fixed at genesis or temporarily mocked transaction privacy) :)