We have continued to make steady progress on the plans we outlined a couple of weeks ago; we are very much on course to deliver the RUST-5 objectives and for community testing to begin. Thanks as always to all the Dev team members for taking the time to share their progress with the whole SAFE community.
##Crust - uTP / API : Vinicius / Andrew / Spandan / David
The team has been working on refactoring Crust and cleaning up code a lot. Every evening we have aimed, and largely succeeded, in ensuring all tests pass (@vinipsmaker is finalising a Windows bug in the bootstrap method). When this is completed we will be able to focus our efforts on ensuring Crust is as reliable as it possibly can be; a solid foundation of connectivity among peers. We’ve also been working on simplifying Crust’s API to make it more user-friendly and ease integration with Routing.
As of this morning the tests are passing again with the new API in place. Some further work will be required this week to finalise this library in a state we are happy with for launch.
Like Routing, we anticipate this will consist of a solid repeatable set of tests that show at last a multiprotocol router (NAT) traversing networking library for all peer-to-peer projects. Initially Tcp direct connections, udp hole punching and uTP transport are included. This will allow Tcp hole punching to follow as well as encrypted Crust layer communications from the first message (bootstrap). An important step!
##Routing - Vault Integration : Andreas / Brian / David
We finished the documentation overhaul, so that Routing is now much easier to understand - without having to read the code.
A few minor changes have been implemented to make the network more stable on startup:
- The number of simultaneously joining nodes is now limited
- New nodes that failed to connect will retry after a short delay
Next we plan to address a few issues that turned up during small test networks, which prevent a node’s routing table from being optimally filled and the group authorities from having the desired size. @AndreasF has hit the ground running here and is already immersed in XOR routing table implementations and tests. Great to build the team strength, especially in this library.
##Vaults : Adam / Fraser / Qi
The Vault refactor is progressing slowly but surely. With @Viv off, @anon86652309’s time has been largely taken up filling that gap. However, we’ve still managed to progress Vaults somewhat with the bulk of the cleanup work having been completed and focus moving on to implementing the various message flows.
The flow for Putting data is complete (bar testing) and work has started on the Get flow. After that, Post and Delete remain. However, these should be simpler than either of the other two previous flows and should take significantly less time.
Once these are complete, we’ll move to reinstating unit tests for the much-reduced codebase and will be in a position to start running vault testnets again.
##Client - Launcher : Krishna / Spandan / Shankar
The RFC detailing the new approach for the launcher was discussed. Implementation is expected to start from the middle of this week. The community involvement was excellent; many thanks for all the suggestions and discussions.
The proxy server will be bundled along with the Launcher server. The idea is to provide the basic set of utilities bundled together in a single application. Most of the inputs received were in favour of bundling a proxy along with the Launcher and to provide an option for starting and stopping the proxy at the will of the user, thus we are opting to go with the most popular approach for now.
The existing NFS, DNS IPC APIs are to be ported to RESTFul APIs in the first version.
This will allow us to quickly develop a Drive
application which shall interface with Launcher; this will initially be instead of a mounted drive. Going with a standalone application for now will allow us to quickly develop and use the Drive
application to test the network with some real data. Below is a mockup for the Drive
application that @Scott has been working on.
We are aware that the APIs are a little limited for now. While the network is being tested the APIs will be added to and improved in parallel to this testing.
##Development roadmap : Shankar
Work on implementing a proof of concept for the new roadmap mockup is currently ongoing. A configurable module that will be able to render the designed user interface on desktops is currently being developed. This work is expected to be complete in the next couple of days, after which @Shankar will be working on the Launcher and Drive
application implementation.
##UI Design : Scott
In addition to the Drive application mocks, @Scott has also continued to work on:
- A new design for the revised Launcher
- A new design for a simplified implementation of messaging
- Various mockups of example applications
To prove that @Scott has in fact been very busy we thought you would also like to see another mockup, this time of the new Launcher applet:
So a really good start to the New Year and exciting to see progress on all fronts. During the course of this week we anticipate starting to bring the individual libraries together and starting to run Routing against the new Crust API, while also integrating the changes made to Vaults, and of course getting the network back up and running on droplets. We will then turn our attention to the integration of Rust uTP.
Thanks again for the ongoing support, here is a link to the transcript.