SAFE Network Dev Update - April 2, 2020

Summary

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

Vaults Phase 2

Project plan

This week we deployed the last step of Phase 2a which is a shared section deployed on DigitalOcean droplets. This section consists of 8 Vaults (7 Elders and 1 Adult), each deployed in separate droplets, which work together using Routing and communicate using quic-p2p to process and respond to requests sent from the Browser or CLI via SAFE Clients Libs. This is another iteration of the various components working together so if you haven’t tried it yet head over to this forum post and give it a shot.

We have already started looking into the next phase of Fleming, Phase 2b - multiple sections. We are looking into the requirements of this phase and planning the steps forward. Watch this space for more info.

SAFE API

Project plan

safe-nodejs received some updates this week. Not least an update to the newest safe-api version 0.11.0 bringing compatibility with the latest Baby Fleming testnets (this has been included in the latest browser/safe-network-app alpha versions, though we’re still battling some code signing issues there).

We also set up the repository to work for continuous delivery. This is not the most exciting thing in the world, but it does remove several manual / laborious and potentially error-prone steps we were having to do manually. So now everything we merge into master will be generating its own changelogs/tags and automatically bumping the version depending on what commits (features, breaking changes or bug fixes) have been included in the latest PR. This approach seems to have worked well here, so we’re rolling this out in some other repos at the moment.

We’ve started this week with some refactoring in safe-authd to not only solve the issue that in Windows there are no logs being generated but also to remove the need for admin permissions to start safe-authd on Windows. This requirement was due to safe-authd being a Windows service, but we will be moving to a different type of implementation shared across platforms which won’t need admin permissions to launch it as a detached/background process.

SAFE Network App (desktop)

Project plan

The SAFE Network App finally gets a long-awaited update with a new :baby: compatible Alpha version being released this week. As well as setting up some CI improvements to enable automatic releases, the SAFE Network App now:

  • Manages/installs the CLI and uses it to install/manage our safe-authd instance
  • Only stops safe-authd at shutdown if it was responsible for starting it
  • Auto-focuses when receiving authentication requests

You can download the latest alpha version from here though do note that we have noticed some code signing issues today - work to resolve these is ongoing so please ignore any related errors on installation.

SAFE Browser (desktop)

Project Plan

The desktop browser has also seen some CI improvements for continuous delivery. Beyond that, the latest version has updated SAFE APIs and implements a security fix, enabling contextIsolation for the webview elements in Electron. This should prevent some security exploits relating to the JavaScript prototype chain.

New Alpha versions of the desktop browser have been released this week which include these latest updates, as well as being compatible with the Baby Fleming shared section. You can download from GitHub here. Note, as mentioned above there have been some code signing issues with the browser and the SAFE Network App, work to resolve these is ongoing so please ignore any related errors on installation.

SAFE Authenticator (mobile)

Project plan

Today, we released a new version of the SAFE Authenticator (v0.3.0) :tada:. This updated version supports the single-section network (Baby Fleming iteration 3), including the MaidSafe hosted shared section. You can download the new authenticator app using the QR codes or links available here.

We added an option to download MaidSafe’s shared section connection info and set that to default in the Choose a Vault settings page. This simplifies the onboarding process for those who want to use the MaidSafe shared section and avoids the need for manual setup.

Download MaidSafe’s shared section info Auto added MaidSafe shared section

Note that the Download link for the MaidSafe shared section will only appear on the Choose a Vault screen if you have no configuration files listed.

SAFE Browser (mobile)

Project Plan

Today we also released a new version of the SAFE Mobile Browser (v0.4.0), also compatible with the single-section network (Baby Fleming iteration 3), including the MaidSafe hosted shared section :tada:. To download and start using the updated mobile browser, you can find the QR code and direct download links here.

To simplify the authentication process, we added an option to connect to and authenticate with the MaidSafe hosted shared section, without using the Authenticator app. To use any other section, either local or hosted by someone else, you must use the Authenticator app.

We also added a new button in the top navigation bar next to the address bar to show the authentication status. It is clickable to enable the user to re-authenticate the app.

Updated authentication dialog Authentication status & authenticate button

SAFE App C#

Project plan

This week we refactored the internal structure of the project and simplified the bindings based on the recent FFI refactoring changes in the safe_client_libs/safe_app, safe_client_libs/safe_authenticator_ffi and safe-api/safe-ffi libraries. We tested the changes and released a stable MaidSafe.SafeApp NuGet package compatible with the single-section network :tada:

Routing and quic-p2p

Routing Project Plan

After the big refactoring work last week, we are now back to implementing new features. This week we put in place the distinction between adults and infants. This change is an important part of making the network resilient to Sybil attacks because it prevents a malicious actor from taking over the network by simply spawning a large number of nodes under their control. The PR is currently being reviewed and if all goes well will be merged soon.

BLS - Distributed Key Generation

