SAFE Network Dev Update - April 9, 2020


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

  • We completed a refactoring in authd (the Authenticator daemon) which brings the ability to run authd on Windows without admin permissions (starting from the next release).
  • The safe files get command is basically complete and should be included in the next release of the SAFE CLI.
  • @jimcollinson posted some more candidate designs related to the SAFE Network App UX (see below).
  • Planning continues for Vaults Phase 2b - a multi-section network.

Vaults Phase 2

Project plan

We hope you’ve been having fun with the last release of the testnet. We’ve been doing some interesting research for some improvements to the current phase of the single-section network. In parallel, we’ve been planning the next phase with multiple sections too. We’ve added some cards to the linked project board. After some more thought, we’ll be converting them into issues with a lot more detail and then it’s code sprint time!


Project plan

This past week we were able to finish a refactoring in authd which changes the way the process is launched as a daemon. This refactor allowed us to get rid of two dependencies we were using for this purpose (for Windows and Linux/macOS respectively), and have the same code for all platforms as the process is spawned using native Rust utilities. With this change we were also able to fix the issue we had in Windows with authd logs not being generated at an analogous location as it’s done for Linux and macOS (~/.safe/authd/logs/safe-authd.log), i.e. authd on Windows will write its logs at C:\Users\<user>\.safe\authd\logs\safe-authd.log in the next release.

Another interesting improvement this refactoring brought to authd is the ability to run authd on Windows without admin permissions. This requirement was due to authd being installed and run as a Windows service, but it will now be launched as a simple process in the background, just like it’s done on Linux and macOS. Therefore, from the next release there will be no need to install it with admin permissions on Windows, it can be launched with a simple safe auth start command, again, without admin permissions.

We’ve also made some minor fixes in the CLI, including a change to make the timeout window in the communication between the CLI and authd larger so the CLI doesn’t timeout before authd times out when it has issues connecting to the network. This way, we’ll be able to see the timeout error coming from authd rather than a CLI timeout error. We’ve also enhanced the CLI so it doesn’t fail when the credentials are invalid, and instead it fallbacks to connecting with read-only access which may be good enough for some commands like cat/dog on public content.

Finally, work has been progressing on safe files get which enables file and directory downloads from a SAFE Network FileContainer to the local filesystem. This command works similarly to cp or scp on Linux/macOS, or copy on Windows. The code is now basically complete and is being tested by the team. It should be included in the next release of the SAFE CLI.

SAFE Network App UX

MVE Feature Status Tracker

More progress on the nitty-gritty of the app’s experience. It’s not terribly glamourous, no giant leaps here, but all more flows being chalked off the list.

Give them a tap or a click and a download to peruse in full resolution:

The Data Access Feed

Multiple data in a single permission request

Filtering and sorting lists

SAFE Network App (desktop)

Project plan

Work on the SAFE Network App has largely been on hold this week as @joshuef has been diving into the client libs to take a look at some CRDT conceptual work. This itself involved a bit of a refactor of our connection management code to enable simpler testing of response handling. Once that was in we’ve gotten a simple GSet example test suite set up and we can see that receiving/merging some disparate CRDT types of data shouldn’t be too much trouble client side. Once more, that’s only a quick proof of concept, but it is looking promising thus far.

With that in the bag, we’ve started looking to address some of the issues reported in the previous week’s update here. Linux appears to have been having quite the time, so we’re starting there. A new alpha should follow along shortly, so our avid alpha testers should get notified in-app when an update is available but we’ll also post something here to let you know.

SAFE Authenticator / SAFE Browser (mobile)

Authenticator Project plan, Browser Project Plan

We made a couple of textual changes in the authenticator app, mostly focused on the network selection page. On the mobile browser side, we noticed that some of the websites/pages are not loading properly in the iOS app while working fine on Android devices. We are in the process of finding the root cause behind this issue so it can be resolved.

Other than regular bug fixes, we are working with the SAFE Client Libs team to provide a better user experience around network disconnects and reconnects. This will help us in properly handling the different network events and we will be able to remove unnecessary re-authentication steps.


Project plan

We fixed a long-standing bug in the safe_app_csharp library. The bug was resulting in an app crash when trying to decode any authentication response from the authentication app (mobile or CLI). Because of this bug, it was not possible to handle different error cases. We also updated the tests to ensure the proper working of the fixed API on all desktop and mobile platforms.

