SAFE Network Dev Update - October 10, 2019

Summary

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

  • We released the first version of the SAFE Network App.
  • To focus on delivering Fleming, we’ve decided to delay holding a SAFE Online summit until after Fleming is released.
  • The next SAFE Network Brighton meetup will be on November 21.
  • We implemented a dog command in the SAFE CLI as a companion to our lonely cat command. It will be part of our very next release.

Marketing

We want to start with a quick update. Over the past few months, we’ve been discussing a number of different events that we were looking to put on in 2019. Over time, the format has changed somewhat - from a full-blown DevCon, to a Hackathon and then ultimately to an online summit. However, we’ve now decided to delay this event. There are a number of reasons behind the decision but ultimately it can be summed up like this: we don’t want any developers focused on anything that might impact on the timescale for the release of Fleming.

As you’re all no doubt aware, SAFE developers are working at capacity. There are some epic shifts being pulled across the teams to get us to Fleming. And as much as the Marketing Team in particular would love to run these events directly, the reality is this type of event is absolutely aimed at a developer audience. That inevitably requires MaidSafe developer input - and with the team at capacity, to take any of them away from crucial work to prepare content, rehearse talks and generally engage in the event in any meaningful way would have an adverse effect on the delivery of Fleming.

We’re all fully aware of how important it is to keep growing the community and spreading the story in the meantime. But delivery within the timescale we’re working to requires laser-focused prioritisation. And anyone following the project should, we hope, now have evidence of that approach in action over the past months.

It’s also worth pointing out how important it is to have Fleming out in the wild by the time we hold this event. We intend to make a major splash with the release, and the result of that awareness will translate into a much larger and more valuable event for everyone concerned - from community, to press, to team members.

Whilst this may be disappointing to some, hopefully you’ll understand our reasons. If nothing else, it should be clear just how important Fleming is.

Onto other news: this week, we released the regular monthly round-up which can be found over on Medium, a bit later than planned due to team holidays. We’ve broken it down into front end and back end key achievements, with a short update on all the fab work marketing have done this month (humble brag :wink:). Of course, this came with a lotta help from the devs who have taken time away from coding to create tutorials, screencasts and podcasts (please note this essential work has shown us just how big an impact any potential event would have had on the team in practice). Give it 50 claps and leave us lots of lovely comments!

We’re also working with the team in Brighton and supporting the next meetup, so save the date of 21st November and get ready for an evening of SAFE chat. We’ll be able to announce speakers very soon, so stay tuned.

And a little Thursday afternoon treat for you all - we have the footage of the talk Dug did back at the Web3 Summit in August. So, here is @DugCampbell with Sam Williams from Arweave and Evgeny Ponomarev of Fluence Labs discussing perpetual data, network speeds and a world where data has no borders. Just to flag, the sound quality isn’t great but it hopefully gives you a feel for the Berlin event.

Vaults Phase 2

Project plan

We have been continuing to make the changes necessary to run multiple Vaults within a single section. We have expanded the testing framework with capabilities required to simulate multiple Vaults running and exchanging the information.

We are starting to get the first good results: only 5 out of 39 internal Vault tests are failing in the multi-node environment, and these failures are caused by not having a consensus for some of the client request types. We are focusing on addressing this, and we have also started moving towards the integration of the real (non-mock) Routing library with Vaults. We are adding new APIs in Routing in order to let Vaults use Quic-P2P and PARSEC (which are used only internally in Routing for now), and once that is done, we should be ready to start testing Vaults and integration with SAFE Client Libs and real SAFE apps.

SAFE CLI (Command Line Interface)

Project plan

The main focus during the last few days was creating a first PoC (Proof of Concept) implementation for having the Authenticator run as a daemon (we are calling it authd). With the aim of merging all safe_auth CLI commands into the SAFE CLI, and having a single CLI for all operations.

