Summary

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

We created a Baby Fleming Public Shared Section on DigitalOcean consisting of eight vaults on eight separate droplets.

We released new alpha versions of the SAFE Network App and SAFE Browser (desktop) that are compatible with Baby Fleming iteration 3.

We released new stable versions of SAFE Authenticator and SAFE Browser (mobile) that are compatible with Baby Fleming iteration 3.

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 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

instance Only stops safe-authd at shutdown if it was responsible for starting it

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) . 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 . 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

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