BUGS!!! I should just end the update here, as bugs are challenging the team, both software bugs and health related bugs. For most of the already depleted team (bloody bugs) time is being spent identifying and squashing Routing bugs as well as improving error handling to make these less likely and easier to resolve in the future. This is not the kind of Dev Update we like to deliver, nor the type you probably want to read, however it is what has been happening in the last week. So we all have to open wide and take our medicine….
75% of the Engineers are working in Routing, identifying issues and creating a roadmap to get to a successful implementation. These issues are taking longer to resolve than previous bugs as between RUST-3 and RUST-5 some code has been uncovered that will not allow for a stable network to be implemented and this is currently being addressed. The work is happening in a branch called cleanup for those interested in closely following progress.
While debugging, the Devs have identified that RUST channels are being overused and making debugging issues particularly difficult, so we are removing / reducing our usage of RUST channels. Our focus is also centered around reducing accumulator (message and refresh) code; stripping down and simplifying things and enforcing the use of the Accumulator crate when possible. The routing table functionality is also being extracted from Routing and will now find a new home in a crate / library of its own with its own tests.
A lot of effort has gone / is going into improving error handling, so no future errors should fall under the radar and then be ignored. When all of this work is combined and completed it shall allow a functional TCP network to be implemented with the UDP integration to follow. Some medicine tastes horrible to take but ultimately it makes us better and stronger; the guys have been working flat out and the focus from the team this week has been to KICK OUT THE BUGS! As you will appreciate, Routing is one of the fundamental network layers so we have to be absolutely sure this is rock solid before we start the roll out.
One library that has taken the prescribed spoonfuls in the past couple of weeks is Crust and it is ready to be benchmarked, specifically throughput benchmarking / testing. With MIO being supported by RUST-UTP soon, we are also keen to compare and publish our findings. So more to follow here. Work on the Crust RFC is also now complete. The new website is making good progress as well, with all tasks now in JIRA, making following progress much easier, and an advanced draft will be reviewed by everyone in Troon next week.
In other news, Andrew will be in the Troon office from Monday (23rd) for a few weeks from Australia, to enjoy our pleasant Scottish winter, my advice: bring a warm coat. This will mean that from next week both Routing maintainers will be in the Troon office.
So, a frustrating week for us and for you, but on the plus side we have the brightest and most experienced team members giving this their sole focus. The issues we are experiencing are implementation issues and we are very confident that the underlying design is correct. @Viv and @dirvine are managing the work carefully to ensure that the team understand all the issues prior to putting the appropriate fixes in place and we will keep you updated with progress. We are close to providing the deliverables of RUST-5, but there is just a little more work to be done.