Taraxa Tech UPD — Week 43.
Following last week’s successful public testnet launch, we keep delivering updates and cleaning up Aphrogenes’s code.
After launching Aphrogenes in public mode last week, we focus our effort on increasing the network’s throughput and minimizing the latency. On to the updates!
Consensus and PBFT.
Taraxa enables rapid finalization of block DAG to maximize the network’s throughput. Most of the week, we were working on fixing bugs in DAG-PBFT node syncing:
- Implemented the shard mutex for PBFT round, next votes bundle, and PBFT chain head;
- Implemented the PBFT next votes bundle syncing network propagation;
- Fixed the bug parsing RPC raw data of next votes bundle;
- Implemented the unit test for PBFT next votes bundle network propagation;
- Added the checking synced cert votes at the same PBFT round;
- Debugged the testnet PBFT stuck issue.
Block DAG.
Taraxa enables rapid finalization of the block DAG to maximize the network’s throughput. Done this week:
- Implemented additional features to network performance logging to measure the network packet processing time individually and aggregated;
- Found and fixed the issue where Aleth p2p library logging was creating huge delays in sending large packets over the network even with the logs turned off;
- Removed the dag blocks multithread adding to DAG, as it provided no performance improvement and caused some race conditions;
- Changed network_id to use chain id instead;
- Improved the addition to DAG to be a single DB commit.
EVM transaction layer.
We keep working on a more asynchronous pipelined design to make transaction execution and PBFT consensus asynchronous. Done this week:
- Fixed incorrect gas used in Ethereum receipts;
- Added some debug utils to investigate the invalid transaction signature exception on the testnet;
- Added more tests for the stake delegation contract;
- Removed RocksDB file limit override;
- Conducted the transaction engine performance testing.