Taraxa Weekly Tech Update: 2020 Week 5
Taraxa is on a mission to build a protocol for immutable audit logs, and we are now en route to the launch of our Mainnet. To that end, we keep polishing up Aphrogenes release in terms of the network’s overall stability for Taraxa’s future applications to run smoothly and error-free.
Consensus and PBFT
Taraxa combines the benefits of a fast-advancing DAG topology with the instant and fair finality of a VRF-driven PBFT process to give smart contracts with state-dependent logic a definitive guarantee of immutability. Efficient block proposals enable Taraxa’s PoS system to produce fair, efficient and non-coordinated block proposals, which is essential for the network’s security. Proposing valid consensus blocks on the PBFT chain is the foundation of efficient on-chain consensus, and we keep working to ensure that synchronization queues and database commits are atomic for PBFT.
- Added some basic adaptive functionalities to estimating delay necessary for PBFT steps, impacted by the size of the concurrent schedule (total tx within a Period) and network diameter.
2. Explored more performance optimizations by parallelizing segments of the PBFT process.
3. Reviewed the code on PBFT next voting fix and atomic period finalization
4. Debugged, investigated and fixed PBFT next voting stuck issue by resetting node own starting value
4. Stored certify votes into the database before pushing the PBFT block into the chain to avoid PBFT syncing of blocks without certifying votes
Optimizing the network’s throughput
We make use of the DAG topology to enhance the network’s overall throughput by enabling the rapid finalization of the block DAG:
- Implemented some longer running tests for PBFT/DAG syncing and found no issues in running them
- Fixed flaky tests that fail with peer count error
- Looked into getPbftBlockInChain assert test failure
- Implemented a limit to the number of blocks packed in DAG block (still being tested).
Seemless developer onboarding
Another major feature of Aphrogenes is the preliminary integration of EVM to deliver maximum backward-compatibility by adopting an EVM-compatible toolchain. We do this to ensure that developers do not need to learn any new programming languages to work on Taraxa in the future. This week we’ve successfully accomplished atomic period finalization that has been work-in-progress for the past couple of weeks.