An API will also be incorporated as part of this plan. Thus any application (like the SAFE CLI) can easily communicate with authd without needing to deal with the communication protocol implemented by it. We’ve made some nice progress and we’re currently trying to finalise some of the APIs to showcase a complete flow of authorisation requests/responses going back and forth between authd and different applications.

We’ve also implemented some minor fixes in the last few days, and incorporated a new command for inspecting content on the Network. We already had the cat command which allowed us to not only retrieve any type of content, but with the --info flags it would also give us some additional information about the content and how that content’s location has been resolved from the URL provided. Given that in some cases (e.g. when retrieving the content of a large file) showing all this information together in a single command output is hard to inspect, we thought we needed a separate command for obtaining this additional information. Therefore, we’ve moved out this feature from the cat command to a new dog command.

We thought that apart from needing a companion for our lonely cat, the name dog would also make sense as it helps users to understand how URLs, linked data, and the different types of resolutions (NRS names, files paths, etc.) are applied to find the location of a content being retrieved. Right now it just shows the same type of metadata previously shown by the cat --info command. But we plan to keep evolving it to make it a powerful tool for inspecting content and linked data. This will be part of our very next release, but if you’re interested in learning more about it, a new section in the User Guide has already been added with information related to the dog command.

SAFE Network App

Project plan

We’re happy to be releasing the first version of the SAFE Network App to all you wonderful people!

We recommend that all users uninstall old versions of the SAFE Browser from their system before downloading and using the SAFE Network App to manage the SAFE Browser. This will avoid any confusion over different versions of the browser existing on your system.

Here’s a video introduction to what it is, and what it will become over the next few weeks and months:

For now it’s limited to simply managing applications (of which we only have one… the SAFE Browser). But this is only the first step. Soon the SAFE Network App will be your gateway to so much more. We’ve already started working on the next releases which will bring proper update management for our applications, and more. In the meantime, this release will work on macOS, Linux and Windows.

As ever, it’s early days for the software, so any and all feedback/experience is super welcome and appreciated!

Note: For intrepid Mac folks who are already running macOS 10.15, you’ll need to right click > open on the SAFE Network App.app to open it the first time. Previous macOS versions should work fine with the app signing currently in place.

Also, Linux users may need to make the AppImage file executable. Do this by right clicking and going to Permissions.

SAFE Desktop Browser

Project plan

After last week’s release, we’ve lined up some further fixes to the NRS resolution system, pinning down all relative assets to the current version of the site being displayed (previously they would be requested from the latest version which was both a) potentially buggy and b) not actually perpetual web-like).

We also sorted some other versioning bugs and have already added in a XorUrlEncoder API for parsing/managing XOR-URLs and generating them from XOR names. We’ll be releasing this alongside more APIs once we have safe-nodejs updated with a new safe-api release!

SAFE App C#

Project plan

This week we reviewed and merged the NRS API PR. With this PR merged, we now have all the new APIs exposed in C# from the safe-api crate :tada: alongside documentation for these new APIs.

We already have some unit tests to ensure these APIs return the correct data from the SAFE Network, so next week, we will add some more tests to cover advanced scenarios and perform integration testing with the local, and shared vault. In parallel, we will also be testing these APIs for Android and iOS. Once all the APIs are tested on all the supported platforms, we will release a new NuGet package.

Node Ageing

Project plan

We are quickly tearing through the node age tasks in parallel with a pretty major clean up of code and functions that aren’t required in particular, connection management, candidate approvals and timers are all history.

As part of our journey, features were added to mock or fill a gap to certain parts of the network until the real features came in (such as node age etc). We also had connection management issues with connection security and transport, but the implementation of quic-p2p sorted that for us. So we’ve decided to do this housekeeping now during the implementation of node age and that meant quite a large refactor of tests.

In addition, we implemented Rust-based cryptography (which allows us to increase speed and ability to work on multiple platforms). The node age tasks are going very well and we anticipate completion there very soon.

