SAFE Network Dev Update - June 20, 2019


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

  • We started integrating the SAFE CLI PoC we shared last week (which was made using a tiny SCL-mock) with the actual SAFE Client Libs APIs for all the operations related to Wallet commands.
  • We got started on a new SAFE CLI milestone that involves taking the first steps towards supporting the same functionality that the Web Hosting Manager application has for uploading websites in the CLI.
  • We merged a large PR which made a massive dent into the task of integrating quic-p2p into Routing.
  • Most of the tasks related to Reliable Message Delivery have been completed.


Let’s start off with speaking about the fantastic evening the team spent at the Scottish Blockchain event last night. Not only was there mountains of pizza and plenty of beer flowing (supplied by us :thumbsup:), we handed out SAFE Network stickers while @dugcampbell gave a whirlwind introduction to the Network to a crowded lecture theatre at Napier University, headlined by Andreas M. Antonopoulos. It was genuinely lovely speaking to many of you and hopefully see you at the next get together.

It was a big week for crypto with much of the chatter last night about Libra. In fact, it was a core component of Andreas talk. You can find out what we think about it over on Twitter but as always, we’d love to hear your thoughts. And finally, we want to highlight the two new SAFE Ambassadors selected by the community - @Sotros25 and @oetyng - who as always, are incredibly dedicated and passionate about the cause and demonstrating this through a variety of meetups. If they’ve inspired you, why not set up your own meetup?


Active project plans:

As most of you may remember, last week we shared for the very first time a SAFE CLI PoC which supports commands for authorisation of the CLI app against the auth_cli and all basic operations for test safecoins and wallets in general. This first step was made using a tiny SCL-mock (mocking up the safe_client_libs API) implemented in the CLI app itself which allows us to move forward with CLI development in parallel to the SCL development. As can be seen in the Wallet command project plan, we were able to progress with integrating this functionality with SCL APIs for Sequenced MutableData and we still need to finalise the same type of integration for the Key's commands.

This week, we made a small refactor to the CLI files structure which was needed before we grow our CLI API with additional functions. This was the first step completed as part of our new milestone which is to implement the first set of commands that would allow users to upload files (with the files put and files sync commands) and folders on the network and be able to fetch them (cat command) using their XOR-URLs. You can check the progress of this new milestone in this other project board. The main goal of this milestone is to take the first steps towards supporting the same functionality that the Web Hosting Manager application has for uploading websites in the CLI. The plan here is to use Published AppendOnlyData and Published ImmutableData for storing the folders and files on the network, without going into having a proper RDF data representation at this stage yet.

Finally, we made a PR with some usability improvements to the wallet API. Enabling automatic balance creation with new wallets, and simplifying the insert command, which now must take an existing key as an argument (with create doing auto key generation if required).

Mock interface

project plan

We are continuing to refine the mock API in SAFE Client Libs and preparing it for integration with the SAFE CLI. We have been focusing on catching up with the changes in the APIs expected by Vaults and removing the legacy code in SAFE Core.

We are also starting to plan the further work that will let us switch the Authenticator so that it can use the new data types and to integrate SAFE Client Libs with quic-p2p (so that it can connect with the Vaults directly). This would require some effort, but ultimately it also should make our code base simpler and improve usability and clarity of our APIs.


project plan

This week saw the general structure put in place, and hooking it up to quic-p2p for communication with clients. This has required close collaboration with client libraries to make sure that the common datatypes in safe-nd are fit-for-purpose. Work is progressing on the ChunkStore (the data storage layer) as well as correctly initialising all components. With these in place, we hope to be able to start implementing the various batches of RPCs and handlers as listed in the above project plan.

SAFE Browser

project plan

Some final fixes for edge cases around experimental APIs and the context menu have been merged into the dev branch. And now we’ve passed everything over to QA for internal testing ahead of the next release.

Integration of quic-p2p into Routing

project plan

Thanks to @adam’s hard work, the progress in quic-p2p integration was really good this week. We merged a large PR which made a massive dent in the task by replacing Crust with quic-p2p throughout Routing. As shown in the project plan, the task as a whole isn’t over yet as this opens opportunities for code simplification that we will be jumping on immediately. But it was the largest part and we are really happy to have reached this point :smile:

Reliable Message Delivery

project plan

Most tasks here are completed. Many of them were addressed in one pull request that we’ve been refining over the last week. It was a large piece of work and interacted with recent progress on quic-p2p integration, so we took our time to ensure that all soak tests passed before moving forward with it. And…it was merged today :tada:. Another PR to modify the way we accumulate signatures and lay the ground for Secure Message Delivery is still in progress.

BLS cryptography

We made a start on the BLS front by merging two PRs into PARSEC. Combined, these PRs allow triggering a Distributed Key Generation mechanism and obtaining the key shares as an output. The reason these changes are done in PARSEC is because the DKG algorithm we are using requires ordering, which PARSEC provides. The main user of this code in the scope of Fleming will be the Routing crate. We have yet to publish a project plan for this part of the work but will do this once the final comment period for the RFC is over in a week or so. Note that this DKG code will also have the potential to be used for implementation of a common coin in PARSEC (although this isn’t currently a priority).


