SAFE Network Dev Update - August 1, 2019

Summary

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

  • We published a blog post about The New Digital Economy, the last topic in our series on the Front End milestones.
  • Vaults phase one is complete.
  • SAFE Mobile Browser for iOS and Android are both now available.
  • Adding NRS commands to the SAFE CLI has been completed and is being tested by QA right now.
  • Legacy data types are now deprecated :tada:

Marketing

How time flies - we’re in a new month already! If you’re eager to get a round-up of what we did in July, head over to Medium for a highlight summary (and the forum version here). We’ve reformatted the layout slightly to align better with the weekly updates and the project boards, so let us know if you like it.

We also concluded the series on the Front End milestones, with the final in the series, the New Digital Economy, going live this week on Medium and the forum so, as always, please show it some love :heart:. This article was also timed perfectly with the release of the Netflix documentary ‘The Great Hack’ (who’s watched it?). And while we’ve wrapped up this series, we’ll continue to explore these Front End themes as they become living, breathing parts of the Network.

As we’re now in August, this is also a timely reminder of what events we’ve got going on. We’ll be at the Web3 Summit in Berlin with @dugcampbell speaking on a panel, and @joshuef and @cgray in tow. We’d love to catch up with any of the community while we’re there so drop us a line if you’re around. Straight after, there is a meet up in Brighton, with @jimcollinson heading down to speak all things UX. If you’ve loved all the Front End focus this month, then you should try making your way to this meet up. And last up, the man himself @dirvine will be speaking at the Turing Festival, which is in Edinburgh, with a talk entitled: Secure the Data, Not the Hardware. All the details including locations, dates and registration/tickets are all over on our events page. Hope to see you there!

To finish on some team news, we’re sad to say that Krishna, after a 4.5 year stint in the Chennai office, is off to pastures new. As with most big decisions, this was not taken lightly, in fact, Krishna had been thinking about leaving for a few months. However, with the Chennai office still in its infancy, he took on the task of making sure it was established properly in order to run smoothly. And it is; the office runs like clockwork, and that’s due to a lot of hard work by Krishna.

The good news is what Krishna will be doing now. Alongside his wife, they run a community-based restaurant: they give profits they make back to their staff and community. It was the principles of MaidSafe that inspired them to build their restaurant in such a way so that it was all about giving back. Not only that, but we hear the food is fantastic!

Krishna has been well appreciated by the team in Chennai and everyone else at MaidSafe who has worked with him. We wish him all the best for his future and we’ll no doubt see him in and around the forum!

Recruitment

We continue to recruit for Software Engineers to join the team. Previously, our sole focus was to recruit Rust developers, however, we have changed the requirements of the role.

We are now looking to hire a Senior Software Engineer who can work across both front and back end, who has experience with one or more of these languages: Rust, C#, .Net, Java, JavaScript (and the willingness to learn other languages with us). If you head over to our careers page on the MaidSafe website you can find additional information on the role.

SAFE CLI

Project plan

The POC public name milestone has been completed and is being tested by QA right now. This enables adding public names: safe nrs create safe://duper.cool -l <target xorurl>, adding subnames to existing names: safe nrs add safe://super.duper.cool -l <another target xorurl> AND removing subnames if you should want to do that safe nrs remove safe://super.duper.cool. All of which should form the basis of the next generation of websites on SAFE. For those who want to toy around with this against a mock-vault, you can follow the instructions in the user guide.

From here, we’ll soon be looking at how best to integrate these new APIs with the SAFE Browser in some - experimental - form.

Other than that, there’s been several PRs adding more tests, and improving the UX of the CLI with more clarity around wallet keys and payment for operations with a new --pay-with flag for certain operations (which would otherwise fall back to the account’s default wallet).

SAFE Network App

Project plan

We’ve been steadily improving the initial prototype here, with PRs for menu options, window and user preference management all having been merged in the last weeks. From the get-go, we’ve been using TypeScript in this project, and have been pretty fastidious in setting up E2E test functionality too, all of which should hopefully keep the application stable as we continue to iterate on this project.

SAFE Mobile Browser

Project plan