The team will then focus on the remaining parts of BLS and fold up into Vaults to get them Fleming-ready. There will likely be more clean up and UX work in routing as we go through launch phases, but that is all good news. Exciting days now as we not only see the light at the end of the tunnel for the routing crate, but our foot’s already in the light :slight_smile:

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:

93 Likes

First

Great update :grinning:

“Online summit after release of Fleming” Good decision.

46 Likes

second! And now off to bed - it’s 3am here. edit, if only I could sleep with such an exciting update! lol … hmmm, I knew I shouldn’t have waited for this to be released, I’ll be wired all night!

wired-no-sleep

41 Likes

Wooooot! Very busy but going to squeeze in a read soon and comment later but very excited to see a first release of SNAPP!!! :smiley:

Edit:

:+1: with flying colors Jim! Great vid and audio.

I think it was a good choice to side step the summit for now. Get Fleming in the wild and dev tools polished and then let the creation really begin! Nick and I were hoping to have something ready for the summit but it’s been proving difficult having to use work arounds since not all the data types are supported by the API’s or nodejs bindings, yet. We’ll get there and plenty to keep us busy until then.

The level of focus and progress coming from the @maidsafe team is to be marveled. Really truly appreciate all the effort every single individual is putting in to reach Fleming and beyond. We’re all rooting for ya! :rocket:

38 Likes

Thanks so much to the entire Maidsafe team for working so hard on all of this.

33 Likes

It’s a pleasure and a privilege

36 Likes

Nice video Jim!! …

30 Likes

Thanks! Hopefully the audio passes the Nigel test now too :sweat_smile:

29 Likes

Another smart move! Not getting distracted now in this crucial process is important. And giving devs the actual network to play with is key. Great work team!

29 Likes

Completely agree with delaying the online summit. For me, it felt like Fleming was always a bit of a prerequisite for this, as otherwise it would be an anti-climax. Much better to get Fleming done first.

Great to hear about the progress are the vault phases. This is really core to success, as we all know. I can’t wait until phase 2 is ready to play with!

Keep up the great work guys! You are doing the work the world needs done!

35 Likes

There is nothing but good news, good decisions and hard work here. It took me a month to catch up with development after my vacation, but now I am sitting here deeply impressed by the focus and pace. Aside from the hard work, this wouldn’t have been possible without the long and painful design phase really solidifying a vision that looks like it is working. It is getting increasingly difficult to stop foaming at the mouth with these updates. Awesome work all.

34 Likes

This is a very exciting update! Completely agree to focus on Fleming and delay everything that could adversely impact on it. Congrats for the release of the SNAPP. Plus I like the YouTube video @JimCollinson ! Keep doing the great work as always team! The whole community is enthusiastic! :muscle:

28 Likes

Excellent, something us not-very-techy people can actually use, albeit only a bit.

First thing I noticed is that the install splash screen is not based on windows, no big deal.
A bit of a bigger one is that the icon is almost entirely invisible if you have a darkish background
( also windows).
screenshot

For the rest it seems like a pretty great and smooth installation process, love it!

15 Likes

Totally agree with full focus on Flemming. Makes most sense that way. Looking forward to the splash it will create and hoping for a little tsunami even :pray:

15 Likes

This is also true for the default colors in the main menu of Linux Mint Cinnamon 19.2.

10 Likes

To add to the chorus, I completely agree with the decision to delay the summit so devs can focus on primary tasks. In fact, reading the intro reminded me why I believe so strongly in this project. Thanks as always—y’all are a paragon in this space.

15 Likes

Looks like a to do

9 Likes

Thanks for sharing it. I will download new version!

11 Likes

It’s tiring just reading about the progress! Sets off all twelve neurons I’ve got up there running around like over-tired children. Could this be the first request to slow down just a touch please?!

In all seriousness though, thanks very much to everyone for all the hard work. It shows, and always has done.

16 Likes

Its wonderful to read PARSEC, Vaults and Quic-P2P in the same sentence, thank you all the team for the great work! And thanks to the marketing team for these thoroughly written weekly updates :heart:

17 Likes