First!! Finally!! :laughing:


Second? Woot!!! Now to read :slight_smile:


Here is my take from this morning. It is all happening!


Well done team! The SAFE train is moving at full speed now. 40 people working like 400, all the parts of the machine perfectly integrated now: its full steam ahead! So exciting :pray:


First time in top ten! :grin:

You guys are too quick!!!

It is indeed. Join the next revolution. :sunglasses:


Good progress there and I’m loving the links to the project plan! It is really useful to see how the stories are progressing.

Keep up the great work! :sunglasses:


Thanks so much to everyone on the team for all of their hard work! The progress is accelerating!

Also, I like the fact that Maidsafe made their opinions known about the new Libra coin on twitter. Sometimes it is important to reserve judgement, but here, something needed to be said.


Another super update, and brilliant work to promote SAFE Network and Maidsafe this week at the bitcoin conference. Well done all - it is obvious everyone is very focused on particular tasks right now and driving hard to deliver each step. Very exciting :slight_smile:

I read this and also the note about not implementing RDF more widely yet and would appreciate any insight into how you’ll manage the process for app developers like myself so we don’t waste time working on stuff that will break very soon.

This can be ameliorated in two ways:

  • deprecate but maintain existing APIs and alpha2 for some time after API changes are complete and documented.
  • provide early access to the new APIs (e.g. docs and mock) so that work can start porting existing code to be ready for the next testnet.

Obviously it can be both to some extent, so I’m curious to know if you have plans along these lines which you can share. This would help because I don’t want to continue writing new code for the existing API that I’ll have to rewrite in a couple of months.

Personally I’d rather start porting SafenetworkJs sooner and write against that, but at the moment I don’t have enough information on the new APIs or any means to test them out, and I don’t know how long alpha2 will remain active for any code I’m writing up until I can begin working with new APIs. So it makes it tricky to optimise my time.


This is a brilliant update, absolutely brilliant.

A lot of updates have been brilliant, this one is a bit more special, its begining to sound more like English. This is a massive progress signal, and this is why I think so…

MAIDSAFE are now tickling the application layer!
For years they have been climbing a ladder, but building it at the same time, moving up from the physical ‘copper cable’ layer, up through layers of abstraction, algorithms… parsec.,routing,… up to their SAFEnetwork version of the application layer.

For years the public have demanded proper progress reports, they have been … it’s just that the language of the building blocks of technology is different - different enough even if you are speaking about the established internet - imagine, Maid have been building and using language for the nuts n bolts of a technology that’s never existed before! No suprise we were confused.

The closer we get to launch, the more normal the updates will sound as the pieces fall in to place!

We are very close to the tip of the top, when they will finally say…

“Browser Launched, Vault Launched, CLI Launched”
There won’t be a technical term used at all!!

It looking more and more like that each week!

Excellent work!


Just wait for next week. Let the tickling commence! :grin:


Honestly it feels like the team is on fire at the moment, really in the zone for just getting it done.

I had a tough few nights with my sons, poor wee guys waking up all the time, so not much sleep was had. But it doesn’t matter… bouncing out of bed, seeing all the early progress from Chennai, then the notifications rolling in as the full team assembles. And ultimately I’m doing it for my kids, and everyone else’s.

Find myself getting in the the flow state more readily too, such a satisfying place to be as a designer.

Extraordinary things are afoot my friends, and it’s great to have you all with with us.


Good effort team. Keep up the good work. Marching on together.


And thank you for that, sincerely. :relieved:


Maybe change "isn’t " to “is” in the first line?


Oh yeah, good spot :joy:


Another amazing, inspiring update—thanks to everyone who’s helping make this project possible!

One question: was the Scottish Blockchain event recorded on video? I’d love to be able to watch this (and any other) presentation, if possible. IMO it’s a great, relatively cheap/easy way to help spread the good word about the SAFE Network.

Thanks again :pray:


Hey @dlux, yes the meetup was definitely recorded - and it will definitely be released. It just has to go past Andreas’ team first I think (assuming it’s because they check quality etc & then usually release it first to his Patreons etc who support his activities before he then releases his talks more generally). But we’ll find out very soon.


Did you have a chance to speak with him? Just curious if he knows about the Safe Network


Yes but only briefly unfortunately, ended up speaking to loads of folk afterwards and there was a huge queue of folk getting books signed etc. Obviously he was listening and he does know about MaidSafe / SAFE Network (there’s a video on this forum somewhere which shows him speaking about it in passing a few years ago). It really was mainly an ‘hello, we’re sponsoring beer, check out the SAFE Network’ in a couple of mins as opposed to an indepth run through the details - but every little helps :wink: He gave a great talk as always. Reminds you just how powerful (and necessary) getting a strong communicator is for spreading the Idea Virus from person to person…