After last week’s mobile browser POC release for Android, we started to work on a new iOS app release setup. Thanks to the community members - @Nigel, @upstate, @feinberg, @seasonedirate - for their efforts and positive feedback, this allowed us to test the release setup.

Using this new release setup, we can easily distribute the existing and upcoming mobile app to registered iOS device users without having to build it from source.

We are happy to announce that SAFE Mobile Browser v0.1.1 for Android and iOS is now available :tada:. Check the forum posts (Android releases, iOS release) to install the app and start browsing websites on the Alpha 2 network.

It is worth noting that this release includes one known issue where iOS users are unable to connect to Alpha 2 if they are using their mobile data instead of connecting to WiFi. But don’t worry, an issue has been raised and the team are working on resolving that as soon as possible.

This release includes some bug fixes, we’ve added some nice features like enabling a zoom in / out feature on Android devices, and now you can open any safe:// URL directly from any other app on iOS devices (like email, contacts, notes) :raised_hands:.

All the features targeted for v0.1 have been released and we have already started work on new features for the upcoming release(s).

New data types in SAFE Client Libs

Project plan

It’s been yet another action-packed week for the SAFE Client Libs team. Over the last week we merged some important changes into the experimental branch that included using the new account packet flow for create account and login, and replacing PUTs with Safecoin to pay for mutations. A client now uses a deterministic identity generated from the user’s credentials which is used only to put, get and update the account packet. This identity was previously held within Routing so we could use it to sign requests sent to vaults. In order to make the Client Libs easy to integrate with quic-p2p, we removed the field from Routing and replaced it with just the public ID (since that’s the only field which would be held by the quic-p2p connection). This made the introduction of quic-p2p into the Client Libs quite simple.

Another significant change implemented this week was the deprecation of the older data types! Yes, that’s right. The legacy data types have been deprecated and the client API now only sends / receives data to the mock vault via the new data types. This is another important step towards integration with the vaults phase one. We were able to do this quickly by keeping the existing Client API as it is and converting data at the API layer before sending it to the vaults. This completely avoided all breaking changes in the test suite and FFI layer.

Now the library is only missing the final piece of the puzzle, quic-p2p, which, by the way, is being integrated very quickly.

Because Routing dependency is not a part of SAFE Client Libs anymore, we came up with a new design to represent connections to Vaults without Client Libs having to know anything about intricate details of the network structure (like which group of Elders we should connect to). Despite having only one Vault in the Phase 1 milestone, we decided to think ahead and prepare for the introduction of sections. So instead of sending requests through Routing, we connect to a group of Vaults and send requests to everyone in this group. In the coming few days we will be ready to do integration testing of SAFE Client Libs with the new Vaults.

And while a part of the team integrates quic-p2p in SAFE Core, the updating of the test suite to use only the new Client API has already started. We’ve started changing the internals of some modules and tests to use the new API directly instead of going via the older API and conversions, as previously mentioned.

Today we identified a required refactor of the Self-Encryption crate which now assumes the address of the data is its hash which is not the case for unpublished immutable data, causing an address mismatch and thus Error 404 :smile: More details in this GitHub issue. We are excited about all that the upcoming weeks hold in store for us and hope you are too!

Vaults

Project plan

As you’ll see from the project plan, Vaults phase one is complete! :tada: We managed to get the final few tasks coded, tested and merged this week, and even found time to get some niggles and todos picked off. This has included some cleanup work in safe-nd.

We’re hoping within the next week to have the ability to test phase one vault by running the SAFE Client Libs test suite against it. At this time we will release the vault and update SAFE Client Libs. In addition, the CLI tool will also be available for everyone to get used to working with Safecoin and payments.

Now we’re moving on to the next exciting installment of vaults: planning for phase two (of four).

Secure Message Delivery

Project plan

We are now progressing three tracks of development all converging to get Secure Message Delivery functional.

On the main track, we are putting together a PR that will provide the signatures and chain of proofs linking to the last version of the sending section we were trusting. This will give us a great end to end view of the solution but may need parts of the other tracks to complete before we can fully test it and merge it.

