cita v0.21.0 Release Notes

Release Date: 2019-02-19 // about 5 years ago
  • ⬆️ 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]