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