SAFE Network Dev Update - May 23, 2019


Here are some of the main things to highlight this week:


This week, @nbaksalyar was speaking at the first SOLID meetup in London (check out the video here) whilst this evening sees the next edition of the SAFE Network: Brighton meetup. Then 30th May sees a double-whammy: @Sotros25 running the SAFE Network: Chicago meetup whilst @dirvine is speaking at the DigitalScotland 2019 conference in Glasgow.

It’s been a busy week for @nbaksalyar, travelling between Ayr, London and Brighton, but also to Berlin, where he was representing the team at the Data Terra Nemo Conference (you’ll find his tweetstorm summarising the conference here).

This is also a quick reminder about the various RFCs that are out with the community for comment at the moment: RFC #0054 (Published & Unpublished DataType: forum discussion), RFC #0055 (Unpublished ImmutableData: forum discussion), RFC #0056 (Secure Message Delivery: forum discussion), RFC #0057 (Safecoin Revised: forum discussion) and RFC #0058 (Reliable Message Delivery: forum discussion). As ever, if you have any thoughts or questions, please do get involved and help to drive each of these topics forwards.


The browser has seen some small updates merged into our dev branch: fixing the CI system after a Travis update; enabling F5 for reload on Windows; setting up the new end-to-end test system to be able to test the authenticator web page (this should hopefully open the door to enabling SAFE sites to have some automated E2E testing down the line); a slew of Dependabot updates to our dependencies and a couple wee fixes too.

We started also playing around with some experimental code for the SAFE CLI ideas we have, and as we mentioned before, we are documenting all these ideas more formally in a design document that we are very proudly sharing today. We are trying to follow the same approach or design as the safe_auth CLI PoC, in fact we are thinking of allowing the SAFE CLI to interact with the safe_auth CLI for getting authorisation credentials. We have just created a new post that explains the motivation around having such a tool for the SAFE Network. It’s a long document because it is a SAFE CLI High Level Design Document, so you will be able to see how many use cases are planned to be covered by this tool. Please join us in the review and discussions around it.

SAFE Client Libs

The new data types that were introduced in the RFCs last week are being prototyped as a Proof of Concept in mock. This will help us quickly get them ready for the preview network once the RFC discussions are complete. The datatypes themselves are being pushed into their own separate crate. Going forward, Routing will be agnostic of the datatypes, and will only serve as a medium of transfer for serialized data. It now focuses on getting these payloads delivered from the source to its destination hassle-free. Clients and Vaults will share the dependency of the data types crate for the data type structures and the RPCs they exchange with each other.

This implementation of the new data types will initially be only for mock as it would be easier to modify and improve them iteratively with feedback from the community. This is being done to get a feel of the new data types and their use in application development. With regard to the RFCs, we’d like to thank everybody who has engaged in the discussions with their valuable suggestions and views. They are still open for receiving your comments. Please do check them out if you haven’t yet and join the discussions about the published and unpublished data types and the unpublished immutable data type.

The implementation of RDF in SAFE Client Libs heavily relies on the datatypes in which they will be stored in the network, hence full priority has been given to the new data types and the RDF implementation is temporarily put on hold. We have already integrated the storing of RDF graphs in mutable data with the serialisation capabilities of the Turtle and JSON-LD formats. Integration of SPARQL querying is also taking good shape and will quickly be ready for action once the data types are implemented.


This week, the Routing team’s march towards Fleming continues on multiple fronts.

Following the publication of RFC 56: Secure Message Delivery, last week; RFC 57: Safecoin revised was soon released too. There has been a healthy level of discussions, especially on RFC 57. Thanks to all who contributed to these discussions.

Internally, we prepared the RFC on Reliable Message Delivery which complements RFC 56 and should complete the big picture for communication of messages across the Network. This RFC was published today. Here is the associated discussion thread. We are looking forward to the generous contributions of this community to this discussion :smile:

We merged a couple of PRs to PARSEC. That crate is mostly in maintenance mode as we are happy with the features currently implemented; but we patched a bug that we caught when soak testing the integration of Routing and PARSEC. Note that the patch consisted in going from the concrete coin to an imperfect common coin. At some point (probably post-Fleming), we will replace it with a proper common coin; as described in the latest version of our whitepaper which is still under academic review. While we were at it, we raised another PR to refactor and add unit tests for the area of the code that contained that bug as we considered that this bug could have been caught earlier and fixed more rapidly if these tests had been there in the first place. This led us to close a number of Jira tasks that had been postponed as we decided to move them up the priority following this experience.

