Taraxa Tech Update: Week 8

February 25, 2020 Blog No Comments »

Taraxa Tech Update: Week 8

More fixes and adds-on to Taraxa’s Testnet, as we gear up for the Mainnet launch!

We hit a number of new milestones on consensus and node syncing having completed another sprint towards the improved stability and performance of Aphrogenes test release.

PBFT Consensus and Execution Schedule

We kept working on Taraxa’s block proposal scheme to make sure that synchronization queues and database commits are atomic for PBFT. Done this week:

  • Improved the block class design including serialization for storing blocks, sending them over through the network and making class-immutable
  • Fixed the PBFT sync error of ‘incorrect block size received’
  • Fixed the duplicate transaction bug
  • Implemented sending status messages between nodes to keep correct track of chain sizes between nodes and to serve as a heartbeat mechanism to disconnect non-responsive nodes
  • Reviewed the code for PBFT serialize and signature improvements, duplicate transactions
  • Re-organized PBFT manager pushing PBFT block, and decoupled PBFT chain with the database update
  • Improved DB storage in bytes
  • Implemented more unit tests for DB, and fixed unit tests for new PBFT manager/chain structure
  • Implemented the atomic database when writing a batch for PBFT block/chain head, PBFT block index, DAG blocks order/height, certify votes, DAG/PBFT block period tables

Throughput optimization

We make use of the DAG topology to maximize the network’s throughput by enabling the rapid finalization of the block DAG. Among things done on this front:

  • Improvements in PBFT block class design including serialization for storing blocks and sending them over the network and making class immutable:
    – Fixed PBFT sync error of incorrect block size received
    – Fixed the duplicate transaction bug
    – Implemented sending status messages between nodes to keep correct track of chain sizes between nodes and to serve as a heartbeat mechanism to disconnect non-responsive nodes

Transaction Executor and Concurrent EVM

We are now rewriting the Go-Ethereum trie code to use flat k/v storage for transaction operations still using the Patricia Trie aspect for deriving the standard Ethereum state root. We plan for the Patricia Trie to be maintained consistent asynchronously with respect to transaction execution without storing the value nodes — instead, they will be resolved from the flat k/v on the logical level.

If you’d like to contribute to the building of Taraxa, reach out on our Telegram and be sure to keep track of GitHub as we prepare for the Mainnet launch.


Stay tuned!

website: taraxa.io

blog: medium.com/taraxa-project

discord: discord.gg/WaXnwUb

reddit: www.reddit.com/r/Taraxa_Project/

telegram: t.me/taraxa_project

twitter: twitter.com/taraxa_project

Comments are closed.