We removed the AppVeyor test setup from the repo and to further simplify the process and use a single platform for all the CI/CD process, we are moving the code coverage and API documentation publish setup to the Azure DevOps pipeline.

Routing and quic-p2p

Routing Project Plan

The Routing work is paused this week as we’ve been exploring a new exciting algorithm that can potentially significantly improve the coin handling logic in terms of performance and code simplicity. Can’t say much more than that yet but stay tuned for more info!

BLS - Distributed Key Generation

As planned since last week, we added more unit tests to the work on the PoC implementation. These tests expand the coverage of the whole transition phases among the DKG proposal and demonstrate more usage cases. We also fixed some bugs encountered in this process and updated the code with a neater testing structure.

Useful Links

Feel free to send us translations of this Dev Update and we’ll list them here:

As an open source project, we’re always looking for feedback, comments and community contributions - so don’t be shy, join in and let’s create the SAFE Network together :tada:


Whoever comes second, love me like I do, do!

(Sorry :cold_face:)

And yeah, I love this update more than any other but all of them.


Raaah second

@Fruico job welldone :crazy_face:

Now read :sunglasses:


Thanks so much to the entire team for all of your hard work! The progress is accelerating.


History has been made. I am 4th



Happy Easter to all… and do remember despite the lock-in that having breaks is key. :wink:


Love all this concurrent progress that merge into huge milestone releases. Next thing you know we’ll have CRDT, BLS, and all working in a multi section network! Amazing progress as usual. Then Labels and some stupid simple UI to use it all! Thank you to each individual @maidsafe you folks keep the future looking bright.


Excellent solid progress on so many fronts here. Thank you as ever to all the team. I’m looking forward to testing the promised new releases just as soon as they appear.


I wish I understood what kind of progress was or was not being made but I hope it will turn into a user friendly product very soon. Keep fighting the good fight.


I’m so glad you guys released Baby Fleming. The progress feels more tangible when the community can participate in testing. Thanks again for your hard work. And a big thanks for these great weekly updates, whoever authors them. David?

P.S. The link

gets a certificate warning from Firefox.


Nice, but is it really needed for the MVP? Because I see too many big backend changes lately (CRDT, BLS, DBC, …). It just goes on…Should I be happy about it or not, I just don’t know :thinking:


You can even now use the mobile browser… it works well and gives access to what sites are there.

9 Likes should be fixed now :+1: Netlify was unable to renew the Let’s Encrypt certificate automatically so I had to trigger the renewal process manually. Thanks for letting us know!

Pretty much everyone in the team is involved in writing them. @StephenC and I make sure to review everything before posting it :slightly_smiling_face: (David usually reviews it too but this week he is taking a break)


I hope @dirvine is safe and healthy in those though times


That comment is probably the best I have ever seen from you. I hope you can keep it up and evolve to become a more balanced human being.

Happy easter to David, all of the Maidsafe team and community, I wish you all health and Joy.


I would say happy. Performance, security, and usability improvements should continue as they are pretty much required for a minimum and viable safe internet that would be for the masses.


Nice Update and Happy Easter to all the great people helping make this dream come true.

The silent majority is still here watching, over the moon that the visible, honest and genuine efforts of the last few years are beginning to come to fruition.


I think we can all agree on that, @gouda123
AIUI David is taking a week off. He lives in a lovely rural location, well off the beaten track and unlikely to be bothered by the contagious Easter campervan idiots. He is probably as safe as any of us. He has been quietly active with some likes recently.
I’m sure we will hear from him soon.


Can anyone give me a brief detail about " framing " part

Finally got a new Safe Network App Alpha build up now the mac build is going again:

This is alpha software, so not for the faint of heart. Fixes since last week:

  • Error notification when authd subscribe fails (and you therefore wont be able to login until you restart authd and the app itself).
  • menu bar in windowed mode has been fixed on linux. Close button exists!
  • quit option now exists in the app’s dropdown menu
  • command line logging output has been tidied up.
  • SNAPP will now use cli v0.11.0, the update was missed in the last release ( :expressionless: ) and probably accounts for a lot of issues. (I’ll be working on automating this w/ cli releases so we always get the latest release and the manual step is no longer needed).