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
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
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)
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 - 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)
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)
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.
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)
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.
SAFE App C#
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
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