All Versions
27
Latest Version
Avg Release Cycle
56 days
Latest Release
1024 days ago

Changelog History
Page 2

  • v0.23.0 Changes

    April 26, 2019

    ⬆️ Upgrade Note

    ⬆️ In v0.23.0, CITA upgraded the P2P discovery protocol, which leads to Incompatibility with v0.22.0. So the nodes with CITA v0.23.0 and the nodes with CITA v0.22.0 cannot discover each other in the network. Therefore, when upgrading, all nodes in the network need to be upgraded to v0.23.0 at the same time.

    ⬆️ Following Upgrade Instructions to upgrade the nodes.

    🆕 New Feature Description

    The v0.23.0 version added two RPC interfaces:

    • [Get software version]:
    curl -X POST --data '{"jsonrpc":"2.0","method":"getVersion","params":[],"id":83}'
    
    • [Get peer information]:
    curl -X POST --data '{"jsonrpc":"2.0","method":"peersInfo","params":[],"id":83}'
    

    Framework

    • ⚡️ [Optimization] Update default rust toolchain to v1.34.0. [@yangby-cryptape] [@kaikai1024]
    • ⚡️ [Optimization] Update cita-sdk-js version. [@kaikai1024]
    • [Fix] Reorganize toml path. [@ouwenkg]
    • 🔧 [Feature] Log output mode can be configured as stdout or file. [@Kayryu]

    Executor

    • ✅ [Optimization] Integrate vm-test. [@ouwenkg]
    • ✅ [Optimization] Add unit test of calling contract. [@kaikai1024]

    Auth

    • [Fix] Auth crashes when it is not ready. [@leeyr338]

    Network

    • [Fix] High CPU usage. [@leeyr338]
    • [Fix] Refuse connect when reach max connections. [@leeyr338]
    • ✅ [Optimization] Add discovery test of network. [@leeyr338]
    • [Optimization] Use new version p2p to fix network run crash. [@jerry-yu]

    Consensus

    • 0️⃣ [Optimization] Set the default NTP service to false. [@kaikai1024]
    • [Fix] Not generate block. [@jerry-yu]

    RPC

    • [Feature] Add getVersion interface. [@luqz]
    • [Feature] Add peersInfo interface. [@leeyr338]
    • 🔊 [Fix] Get logs break down the chain when toBlock very large. [@leeyr338]

    Scripts

    • [Optimization] Installation && Exectution Optimization: new usage of cita script. [@clearloop]
    • 🐳 [Fix] Redirect the stdout and stderr for daemon processes in docker. [@yangby-cryptape]
    • 🐳 [Fix] Eliminate warnings when create nodes in docker. [@ouwenkg]
    • [Fix] Generate privkey file when use authorities option. [@leeyr338]
    • 🌲 [Optimization] Log rotate output log as a relative path. [@leeyr338]
    • [Optimization] Patch to absolute paths' in starting scripts. [@clearloop]
    • [Optimization] Format the env.sh using ShellCheck. [@clearloop]

    Doc

    • 💅 [Doc] Add style guide of codes. [@kaikai1024]
    • [Doc] Add all contributors. [@kaikai1024]
    • [Doc] Add more template types of issue and pull request. [@kaikai1024]
    • [Doc] Add editorconfig file. [@kaikai1024]
    • 🚀 [Doc] Add release guide doc. [@kaikai1024]
    • 📄 [Doc] Fix 404 error of CITAHub Docs. [@zhouyun-zoe] [@Keith-CY]
    • 📄 [Doc] Add roadmap and fix contributing docs of CITAHub. [@zhouyun-zoe]
    • [Doc] Change CITA slogan into blockchain kernel. [@zhouyun-zoe]
    • ⚡️ [Doc] Update the description of BlockTag. [@xiangmeiLu]
    • ⬆️ [Doc] Fix protocol upgrade doc. [@QingYanL]
    • 0️⃣ [Doc] Set default website with zh-CN language. [@wuyuyue]
  • v0.22.0 Changes

    March 29, 2019

    ⬆️ Upgrade Note

    🔧 The v0.22.0 version of the node configurations is compatible with the v0.21 version. 🔧 Means that you can run v0.22.0 directly using the v0.21 node configurations. 🔨 However, due to the refactoring of the network, the nodes executed with v0.22.0 are incompatible with the original nodes (they have different node discovery and transfer protocols), ⬆️ so all nodes need to be upgraded to v0.22.0 at the same time.

    ⬆️ Following [Upgrade Instructions] to upgrade the nodes.

    🆕 New Feature Description

    The new feature of integrating p2p to network service, we add discovery of the network node 🔧 when the original configuration is compatible. But we still need to make some changes to the 🔧 network configuration file definition:

    The old version network.toml looks like:

    port = 4000
    enable_tls = true
    id_card = 9
    [[peers]]
        ip = "127.0.0.1"
        port = 4001
        common_name = "test1.cita"
    [[peers]]
        ip = "127.0.0.1"
        port = 4002
    

    In the version of v0.22.0, we will discard the item id_card and common_name.

    In the old version, when a new node is added to the network, we need to change the item [[peers]] in all nodes' network.toml to reconstruct the network. It is a very complicated operation. But in v0.22.0, the item [[peers]] means known nodes in the network, you can set only one [[peers]], then it can discovery all the network nodes through a discovery protocol.

    Framework

    • [Optimization] Replace std channel with crossbeam channel. [@kaikai1024] [@leeyr338]
    • [Optimization] Reconfigure the parameters of rocksdb, and this can greatly reduce the .sst files in the database. [@jerry-yu]

    Executor

    • [Fix] Executor crashes when receives staled BlockWithProof. [@ouwenkg] [@keroro520]

    Auth

    • [Fix] Auth crashes when it is not ready. [@leeyr338]

    Network

    • 🔨 [Feature] The network service is refactored by using the p2p protocol. [@leeyr338]

    Consensus

    • [Fix] Consensus goes into panic when timer min peek is extremely close to Instant::now(). [@KaoImin]

    RPC

    • ⚡️ [Optimization] Update test token info. [@kaikai1024]
    • [Feature] Add from to body of getBlockByNumber and getBlockByHash. [@classicalliu]
    • [Fix] Fix the missing CORS header. [@yangby-cryptape]

    Scripts

    • [Optimization] Format Python codes. [@ouwenkg]

    Doc

    • ⚡️ [Doc] Update Rust SDK info in readme. [@u2]
    • [Doc] More info about automatic execution. [@wangfh666]
    • 🌲 [Doc] Fix start cita command in log management. [@77liyan]
  • v0.21.1 Changes

    March 15, 2019

    🛠 Fix the issue about high CPU usage caused by too many sst files. Check the details at [#206]

  • v0.21.0 Changes

    February 19, 2019

    ⬆️ Upgrade Note

    ⬆️ Older version upgrades the v0.21 version requires node configuration modifications.

    • ➕ Adding the following three configurations in each node's executor.toml

    The old version executor.toml:

    Journaldb_type = "archive"
    Prooftype = 2
    Grpc_port = 5000
    

    The new version executor.toml:

    Journaldb_type = "archive"
    Prooftype = 2
    Grpc_port = 5000
    Genesis_path = "./genesis.json"
    Statedb_cache_size = 5242880
    Eth_compatibility = false
    
    • 🔧 Modifying cita-execuror configuration item in each node's forever.toml:

    The old version forever.toml:

    [[process]]
    Name = "cita-executor"
    Command = "cita-executor"
    Args = ["-g","genesis.json","-c","executor.toml"]
    Pidfile = ".cita-executor.pid"
    Respawn = 3
    

    The new version forever.toml:

    [[process]]
    Name = "cita-executor"
    Command = "cita-executor"
    Args = ["-c","executor.toml"]
    Pidfile = ".cita-executor.pid"
    Respawn = 3
    

    ⬆️ After completing the above modifications, following [Upgrade Instructions].

    CITA-Framework

    • ⬆️ [Optimization] Upgrade default rust toolchain to stable. [@yangby-cryptape]
    • 🚚 [Optimization] Remove useless dependencies. [@yangby-cryptape]
    • [Optimization] Compact block Relay. [@u2] [@yangby-cryptape]

    Executor

    • [Feature] Automatic execution. [@kaikai1024]
    • [Optimization] Enable changing size of global cache in StateDB. [@EighteenZi]
    • 🔨 [Refactor] Decouple executor and postman [@keroro520] [@ouwenkg]
    • 🔧 [Configuration] Deprecate --genesis command option, instead place into executor.toml. [@keroro520]
    • 🔧 [Configuration] Add argument about timestamp uint in executor.toml to compatibility with Ethereum.[@rink1969]
    • [Optimization] Change state db type to ensure safe reference. [@ouwenkg]
    • 🚚 [Optimization] Remove unused code in state db. [@ouwenkg]
    • ✅ [Optimization] Add more tests in executor and postman. [@ouwenkg]
    • [Optimization] Add block priority in postman. [@keroro520]
    • 🔨 [Refactor] Decouple global sysconfig from transactionOptions. [@kaikai1024]
    • 🗄 [Optimization] Deprecate some dangerous clone usage in block and state. [@keroro520]
    • 🚚 [Optimization] Remove cached latest hashes. [@rink1969]
    • [Fix] Fix problem in zk privacy. [@rink1969]
    • [Fix] Fix defects in snapshot. [@keroro520]

    Chain

    • [Optimization] Rename crypto enum. [@rink1969]

    Auth

    • [Optimization] Introduce quick check for history heights. [@rink1969]

    Network

    • 📜 [Feature] Enable parsing hostname directly in network.toml. [@driftluo]
    • [Fix] Fix bug for network not send all msg. [@jerry-yu]

    Consensus

    • [Optimization] Add a min-heap timer. [@KaoImin]
    • ⚡️ [Optimization] Optimize wait time for proposal, prevote and precommit. [@jerry-yu]

    RPC

    • 📇 [Fix] The 'chainIdV1' in the response of getMetaData is hex string, so it should have 0x-prefix. [@yangby-cryptape]
    • [Optimization] Split libproto operations from Jsonrpc. [@zeroqn]
    • [Feature] Add from field in Gettransaction rpc interface. [@zeroqn]
    • ⬆️ [Optimization] Upgrade hyper version and split Service and Server. [@zeroqn]
    • [Fix] Fix getFilterChanges interface, the hash array returned in the case of a block filter starts from the next block. [@ouwenkg]

    System Contract

    • 0️⃣ [Feature] Change default quotaPrice to 1000000. [@ouwenkg]
    • ✅ [Optimization] Take interfaces and test contracts out as a dependent submodule. [@kaikai1024]

    Scripts

    • [Feature] Store their own address for each node. [@yangby-cryptape]
    • 🔧 [Configuration] Rename checkPermission to checkCallPermission. [@kaikai1024]
    • [Feature] Check the maximum number of consensus nodes. [@rink1969]
    • ⚡️ [Configuration] Optimize usage of backup and clean command. [@keroro520]
    • [Optimization] Add exit info about creating genesis. [@kaikai1024]
    • 🐳 [Feature] Support start 4 nodes in docker compose. [@rink1969]

    ✅ Test

    • 👷 [Optimization] Split large ci jobs. [@u2]
    • ✅ [Optimization] Add test about amend operation. [@rink1969]
    • ✅ [Optimization] Add test to ensure genesis compatibility. [@kaikai1024]
    • ✅ [Optimization] Add test about snapshot. [@keroro520]

    Doc

    • [Doc] Complete the doc of system contract interface. [@kaikai1024]
    • ⚡️ [Doc] Update crypto type and timestamp configuration in executor.toml. [@rink1969]
    • [Doc] More detail statements about cita-bft consensus. [@KaoImin]
    • ⚡️ [Doc] Update sdk info in readme. [@zhouyun-zoe]
    • [Doc] Add node command description. [@ouwenkg]
    • 📚 [Doc] Build a new [documentation website]. [@zhouyun-zoe]

    Tool

    • [Optimization] Split util module into standalone crates. [@yangby-cryptape]
    • 🔨 [Refactor] Combing the snapshot logic and rewrite snapshot_tools. [@keroro520]
  • v0.20.3 Changes

    March 11, 2019

    🛠 Fix the issue about high CPU usage caused by too many sst files. Check the details at [#206]

  • v0.20.2 Changes

    November 27, 2018

    🛠 Fixed a bug that getting blockhash in solidity contract will get uncertain result.

    pragma solidity ^0.4.24;
    contract Test {
        bytes32 public hash;
    
        function testblockhash() public {
            hash = blockhash(block.number-1);
        }
    }
    

    🚀 Deploy this contract, then send transaction to call testblockhash. Once one of the nodes receives the transaction, the chain will stop growing.

  • v0.20.1 Changes

    November 15, 2018

    🛠 Fixed a bug that Network could not process domain names.

  • v0.20.0 Changes

    November 09, 2018

    Compatibility

    • ⬆️ This new version changes the log format of BFT wal. So it is necessary for each consensus node to be upgraded one by one (the interval should be more than 30s).
    • ⬆️ If you need to upgrade all the nodes at the same time, follow the steps below:
      • Stop all the nodes;
      • Upgrade all the nodes;
      • Use the bft-wal tool to manually convert the log format of BFT wal;
      • Restart all the nodes. shell DATA_PATH=./test-chain/0/data ./bin/bft-wal

    Protocol

    • 👍 [Feature] Add the support for v1 protocol. More details can be found in the document: [Protocol Upgrade From V0 to V1].

    Bootstrap

    • 🔧 [Optimization] Force the use of --super_admin to configure the administrator account when using create_cita_config.py to create a new chain.

    Framework

    • ⚡️ [Upgrade] Upgrade rustc to nightly-2018-10-05, and update the docker image (latest image cita/cita-run:ubuntu-18.04-20181009).

    Executor

    • [Deprecated] Deprecate the use of delay_block_number.
    • 🔨 [Refactor] Use BlockID explicitly in methods that require the use of BlockID instead of using a fuzzy Default value.
    • 🔨 [Refactor] Refactor duplicated codes in both of Executor and Chain.
    • 🔨 [Refactor] Refactor some unsafe codes.

    Chain

    • ⬆️ [Upgrade] Upgrade RocksDB.

    Auth

    • [Feature] Add the check of the version field in the transaction.

    Network

    • 🔨 [Refactor] Refactor network client.
    • ⬆️ [Upgrade] Upgrade network server.
    • 👍 [Feature] Support for TLS communication encryption based on self-signed certificate.
    • 📜 [Fix] Parsing will stop immediately when the body of messages between nodes is too large.

    RPC

    • 📇 [Fix] Fix the problem that the website returned by the [getMetaData] interface is incorrect.
    • [Fix] The error information returned by the [sendRawTransaction] interface may be inconsistent when there are duplicate transactions.
    • [Feature] Add the pending type in the [BlockTag] type.
    • 🔧 [Fix] The exit code caused by the configuration file exception is corrected to 2.

    System Contract

    • [Fix] Fix user authentication problem inside the group when the permission management is enabled.

    ✅ Test

    • ⚡️ [Optimization] Optimize the efficiency of system contract testing.

    Doc

    • 📄 [Docs] Add system contract interface documents.
    • 📄 [Docs] Add more English document.
  • v0.19.1 Changes

    January 31, 2019

    🛠 Fix the bug of version 0.19 that ordinary nodes can't sync blocks from the consensus nodes with a special situation.

    Check the details at [#201].

  • v0.19.0 Changes

    September 30, 2018

    CITA-Framework

    • 🔨 [refactoring] Improve the user experience of CITA scripts

    Executor

    • 👍 [feature] Support superadmin to [set quota price]
    • 👍 [feature] Support that the block reward can be chosen to [return to the certain address]
    • [optimization] SysConfig reload based on whether there is a parameter change
    • 🔧 [fix] Fix loading problem of SystemConfig configuration
    • [fix] Fix the situation that the transfer cannot be successful if the charge mode is enabled
    • [fix] Fix the situation that account balance may overflow when transferring in charge mode

    Chain

    • 🔧 [feature] Add the cache_size entry to the configuration file

    Auth

    • [feature] Modify the judgment logic of the transaction under emergency braking situation

    RPC

    • 📇 [feature] [GetMetaData] support query economic model and protocol version number
    • [optimization] Modify some ErrorMessage

    Contract

    • [feature] Isolate some permissions (send_tx, create_contract) to make them can be set separately in configuration
    • ⚠ [fix] Eliminate compilation warnings for system contracts
    • ⚠ [fix] Eliminate errors and warnings detected by [Solium] on system contracts
    • [feature] Add [Emergency braking system contract]
    • [feature] Add version control system contract
    • [feature] Add [quota price manager system contract]

    ✅ Test

    • [ci] Increase the specification check of system contracts
    • [ci] Add clippy for code review
    • ✅ [optimization] Clean up smart contract unit tests that are no longer maintained
    • ✅ [ci] Fix the problem of sporadic stuck in JSON Mock test

    Doc

    • [doc] Replace txtool with [cita-cli] in document
    • [doc] Modify ‘amend’ operation related documents