Taraxa Weekly Tech Update.
Good news: as we move forward, we’re increasingly seeing fewer core consensus issues.
The testnet is down at the moment, and we’re working on the network reset. Before crashing this weekend, it has been running stable for over two weeks, having generated lots of useful data and letting us observe and troubleshoot problems and bugs (especially the one with node synchronization).
For now, we’ve wiped and restarted the testnet, to participate please follow these instructions: https://docs.taraxa.io/node-setup/upgrade-a-node/data-reset.
Most of the issues we’re seeing now have to do with the network performance and node synchronization:
1. A bug introduced in the last patch that caused forking in the consensus, was a very simple fix: we’ll keep an eye on it to make sure it doesn’t occur again. This fix is in the current image as of this writing.
2. A node synchronization performance issue in which we needed to maintain a block-tx relationship in the DB to accelerate DB access (by over 20x) during synchronization, and a variety of other common-sense rules to keep nodes from being overwhelmed during syncing (e.g., limit the # of syncing nodes per node, throttling the syncing bandwidth) as we observed the consensus nodes were being overwhelmed by sync requests. These fixes are not yet implemented but diagnosed and being worked on:
- PR1031: synced next votes bundle verification, fixed merge conflicts and comments on the review board.
- PR985: rewrote verified votes table, fixed merge conflicts and comments on the review board.
- Moved back saving verified votes structure in memory due to the frequent vote processing.
Marinate’s open API:
- Reshaped the Bot Session Persistence to database session with the session file and a volume.
- Research on Google Voice API > two choices: 1/ creating a selenium webdriver to make authentication with PhantomJS, 2/ check if we can combine Twilio on googlevoice.
- Continued the research on ways to resolve automatically the initial code challenge for the project setup.
- Started checking how to mount to Python raw project into a framework, such as FastAPIO with Ceelery for task scheduling.