Skip to content

Latest commit

 

History

History
48 lines (42 loc) · 2.05 KB

CHANGELOG.md

File metadata and controls

48 lines (42 loc) · 2.05 KB

CPChain Changelog

June 2019 Version 0.4.4

This release is not compatible with Mainnet Alpha (Version 0.1.0)

Notable Changes

  • LBFT 2.0 Consensus
    • Bipartite Committee:
      • Proposers, exclusively responsible for generating new block.
      • Validators, exclusively responsible for validating newly proposed block.
    • Introduce Impeachment to handle faulty or non-responding proposer.
    • Design a finite state machine with five states to implement LBFT 2.0 process
    • Countermeasures for several illicit actions:
      • Double spend attack.
      • Unknown ancestor block.
      • Past and future block.
      • Unrecognized block.
    • Recovery mechanism for lagging validators catching up with the rest.
  • Automation Testing Framework
    • Developed based on Jepsen.
    • There is a master assumes responsibilities of
      • starting a local chain;
      • fetching test cases;
      • creating and communicating with several processes
    • The following processes created by the master work independently on the chain.
      • B1 and B2, ran as bootnodes.
      • P1 to P12, ran as proposers.
      • CA, short for contract admin, are used for deploying smart contracts.
      • Bank, used exclusively for providing tokens.
      • IPFA, optional.
    • Each process has its own broker to communicate with the master.
      • The master invokes RPC APIs to send commands to brokers.
    • Each test case runs in several phases.
      • Each process can pause at the end of each phase.
      • After the last phase terminates, the process returns the test log to master.
    • The master is about to run the next test case after it collects logs from all processes.
  • Rewards
  • APIs
    • Adjusted and optimized RPC and Python APIs from CPC fusion