Continuing with the progress mentioned within last week’s dev update, we are furthering the work on the PoC implementation of the DKG scheme. We added the threshold_signature and threshold_encrypt tests - these two tests also serve as examples to demonstrate how the generic crate can be used. We will be adding more tests to expand coverage and demonstrate more usage cases. On the connectivity side of things, the node using this crate would need to be aware of the DKG phases it would go through, therefore this requires a similar implementation pattern to that of our SAFE Client Libs architecture (where connectivity is handled by States). This clarity paved us a few routes that the team can take to achieve connectivity and we will be testing this pattern in the upcoming week to see if this would be an efficient way of structuring the crate.

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:

85 Likes

Finally first person!

30 Likes

Number 2!!! Now to read :smile:

Excited to see the continued pace of new releases, especially given these trying times. From shared sections to compatible browsers, it certainly feels like development continues to accelerate. More grease to your elbow, MaidSafe! :smile:

20 Likes

Third. Now read

15 Likes

Just downloaded the browser and authenticator updates for iOS! Time to play!

Good progress keeps on coming. That PR for defining adults and infants gets us closer to us all securing the baby from the comfort of our own homes. Hoping to see DKG and CRDT relieve a lot of processing to ease PARSEC. It’s neat to see these loose threads getting woven into a much bigger and stronger rope. Keep up the great work to the back and front end teams @maidsafe :love_you_gesture:

Hoping to have some good news relating to JAMS in the coming month(s) but there has been a momentary pause in the web app for now, mobile development continues though.
Cheers

25 Likes

Look forward to seeing this: Fleming, Phase 2b - multiple sections
There’s a nice pace about this, at a time when it seems the rest of the world has stalled!

:+1:

22 Likes

Lucky 7 again
Another strong update with progress on multiple fronts. VERY encouraging in these troubled times as SAFE becomes even more essential then ever.

23 Likes

Awesome update team, it is fantastic to see how much you are getting done through all this madness.
I have had my hands full with guests who are stuck at my house with no way home, kids that are not in school, and fortunate to be considered an essential worker so working through it all. But I am going to make time to play with this baby one way another.
Thanks team, if anyone needed proof of your commitment, THIS IS IT!!

27 Likes

Great pace at the moment. While the rest of the world is holding its breath it seems maidsafe is moving even faster!

20 Likes

Great update!!

16 Likes

Hi @JimCollinson Is the browser look and feel is going to match SNAPP?

3 Likes

Ooooh - thats got to be tough on all concerned - you have my sympathies

9 Likes

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

16 Likes

I get dizzy reading this update as so much is going on at once. It really feels like we are headed for the end game. Dizzying endurance, great work team!

Also the IOS mobile browser works great for the shared section, I’m enjoying the safe://eye

It keeps looking at me… from every angle

16 Likes

Well said @davidpbrown.

Another great update, and hope everyone’s staying safe. :slightly_smiling_face:

16 Likes

Good progress!

Delighted to read multiple Vaults are already working together and you are already looking into 2b, multiple sections.

Thank you for your continued efforts and lots of love from Spain. Hugs and kisses are unfortunately unavailable at this time.
:sweat_smile::wink:

19 Likes

Brilliant to hear the baby is progressing well! Keep up the great work team!

I’m hoping to get some time to try some of these new toys out. Seems like since lock down, I’m busier than ever entertaining my young family! :sweat_smile:

13 Likes

Man was it easy to get set up to the shared section on mobile, took literally seconds, popped in a url safe://animals which showcases perpetual web versioning and it loaded up quick. Very impressive.

This is a great way to show people that browsing SAFE is easy and free.

This was a neat addition though I might change the wording on the connection pop up to be less specific. It just works so why not just have even more simple and understandable options?
sign in / browse
An outsider probably doesn’t care or know more than that when coming to first impressions with the mobile browser. Unfortunately, even Authenticate is more foreign than “sign in” but it makes sense given the nomenclature. In that regard I think that still works. I’m assuming it’s because we are a informed and niche audience at the moment but we’re not building for just us. Just a suggestion to not stand in the way with words to what was a big leap in ease of use.
We’re going to be doing these same kinds of simplifications in JAMS as well (such as nixing SAFE specific wording like XOR address to URL and so on now that we have NRS that works so beautifully) which unfortunately will mean translations will need some updating. Long winded way of saying it works amazing, maybe make it less wordy but with some reasoning behind it.

16 Likes

Yes, they will feel like a coherent suite of applications.

However, Safe Network App is currently being designed with a relatively vanilla, generic look and feel, with the focus being on the core interactions and usability. We’ll be working on the look and feel as a dedicated stream of work which will then be layered on top.

This work will be starting soon, and it’ll build up a design system which can then be shared across all the MaidSafe apps, including the browser.

19 Likes

Thanks for the update Maidsafe devs.

Snapp is handy to install the browser and other stuff, but I seem to be in an eternal account creation spiral…

At least some good news, it seems like I’m running #8 vaults :partying_face: still clueless about what I’m doing… But this command really made my day: safe vault run- :baby:-fleming :stuck_out_tongue:

10 Likes