Summary
Here are some of the main things to highlight this week:
- We released Baby Fleming iteration 3 This update consists of a new version of the
safe_vault
binary (v0.23.0) which uses the new quic-p2p version that has been updated to use the latest version of the Quinn library. - We released new versions of the SAFE CLI (v0.11.0) and the Authenticator daemon (v0.0.7) which are compatible with the new
safe_vault
(v0.23.0) and use new versions of the SAFE Client Libs which try the bootstrap process multiple times before returning an error. - @jimcollinson posted candidate designs for some of the key user stories related to file permissions, data navigation, and publishing. See the SAFE Network App UX section below.
A note from the MaidSafe Foundation on the current Covid-19 pandemic
The MaidSafe Foundation – which is a registered Scottish charity – supports the teaching of Science, Technology, Engineering and Maths (STEM) as well as Art.
With the Covid-19 pandemic now closing schools in many parts of the world, you may be worried about keeping your children occupied and educated. To try and help you, we have put together some fun activities that have been compiled using STEM teaching guidelines here in the UK. The activities cover three age groups with two projects for each. As a guide, the Early level activities are for ages 3 to 5, the First level for ages 6 to 8 and the Second level for ages 9 to 11.
To receive your free resources, simply email info@maidsafe.foundation and we will send them to you. Your email address will not be shared with a third party and will be deleted after we send you the information.
We are also uploading pictures, videos and links to fun activities on Facebook.
You can also visit our website for more information about the charity and to see some of our past projects that may be of interest. There are also three free sample lessons from our STEM pack which can be accessed by clicking on the STEM tab.
We want to help you to keep your child/children occupied and educated during this time of uncertainty so please keep safe and well and hopefully you will all enjoy the activities.
Yours sincerely,
The MaidSafe Team
If you would like to donate to the MaidSafe Foundation, please follow the link below or use the QR code to access our PayPal account. All donations help us to support educational projects within schools and communities.
Vaults Phase 2
Today we are releasing the third iteration of Baby Fleming, aka Vaults Phase 2a We’ve updated quic-p2p to use the latest version of the Quinn library and updated all our crates to use the new quic-p2p version. Along with this update we have been doing some benchmarking of CLI commands against Baby Fleming. We observed that there were some failures at times when the Client (CLI in this case) is unable to bootstrap to the network. This may occur for a number of reasons such as packet loss, an interrupted network connection, etc. Returning an error as soon as this happens didn’t make sense so we have implemented a small feature in the SAFE Client libraries that tries the bootstrap process multiple times before returning an error. With this in place, we were able to benchmark CLI commands against baby fleming for 1000+ iterations. We have released new versions of the Vault and CLI binaries so give them a try and give us a shout for hugs and bugs.
How do I update to Baby Fleming iteration 3?
This update consists of a new version of the safe_vault
binary (v0.23.0) as well as new versions of the SAFE CLI (v0.11.0) and the Authenticator daemon (v0.0.7).
If you have never used the CLI before then you can follow the guide here to download and run our install script.
If you have used the CLI before, then you should update it by running:
$ safe update
You should also then update the Authenticator daemon:
$ safe auth update
The simplest way to update/install the new version of safe_vault is to run:
$ safe vault install
All versions should now be up to date and you can run you own Baby Fleming network. Refer to the CLI User Guide for full instructions.
Known issue
You may experience intermittent AccessDenied
failures, as logged here, when uploading data. We are aware of this and we are investigating.
When will MaidSafe be hosting a Shared Section?
Internal testing of the shared section has been promising, but there are some issues that we’d like to fix before we take this baby to the next level. You can expect to hear from us about this soon.
Note that when we create a Shared Section we will be taking down the current Shared Vault - data will not be transferred from the Shared Vault to the Shared Section.
SAFE API
We’ve been fixing a couple of minor issues in safe-cli caused by our recent move to async
, which introduced some conflicts with the self-update crate and related commands. Another minor issue we resolved was impacting the safe-nodejs API: failing to start safe-authd. We released a new version of this package (v0.10.0) which will allow us to have new releases of the Browser and SAFE Network App hopefully soon.
A minor refactor in the safe-api unit tests has also been made, which makes them cleaner by avoiding the use of unwrap
and having them return errors instead. This is all thanks to a new feature of Rust that makes it possible for tests to return a Result
.
The safe-api repo has also been adapted in order to update to the latest version of quinn (v0.6.0) which brought some breaking changes in its API, but also some simplifications we wanted to benefit from.
Today we released new versions of safe-cli
(v0.11.0) and safe-authd
(v0.0.7) which are compatible with the new safe_vault
(v0.23.0), also released today. Please make sure to update your CLI and authd if you are planning to use this new version of safe_vault
. Remember you can update the CLI with the safe update
command, and also update authd with safe auth update
command. Follow the instructions on the CLI User Guide if you have never installed the SAFE CLI and/or the Authenticator daemon on your system as yet.
As a consequence of discovering this safe-nodejs bug, and now with the power of Baby Fleming, we’ve been updating our Node.js tests to run against a local network. This in itself has also started a move to GitHub actions for the repo which should speed up builds and testing.
In parallel to all that, we already started with the first draft implementation of a Sequence
data type API in safe-api, as well as with some basic CLI commands which will allow users to create and mutate content directly in a Sequence, e.g. safe seq put
and safe seq append
commands. This is in a very early stage and we don’t have more to share just yet, it’s our first steps into the implementation of the Sequence
as a CRDT data type straight into our Baby Fleming codebase. We are focusing on an E2E approach for this, i.e. we plan to use the CLI and its integration tests to validate the implementation of the Sequence
CRDT implementation in the vault. We’ll hopefully have more to share in a few days as we advance.
Finally, we’ve also been doing some refactor inside of SAFE Client Libs, having this week merged a pair of PRs removing parts of the old FFI functionality, which was heavily intertwined in the codebase, in favour of a clearer separation of concerns within safe-api itself, giving us code that bit cleaner and more accessible.
SAFE Network App UX
User Experience and UI progressed on a number of fronts this week, as we progress through the nitty-gritty of file permissions, data navigation, and publishing.
As no doubt most of you will also be experiencing, this past couple of weeks have been somewhat challenging, and required a bit of adjustment, so I hope you’ll forgive the lack of a video explainer, and happy to digest candidate designs in a slightly more raw and unburnished form.
So here we are, some of the key user stories that have made their way down the pike. Give them a tap or a click and a download to peruse in full resolution:
Just In Time consent
Editing a Just In Time consent request
Uploading a file
Creating a new folder
Renaming a file or folder
Moving files and folders
Moving a file to a public folder
Publishing flow: Unique link only
Publishing flow: adding to an existing site
And there we go. As usual, we’d love to hear your thoughts, comments and not unduly harsh criticism.
SAFE Network App Development (desktop)
With our fixed safe-nodejs API in tow, we’ve been finalising a long-standing PR for the SAFE Network App, which is full of minor changes and updated APIs. It also features a move to GitHub Actions for testing and building the codebase. There have been some config headaches there, but we’re very close to getting this in and being able to release a Baby Fleming compatible SAFE Network App!
SAFE Authenticator / SAFE Browser (mobile)
Authenticator Project Plan, Browser Project Plan
We are working on a couple of small improvements and bug fixes in both apps. We looked into an Authenticator bug which was causing the app to relaunch instead of resuming when authenticating an app. We have found a simple fix for the bug which we will implement and test.
In the mobile browser app, we are trying to improve the authentication experience by adding an authentication status button in the top navigation bar. We haven’t finalized all the states for this button and may add the no internet connection status as well. This will also allow the user to authenticate the mobile browser by simply clicking this status icon.
Not Authenticated
Authenticated
SAFE App C#
This week we exposed a new FilesContainerRemovePath
API from the safe-api. This API will allow devs to remove a file/path from an existing files container using the file’s XORURL. We also added some unit tests to ensure the proper working of this API.
Routing and quic-p2p
This week we wrapped up a large refactoring task (split into several PRs: #2071, #2072, #2073 and #2075). This is “invisible” work in the sense that no new features were implemented, but it was still important to do. We removed quite a lot of non-essential complexity and technical debt that has accumulated over time. This resulted in simpler code which is good because simpler code is: easier to test, easier to debug, easier to audit for security vulnerabilities and finally easier to onboard new devs.
We are also moving along in our effort to improve the test suite with the aim of making us more confident in the code. We brainstormed some ideas and are in the process of writing up proof-of-concept implementations.
BLS - Distributed Key Generation
As mentioned in the last update, we are working on a PoC implementation of the DKG scheme. The team have been having discussions regarding some parts we were not clear on. This enabled us to clarify and resolve many issues. We are planning to include more tests within the PoC work to ensure it is achieving the aims that are targeted - a generic crate that will be used for attaining consensus without completely relying on PARSEC at all times.
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