Soak testing of Routing plus PARSEC has now started again and we don’t foresee any further changes to PARSEC unless we discover more bugs.

In Routing, we identified and fixed a bug in mock-parsec and continued our incremental progress towards Node Ageing with some refactoring PRs and a couple of PRs bringing us closer to our functional destination. We now have solid flow using PARSEC to decide whether a node succeeded or failed resource proof, and only add them as a member when reaching consensus.

We were also thrilled to receive a few contributions from @d1vyank on GitHub. We merged the first of three PRs he raised and are in the process of reviewing both others.

We also continued improving our routing_model crate which contains documentation for the endpoint we are targetting in Routing with Node Ageing.

On the community front, last weekend, @pierrechevalier83 travelled to Odessa, Ukraine for the IT Non Stop 2019 conference where he gave a talk cheekily named: “Blockchain was just the beginning”, where he contrasted some of the properties of blockchain with those of PARSEC. This talk was recorded and we will post a link to the video once that is released. It was interesting to spread the word about the SAFE Network to an audience that mostly wasn’t familiar with it. Many in the crowd seemed to really get the concept. They asked pertinent questions and engaged in interesting conversations :smile:

Last but not least, in-line with the company-wide effort of making project management front and centre as a tool to communicate internally and externally, we started drafting a detailed plan for the Routing team between now and Fleming.

Mainly, we laid-out the high-level tasks for each of the items outlined in the Backend GitHub board and broke down one of the largest ones: Node Ageing into a number of further named tasks.

Next week, we will do the same for Secure Message Delivery and Reliable Message Delivery. After this, we will list dependencies of these subtasks and this should enable us to produce a fairly detailed project plan that I am sure some here will be eager to browse.

Expect to hear more from us in the coming weeks.


First ! I am First :tongue:

Now that is a robust weekly update ! The machine is full steam ahead again.
I am eager to read more about the CLI project, which I am sure will be very handy on headless machines.


big 10 BTC market buy yesterday. Maybe someone from that meetup had that moment where it’s like ohhh ya this gonna be the future!!!


I would also buy yesterday for 10 BTC if I have some :wink:

Great update! Keep going!


Great update!

Loving seeing all these Maidsafe folks giving presentations on the SAFE Network!


It’s absolutely undeniable. Things are happening, and fast. Kudos for all the work on the data types! This is exciting stuff and we’re eager to dig in in the near term :slightly_smiling_face:


Thanks for sharing it.


What a week! What an update!

I’m loving all these new RFCs and it giving me a real appreciation of the design of these elements. There is a lot of hard work right there and it and fantastic to see the community getting deep into it too!

With the re-listing of bittrex to top it off too, my head is swimming with excitement! Superb work team and thanks for the phenomenal progress!


David mentioned there will be a basic network in 2 months. I think that may be driving the confidence.


Another great update—thank you team! It seems like things are really hitting stride right now.


I think I missed this … would you mind providing the source/reference? TY :slight_smile:


I love the new planning system … I think it makes the project appear much more attainable for those who are new to our ecosystem.



As always @maidsafe you rock!

To all the members of this great community, you’re all visionary folks! The privacy of millions of users will rely on the hard work/contribution that you all are currently giving. If the SafeNetwork will be a success, all these discussions will be part of history


Enjoy seeing the aggressive approach to get some high level RFCs out there and get community feedback and iterate on these. Turning these things into full fledged deliverables and getting the pieces of the puzzle to work together will be fun to watch. Also nice to see the coin price seeing some love today after sitting on some lows for awhile. Excited to see what the next 2 months will bring!


Thanks for the great update!

Could anyone point me into the right direction where to find these subtasks? Are they published yet?

1 Like

Not published yet: we will want to first establish the dependencies between them so we can publish them in a “project plan” format which will be much easier to follow than a raw list of tasks :smile:


And I thought I’d just be blind and missing something :grin:


Thanks for the great update Maidsafe devs,

Wow really got a lot of literature to read now :nerd_face: