Taraxa Tech Update — Week 42: A major milestone for Taraxa testnet.
This week marks the longest trial runtime of Aphrogenes. We’re finished with contract work and now polishing up the JSON-API delegation and debugging the remainder of the issues to ship a stable network before the end of the month.
Consensus and PBFT:
Taraxa enables the 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:
- Debugged and investigated on PBFT round stuck issue after the DAG refactoring- Debugged the PBFT syncing issue- Code review on DPOS integration and DAG refactoring- Moved the PBFT config from the top level of node config to the chain config section- Fixed the issue with incorrect sortition table entry that caused the tests failure and nodes getting stuck.
- Moved the FullNode `boot_node` flag to the node config at path `<root>.network_is_boot_node`- Fixed node logging setup that was not always undone after the node destruction- Made the logging setup/un-setup more robust through encapsulation and immutability- Removed top.cpp, moved its function inside the FullNode. Respectively, removed `destroy_db` and `rebuild_network` with preference to remove those files outside the node code whenever needed- Made node config `ws_port` and `rpc_port` optional: if a port is not set, the respective server won't start - Refactored FullNode and DBStorage- Moved all test utils in one file, refactored/improved some, in particular the wait function, node config generators and node launching utilities- Fixed the tests accordingly and, in many instances, lifted the timeouts.
EVM Transaction Layer.
We keep working on a more asynchronous pipelined design to make transaction execution and PBFT consensus asynchronous. Done this week:
- Integrated Taraxa-EVM state API DPOS implementation to the PBFT manager- Adapted the code to Taraxa-EVM state API database now being encapsulated- Fixed null value of the account state root in Ethereum JSON-RPC.