Skip to content

YGGDRASH Development Team Sprint #10

Compare
Choose a tag to compare
@popldo popldo released this 01 Feb 03:06
· 2031 commits to develop since this release
d5da30e

Overview

  • Implemented the PBFT consensus algorithm
  • Implemented Multi-Contract
  • Improved node discovery

Consensus

  • Designed and implemented the validator module for validators consensus
    • Designed the module architecture for supporting many consensus algorithms.(PoA, DPoA, DPoS, etc.)
    • Implemented functions for checking status and proposing, agreeing, confirming, storing blocks
  • Implemented the PBFT consensus algorithm
    • Implemented functions for creating & exchanging consensus messages(PrePrepare, Prepare, Commit, ViewChange)
    • Implemented protocols and algorithms for consensus
  • Designed and implemented unit modules for delegating(voting) validator nodes
    • Designed transaction formats and state stores for voting
    • Implemented functions for registering, updating, agreeing, reading states

Contract

  • Changed the contract interface
  • Implemented Multi-Contract
    • Change brach sepcifications
  • Added a provisional execution state for a contract
    • Added block, transaction temporary execution
    • Added block integrity verification
    • Save changes to the contract results
  • Added a contract manager
    • Add and delete local node contracts manage storage
    • Added contract validation
    • Added a contract ABI(JSON) call
  • Changed the method of calling the contract query method

Node/Network

  • Stabilized and verified the P2P network
  • Added a network filter to block malicious nodes
  • Changed peer-related terms
  • Improved node discovery
    • Removed the dependency of node discovery and peerTable on nodes
      • Changed peerTable, dht, node, nodeStatus structure and dependency
    • Implemented PeerTask for peer and channel management
      • 4 scheduler implementations
      • refresh (Kademlia lookup)
      • revalidate (verify the network status of peer from random peerbucket and replace or delete)
      • copyNode (only the peers that are kept longer than the minimum time is stored in the database)
      • healthCheck (channel management)
  • Improved logging
    • A node monitoring system has been built
    • ElasticSearch + Fluentd + Kibana