We also progressed the parallel track with this PR and more is coming. This will allow us to know which version of our section other sections trust, and use that to send the shortest possible chain of proofs when sending a message. This is critical: In the normal case there is no proof to send since other sections will very quickly come to trust our last version, but without it we would send many proofs.

The final track aims to ensure all elders in a section have exactly the same view of the network, so they can always take the same decisions. Some preliminary work is now complete and we are making progress on the main body of this work.

88 Likes

Fantastic stuff (I trust). looking forward to reading!

…Now I’ve read the update - amazing work! I’m a fan of the monthly update format, and along with the weekly update format I particularly appreciate the links to click & see live progress on various tasks.

The introduction to the new digital economy is fantastic, and I look forward to more on that, as it’s such a big and important part of what the Safe Network will offer.

I wish @Krishna the best on his new venture, and well done for all you’ve invested into MaidSafe and the Safe Network.

29 Likes

Not first, and really enjoying it. :wink:

Hey @krishna, I’m sad to see you leave but very happy for you in your new venture. If I get to revisit Chennai I hope to eat at your restaurant, and am excited to hear about it if you would like to post something. All the best my friend :smile:

Update Comments

How Maidsafe are keeping up this pace I don’t know, but it is fabulous to watch. We’re getting all our long awaited Christmases at once, a new surprise every week. I’m very excited to see several parts all converging rapidly to deliver the new data types, Vault and APIs in one giant leap!
__

Solid on SAFE Micro Update

Despite being on holiday, or perhaps because of it, I’ve made some great progress this week. I’ve tested my libraries with three different apps, which is really encouraging because each uses different builds of the Solid on SAFE libraries in different ways, and each has a different workflow for login etc.

And a special mention for the incredible @dimitar who has translated my recent Solid on SAFE Update into Bulgarian! And he made the graphic above which I have stolen :grimacing:

Surprises coming from all directions this week. Thank you very much Dimitar, you really are an incredibly helpful and hard working chap.

Solid Apps and Libraries

I now have three libraries that enable a Solid app to work on SAFE, including using a SAFE WebID via the experimental drop down in SAFE Browser.

These apps are all virtually unmodified, and can be deployed as is on either Solid/web, or SAFE Network:

  • Plume blog - as before, but now getting author info from your SAFE WebID profile and logging in using Solid only code (no SAFE specific hacks)! (github).
  • Solid Filemanager - view, create and edit files at any SAFE location. (github)
  • Solid IDE - view, edit and test your web apps / web pages directly in the browser using ace editor (with syntax colouring, and key bindings for popular code editors). (github)

And the Solid on SAFE Libraries I support are:

All of which use SafenetworkJS to talk to SAFE using a Solid LDP interface via fetch() and/or rdflib.js Fetcher.

Getting a Solid app working on SAFE can be as simple as replacing the Solid library with the Solid on SAFE equivalent (and crossing your fingers :wink:).

EDIT: If anyone wants to help move the Solid on SAFE work moving faster, I have outlined some ways in this post:

37 Likes

thought there were 3 phases for vaults. Was something added lately?

1 Like

Vaults coming soon?? :smiley: oh joy!

iOS testing of the SAFE Mobile Browser has been fun! I can’t wait to see this happening on Fleming and more sites popping up, apps and dynamic content being supported. Let me just say it’s off to a great start, for real.

Before we know it we’ll have rolled over a decade long hump and momentum will be on our side. In this reality the grass is greener on the other side and we’re almost there folks.

@Krishna it’s inspirational to hear that your time @maidsafe has make a personal impact on your ideals and that you used your autonomy to spread that to your community. That’s a noble effort and one I bet everyone appreciates. Someday when international travel is more realistic for me, I’ll try to give your restaurant a visit. :slightly_smiling_face:

32 Likes

Yea, what a nice guy he is. He will be still doing software development as well though and who knows. Maybe back in maidsafe, the door is definitely open. at least he will be on SAFE which will be good too.

25 Likes

Great progress this week! It looks like bad weather and no more holidays?

2 Likes

Most welcome, @Nigel. Thanks for the wishes!

