Vault Phase 1 (mock vault)
We’re delighted to announce we have the next piece of the puzzle toward Vault Phase 1 milestone ready for you
We actually debated whether to wait until all of the pieces of Phase 1 were done, but we’ve tested all the ‘happy path scenarios’ and we’re too excited to wait any longer - so we’re releasing the next piece for you today!
Head over to this standalone post where we explain all, as well as give you a sneaky little taster of what’s to come…! We hope you are as excited about this as we are!
The team have been out at the Web3 Summit in Berlin most of the week, sharing the story of SAFE. Amongst a sea of developers, investors and the simply curious, with speakers including Edward Snowden, Richard Stallman and David Chaum, we opened up their minds to SAFE’s vision and what’s possible beyond a blockchain. And there was that fantastic feeling of hearing someone say ‘cooool’ when we said ‘I work at MaidSafe’ . Here’s a couple of snaps, courtesy of @dugcampbell, including one of him on the panel, in which he spoke about decentralised storage solutions alongside Fluence and Arweave.
This was completed with the merge of this PR yesterday.
QA have been busy putting the safe-cli and safe-authenticator-cli through their paces after safe-cli was switched over to work with real SAFE Client Libs. We hope we’ve caught any obvious bugs, but we know that no software is bug free so if you come across anything that doesn’t behave as expected or you want to provide some feedback, good or bad, then please let us know in the dedicated release thread
This week our DevOps/QA team added
self_update to the latest safe-authenticator-cli code. This uses the self_update crate to pull in new releases from our GitHub release page, if any are available, every time the user runs
./safe_auth --update , saving the need for you to download any new releases manually. This brings it in line with the safe-cli.
SAFE Network App (SNAPP)
It’s been name-dropped before, and you’ve seen it appear in past Dev updates: the SAFE Network App. Its first iteration will be a simple helper app, enabling the download, installation and management of the various types of SAFE apps and utilities that are already out there, and that are coming down the pike.
The dev team have been working hard and this first phase is coming close to being ready for the QA to run some final regression testing, and run it through its paces.
And that’s just the beginning for this app. It’ll start life as a test bench for a suite of core applications, but it’ll ultimately become like a start button to the Network. Not essential, but a highly useful transient application that comes in and out of view when needed. It’ll encompass things like logging in, authentication, profile management, and of course account creation itself.
So that’s where we now find ourselves, designing the flow and methods through which users will onboard to the network for the first time, in a permissionless way, no servers involved.
Perhaps you start a Vault behind scenes, or maybe you get an invite from a friend who is already on the Network. But it all needs to be understandable, smooth, and work across a variety of devices too.
We’ve also assembled a wider reach team to tackle the SAFE Network application, and we’re designing and building across both mobile and desktop platforms from the start. This is another area where regular user experience testing is a must; so stay tuned!
SAFE Mobile Browser
This week we finally merged the dark-mode PR to the master branch. This will provide the option to the user to enable/disable the application-wide dark theme on both Android and iOS devices.
Last week @Zoki reported an issue in Android browser app where users weren’t able to fetch some websites from the SAFE Network because the app was converting the numeric public names into IP addresses. We found the root cause and resolved the issue. The fix will be available in the next release.
Last but not least, we added a new feature in the mobile browser for iOS users which will enable them to navigate back and forward between pages using navigation gestures.
SAFE Client Libs
We have made some really good progress with the quic-p2p integration testing with the real Vault this week and we’re excited to see that there are no more failing tests and known issues. During the next week, we’ll be polishing the code and making sure everything works smoothly for the next release of the SAFE Client Libs.
This week, @marcin’s main focus has been fixing bugs and reviewing PRs. He raised a PRchanging the
CreateCoinBalanceFor request to return a
Transaction response in the Mock Vault. He also worked on a minor refactor of the
Client trait, reducing some unnecessary duplicate code and making the
Client::full_id() method return a
SafeKey instead of the
Routing::FullId type, reducing our dependency on Routing. Finally, he raised a PR making small improvements to the documentation here and there.
In conjunction with work on SAFE Client Libs, we have been making changes to the
safe-nd crate, such as fixing permissions validation for AppendOnlyData and refactoring the
error_response function so that it correctly returns a
Transaction error response type for the
CreateLoginPacketFor request. We published a new version of
safe-nd with the changes, so that it now stands at version
Secure Message Delivery
Continuing with last week’s work, we mostly merged PRs focusing on additions to the functionalities of the end-to-end Secure Message Delivery solution. The main work includes cleanups to avoid adding the identities of the elders sending the message to every message. This was a lot of overhead, instead we now only send this information once to the section that needs it. Every message contains the much lighter single (emulated for now) BLS Key and signature. Another work is to sign and check single-source messages with ED key, which is for the validation of messages from a single node.
We also identified the reason for the recent test failure discovered when running with real Parsec instances. It is due to the tie-breaking algorithm used in Parsec. We created a test in parsec which can now expose the issue earlier and are currently testing a fix.