Pretty much every week is a new, mad, hectic adventure in MaidSafe, but some are that little bit more intense than others and they seem to happen just when it is my turn for the Dev Update. So this might be a long one …
In our continued drive to ensure it is crystal clear that the SAFE Network belongs to everyone, not a project belonging to and controlled by MaidSafe the organisation, we made a simple (not for me I did the tedious part) change to the library names. We renamed all the libraries that had a prefix maidsafe_
to safe_
so we now have safe_client
, safe_dns
, safe_nfs
and safe_vault
. This decoupling from MaidSafe may not be that significant to this excellent and quickly growing community who already “own”, contribute and understand that the SAFE Network belongs to no-one, however it should help communicate this as the network grows.
As avid followers of the current RUST-3 sprint dashboard may have noticed, last week was not a good week progress-wise. In fact as you can see from the burndown chart we pretty much flat-lined; this was due primarily to issues we hit in routing
, which in turn blocked progress in other dependent libraries. The decision was taken to extend the current sprint by one week to ensure we deliver a robust and stable routing
library at the end of this sprint with reduced code complexity.
So routing
is now undergoing a slimming down exercise; we moved the responsibility for securing messages down from safe_vault
to routing
several months ago and in this sprint we defined the fundamental data types also at routing
. It is now time to push some responsibility up to the higher layers and have routing
become a library true to the word. To do this we are exposing the interface to routing
through an event channel (similar to the way crust
exposes events to routing
). As a result safe_vault
and safe_client
will take on a bigger responsibility in handling the content messages and how these messages flow through the network based on that content.
While this is happening and in order to keep momentum moving forward we are temporarily disconnecting safe_vault
and safe_client
from routing
and have created a mock routing layer for these libraries to allow work to continue. The mock APIs will match the real interfaces so when the routing work is complete it will be an easy switch over from the mock network to the real live network; the idea being that no-one is stalled and we still deliver our sprint objectives, albeit one week later than expected.
The extra week allows time to complete and polish the safe_vault
installer and the examples bundle. Good progress has been made on these and they are on track to be delivered as desktop installers on our core supported operating systems (Windows 7 onward 32 & 64 bit, OS X and Linux potentially using MUSL) at the end of this sprint. Work is also ongoing to integrate MUSL with the benefit being that “An application can really be deployed as a single binary file and run on any machine with the appropriate instruction set architecture and Linux kernel”. MUSL is a bit of an installer extra which may or may not make it into the final sprint installer deliverable. We will now focus on ARM / Linux as a priority for both CI and deliverable installers for ARM (hopefully hard and soft floating point variants).
From a lower level point of view, work continues in crust
adding UDP hole-punching and uTP integration features; these are also making good progress with a couple of implementation options being explored to integrate these into the crust
library. A lot of developer effort is also going into self_encryption
and memory_map
to remove the restricted file size limitations. We anticipate that all of this work will give us a functional and stable network by the end of the sprint.
With the additional time it is also planned to throw a desktop app on top of the safe_dns
crate, which will also tie into the browser plugin. The client guys are working on a desktop app that will allow users to upload content to the network and consume it from a browser. Yes a UI! This may be limited just to a subset of browsers to begin with perhaps even only to Firefox in this sprint, but even still this will be a pretty nice deliverable.
@ioptio also did a great job presenting the story of our transition to Rust to the Rustcamp at the weekend and by all accounts it was very well received. Developers were especially motivated by the ease with which front-end developers transitioned to core development work and this picture did not seem isolated just to us, but appeared to be a general theme across the entire event. Video of @ioptio and all the other talks will appear online soon. Paige left for Europe last night and will be attending a few conferences including BattleMesh 8 and Chaos Communication Camp 15 .
The observant amongst you (pretty much all of you ) will also notice that we are trying to grow the development team with some pretty senior hires that will introduce even more depth to our technical team. We are looking for a Senior Network Engineer and a System Architect . If you know of anyone fitting the profile please let them know about these opportunities.
On top of all this a lot of CI infrastructure work has taken place, for example transitioning OS X CI to Travis CI - thanks to the super supportive guys over at Travis - and the MaidSafe Foundation folks have also been building and preparing for a mini fab lab event … did I already mention the words ‘mad’ and ‘hectic’
As per tradition here is the link to the meeting transcript: https://docs.google.com/document/d/1t613QCcxniNV6TuQRkEW7DrxjwBCi1f5p0Xjw7At7yk/edit?usp=sharing - thanks @justine_mclevy