Couple weeks ago, the NeuroChain team released the Test-Net to simulate the consensus performances, the network scalability and to identify technical bugs. Since then, a Bug Bounty campaign was organized to help the team to detect bugs by testing the network. Community members set their own bot and detected bugs, which helped a lot. Thank you ! Here is a more complete status on the progress made.
The Test-Net was an important milestone in our road map. Not only to show the community the progress made but also as an essential part of the Main-Net development.
The release of the Test-Net helped the team to:
- Observe the bot behavior on a full-size network.
- Identify installation issues.
- Find bugs in the code (thanks to everyone participating in the bug hunting).
Many tests have been done during the past weeks following the release ( Oct 31st) to observe the bots behaviors in various situations :
- Brutal shut down of a part of the network.
- Ledger wiped on bots.
- Fork creation.
- Introduction of bots with different versions.
- Introduction of bots with a different block 0 (genesis block).
Results obtained were very useful to obtain an complete status on the bot behaviors.
The Test-Net version was not maintained nor upgraded recently since we are now focused on the Main net delivery. Some of the Test-Net bots were crashing for different reasons (full disk, AWS-VM crashing, …). New developments were redeployed on the Main-Net version and the issues were not reproduced.
Workshops on the the stability of the network and core components are ongoing and will last until mid January. All details are reported in the Gitlabcore repository.
Problem: docker portability issues.
Adopted solution: More flavor of binaries distributed (for each platform) and less architecture specific optimization for more portability.
For performances and code robustness, teh ledger architecture was upgraded.
Forks are the main issue for non-Proof of Work protocols.
We massively improved the forks management adapting the PII (Proof of Integrity and Involvement) formula and the way of handling forks in the ledger. New way of labeling branches has been implemented to avoid attacks with fork creation.
The wallet architecture was reviewed to improve security. Our new architecture is inspired by existing proven architectures, it handles transactions signatures directly in the application front.
Consensus and PII
The PII formula has been tailored and improved thanks to more simulations, and Test-Net results.
The Test-Net assessments have been particularly useful to create simulations as close as possible to real life network situations : latency, connections dropping, bots simulations …
Corner cases have been fixed (e.g. bots with the same public keys, bots with same connections, …). We also improved the message format for better efficiency.
Our network previously had a “centralized” part which was the “boot bots” (think of them as a directory, like trackers for torrent). This point has also been addressed by keeping a list of bots discovered during previous exchanges.
The Development team is confident in the progress made until now. The project plan is on track for early 2019. Additional tests added on security may postpone the final date by a couple of weeks in the worst cases depending on the final results. The stability of the system will provide the adequate environment for the first business applications to be deployed on a brand new Blockchain next generation code.