Back into the Tuesday Dev Update cycle . As you will see from the section below about our findings from Thursday’s testing roll-out and the individual library sections, most of the team have focused on implementing improvements into the next network iteration. The guys are currently testing these and once happy we shall roll out new binaries ready for the next phase of community testing.
@adam has been busy working on automating the deployment process by implementing
rust_everywhere into our CI system to automatically create Github releases on every version bump. He is also implementing auto Docker image creation, so deploying an up-to-date Docker container should soon be a very simple task.
So a lot has been happening since last Thursday, on with the update…
##Findings from the last testnet iteration
Firstly, thanks to those who participated in last week’s community testing phase, your participation is extremely helpful and is very much appreciated. As covered in forum posts from @dirvine and in yesterday’s Pre-Dev-Update Update post, during the testnet we found improvements in:
- Churn handling (we were way too aggressive there);
- Network segmentation prevention (this one was really important for us);
- Huge improvements in mass network startup;
- Improved error / warning messages for early testers.
For more detail on how these findings have shaped the Dev team’s focus and efforts since Friday it is well worth checking out yesterday’s forum post (link above). I will not duplicate everything here, but as David pointed out it was indeed enlightening and helps move us forward towards our ultimate goal - launching the network.
We have been testing the next Vault release (which incorporates these improvements) today internally and the Devs are keen to ensure that the community experiences increased stability in this test roll-out.
##Crust - uTP / API : Vinicius / Andrew
Heartbeat has been implemented in Crust and code is becoming less vibrant and now more stable. It should be no surprise if we start to focus full-time on the refactor soon. The refactor shall focus on efficiency and using asynchronous patterns that are more scalable than what we currently have. The improvement work that the guys are currently undertaking in Crust is happening in tandem with the existing working version.
##Routing : Adam / Andreas / Brian / David / Viv
Routing now better distributes and sometimes throttles accepting new nodes, to give them more time to integrate into the network’s structure. We also removed some obstacles for re-connecting nodes, so that even after extreme churn, the network is better able to repair itself.
We didn’t increase the limit of three tunnel client pairs: each node will at most replace failing direct connections for three pairs of other nodes. If there are a lot of Vaults behind routers where NAT hole punching fails, this will most likely break the network.
To reduce overhead, Routing now prunes connections that are no longer needed and puts more routing table information in the events it sends to Vaults.
##Vaults : Andreas / Brian / Fraser / Qi / David
Event handling is a lot more efficient now due to a small change to the Routing API, message traffic between the two event handling threads is now greatly reduced. This is only a temporary workaround, as in the future we plan to have only one event handling thread.
Data relocation traffic has been somewhat reduced by de-duplicating messages and often sending only a hash instead of the complete data. The main part, however - throttling relocation and giving the nodes as much time as they need to transfer the data - is not yet implemented, which is why we still have low limits for the Vault size.
##Client - Launcher : Krishna / Spandan / Shankar
Last week the safe_core was updated to work with the latest Routing version and released for the test.
The log visualiser is being tested and the first version of the log visualiser server will be used by the internal Dev team. The first version is a simple tool, which will allow the Devs to filter logs and export the logs as a .csv file. In time, more features will be added and shared with the community members for connecting and monitoring their Vaults.
This week we are hoping to get back to the RFC which is waiting to be raised for the Launcher standards. We are looking forward to discussing the RFCs in the open and getting them to an agreed state, which will allow us to begin to plan the tasks and start with the implementation.
##UI Design: Scott
Last week @scott scoped out and conceived a number of changes to the MaidSafe website with an aim to improve the UX and better match the company’s objectives. Work began last week on designing solutions to these issues and working with @shankar on their implementation.
@scott is also working on the design of a network status dashboard, where users can view data about the network and filter results by vault ID. Work has begun on exploring which data would be useful / interesting here and also on ways to represent it compellingly.
Thanks as always for your support, here is a link to the weekly transcript.