Yes, indeed MaidSafe was inspirational in regards to how it functions. I have imbibed a lot of good traits from all my colleagues who I have worked with. Humility is a trait that you can find common with the guys at office though they are exceptionally good in their own field of work. I am sure that I ll be holding my head up for all that we could accomplish in this duration. And of-course, nothing would have been possible without team’s support and this exceptional community.

I would definitely like to thank everyone in the community for the supporting me and guiding through the discussions all through these years. I must admit that I learn’t a lot reading all the varied threads from the forum.

Thanks @DavidMc0. However, I would like to clarify that I am not managing the shop directly. I will still be perusing other opportunities in the immediate future. I got relieved last Tuesday from MaidSafe and would be moving to new assignment in couple of weeks.

Thanks a lot @happybeing. Will be more than happy to host you :smile:

On the restaurant: We have been running a prototype for the last year and a half. Our idea was to start a business and make it inclusive. Inclusive - without discrimination of any kind. Build a platform that will help people to empower themselves in the direction which they feel is natural for them. Hence, we wanted to set up a Social Enterprise and see how realistic this could be. We started on a small scale and learnt a lot. Now we have a good team, who take complete ownership of the e2e operations of the business including finance. Everything is managed by them. Important thing here is that, no one is skilled in this field including us :wink: We all learnt everything together and have been growing together. We wish to expand, nurture this attitude and spread as much as we can. Since, it is a prototype we started in a remote location and that doesn’t help in financial stability of the business. Hence, we will be moving our operations to the city center soon with the hope and a concrete plan to scale the business and our values as we grow. We are working on potential investors etc ATM. We fund their education, help them get trained in the skill of their choice. You can read a short article here

Thanks a lot @dirvine :slight_smile:

48 Likes

That’s a fantastic initiative @Krishna, very moving to read.

It reminded me of an amazing BBC radio 4 program a few weeks ago describing how someone who was really into cricket was visiting India, and it all ended up with Indian street kids forming teams and competing with each other for a trip to play the final at Lords. A very beautiful story, hearing those kids tell their stories and follow them to see how cricket affected their lives and some get to make a trip to play at Lords. I know cricket is like a religion in India! :heart:

18 Likes

Thank you, team, and thank you, Krishna.

14 Likes

Update to an update: we’ve had our first test results running just now. :smile: There are some failures but we already know the cause and how to fix it. So now we’ll focus on making sure everything runs smoothly. Exciting times!

40 Likes

Great update as always Maidsafe devs.

It’s insane how fast things are going now.

Thanks for all your hard work @Krishna and good luck. btw does your restaurant accept SAFEcoins? :sweat_smile:

:yum:

Jippy another 40 euros from a friend that’s now Maidsafecoins


:stuck_out_tongue:

19 Likes

Brilliant work, the velocity of these Engineering teams is mind-blowing right now. A great bunch for sure, really makes all the effort worthwhile. Thanks, @nbaksalyar , @marcin and of course @lionel.faber and the rest, top drawer guys.

26 Likes

Very nice - keep up the great work

14 Likes

Every week the updates are more and more tremendous, furthermore during the holidays season.

No vacations for the team? Some rest is needed after such fabulous work, to avoid burnouts and to be able to sustain this pace on the long term.

21 Likes

I hear they currently sustain themselves on the global tears of those who have had their data abused. No time for sleep when we are on the cutting edge of a revolution of the internet itself :smile: ! I generally prefer the approach of late night code grind hard all week and then sleep like a bear in hibernation all weekend.

15 Likes

Another amazing update! The increasing momentum is so palpable!

All I have to say is, Fleming is going to blow people away :smile:

15 Likes

Great update and progress team. I don’t know how you maintain the pace
@Krishna thanks for the hard yards over the past years but a restaurant in Chennai? Really? I thought you guys had just about run out of water. Now that’s what I call a high risk venture compared to Safenet

15 Likes

Fleming…Fleming…Fleming…Fleming…Fleming…

8 Likes

Seems things are starting to move quite fast now. Great work by all involved

@Krishna, always sad to see those who have been a part of the backbone of the development team leave. But it sounds like you have an amazing adventure in your new pursuit. Enjoy life and live it to the fullest.

22 Likes