MaidSafe Dev Update - February 8, 2018

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

  • We will be holding a SAFE DevCon on Monday 23rd April in Ayr, Scotland. The focus will very much be on developers and the event will be livestreamed for those who are not able to attend.
  • We are delighted to announce that we have filled the Test and Release Manager role while we also have a new Rust engineer joining the team.
  • Earlier this week, the front-end team released a new version of the SAFE Browser (v0.9.0).
  • The front-end team will be focusing on UX improvements in the Peruse browser as the next wave of changes.
  • The C# bindings are being tested on mobile and the code for the messaging app and the authenticator for mobile is being updated with the latest C# bindings.
  • The Routing team is going to give test-driven development another go for the implementation of Milestone 1.
  • Crust is getting closer to fully encrypted communications.



We’ll kick off with some exciting news - we’re putting on a DevCon!

With the whole MaidSafe team descending on the HQ in Ayr, Scotland for a long weekend in April, we’ll be taking advantage of that fact that we’ll have everyone in one place by putting on a one-day conference. It will be held on Monday 23rd April at Ayr Racecourse (near MaidSafe HQ).

We’ll confirm the full agenda in due course but the focus will very much be on developers. Numbers will be very limited for this event, with MaidSafe covering the costs of accommodation for attendees on the evenings of 22nd and 23rd April. Food will be provided during the day as well. So if you are a developer and would like to come along, please email (please include your Forum name). If as we expect, we see demand exceeding the capacity, we’ll be drawing names from a hat in the interests of fairness.

Obviously there will be many who won’t be able to attend for a variety of reason so we’re happy to confirm that we’ve arranged for the event to be livestreamed, with the videos being made available after the event. Much more on this to follow.

Marketing Metrics

We’ve compiled a handy summary of SAFE Network marketing metrics over the past three months.

We’ll be working hard for improvements across the board and will publish these fairly regularly in future updates to allow you all to monitor progress.

Out and About

Team outings last week included @nbaksalyar giving a talk on Rust to a packed room out at FOSDEM over the weekend…

…and @dugcampbell speaking on a panel at Glasgow University yesterday on decentralisation and the rise of FinTech.

This Saturday (10th), @dugcampbell will be at the Durham Blockchain Conference - so do say hi if you’re planning to head along.


As you are aware recruitment has been, and continues to be, a major focus for MaidSafe. Growing the team will increase our capability while improving the speed, reliability and usability of future releases. We are delighted to announce that we have filled the Test and Release Manager role while we also have a new Rust engineer joining the team. Both candidates are currently working their notice periods and we will introduce them to you in due course.

SAFE Authenticator & API

A new version (v0.9.0) of the SAFE Browser was released early this week. The main objective of this release was to upgrade Electron to v1.7.11 and to port all DOM API changes, enhancements and fixes we’ve been working on during last few weeks on Peruse in order to make all existing applications fully compatible with both browsers. Please look at this post for more information and details for downloading it.

We continue to maintain our safe_app_nodejs package, this time by just upgrading the safe_app library to the latest available version (v0.6.0), as well as researching on features/functions that can be incorporated for the next version.

We continue working on stabilising Peruse and adding features which will ease the development job of it, e.g. we are working on being able to connect with mock routing, or otherwise with the actual network, without the need to re-install or re-build the Peruse application but by just providing an environment variable. We are also trying to focus on enabling automatic tests for the DOM API and the Peruse UI itself which can be integrated in our CI environment.

More time has been spent this week in discussions related to UX improvements in the Peruse browser. We are planning to freeze the list of changes/enhancements by this week and get them as tasks into JIRA. The team will be focusing on UX improvements as the next wave of changes.

The C# bindings are being tested on mobile. There are a few issues on mobile with the C# bindings and we are looking into them right now. The code for the messaging app and the authenticator for mobile is being updated with the latest C# bindings. Once the test cases pass on mobile, we will test the applications with the latest bindings before we get the code merged to upstream.

SAFE Client Libs

This week we added FFI tests to Client Libs to rule out a possible source of memory leaks, brought up by this JIRA task. We also removed a hardcoded toolchain version in CI which was preventing the CI from deploying release artifacts. We have deployed the missing release artifacts.

Routing & Crust

The tweaking of the ageing simulator is completed. One major finding is that an age of u8 (an unsigned integer of 8 bits) is found to be sufficient with the current setting of ageing and relocation rules - this means the maximum age of a node would be 255 (note: the starting age will be higher than 0). We’ve detailed JIRA tasks for the Milestone 1 implementation and started to prepare the codebase (dev branch of the Routing repository) for the implementation work. We’re going to be giving test-driven development another go for this milestone. This will involve one developer completing the tests for a given task before a different developer writes the actual code to be tested. This should force the tester to think very deeply about the part being tested (its implementation and API) whereas normally he would have had existing code to use almost as a mental crutch while writing the tests.

We now are embarking on the journey to code Milestone 1. The tasks have made it to JIRA, under the label, dc-1 for devs to pick up. This milestone reorganises certain parts of Routing and as we can all guess the introduction of data chains and improved security is an involved change. It is necessary to create a foundation for other new features to be built on top of it.

There is an active discussion about how to handle data density attack (raised by @mav) in the forum, and some promising approaches are being explored.

Crust is getting closer to fully encrypted communications. This week we implemented encryption for direct and bootstrap connections and with that in place it’s only service discovery and address echo requests that are unencrypted. Which we’ll hopefully get working by next week. Also, network simulator will soon be ready for use. This week we’ve been working on reusing some code from smoltcp which is a pure Rust implementation of a TCP/IP stack. We’re also proud to note that we made some contributions to this library :slight_smile:


Great, first, yeah!!


Yay, second one to post.


A new version of the SAFE Browser (v0.9.0). SAFE DevCon will be livestreamed
:grinning: Excellent news .


speed is really picking up ey? i’m trying not to get too used to it but seems like every update now contains one (if not more) major announcements :slight_smile:


i wanted to look into unity2/3d & c# crossplattform development soon - so i am super-happy you are going down this road :smiley:


This is a AAA dev technique. Sounds like somthing Elon Musk would do. Musk has defied all the naysayers by inspiring his employees to use their brains all day, and in their sleep. He is proving that anything is possible, and so is the SAFE team. Great work!


Thanks Maidsafe devs for all your hard work.

Jippy another SAFE DevCon and super that it’ll be livestreamed (that’s how you attract people, video video).

I’m still looking for SAFE Network specific devs (this is so incredibly hard), it would be nice if Devcon visitors could also be connected to companies/projects.

Keep up the good work

Here is my insane metric, I don’t advertise my website but for like 8 months it’s like this.



Steady as she goes!!! Very exciting to hear about SAFE Devcon, I wish I could attend to mingle with all the good folks that will be there but I’m happy to catch the video. Nice progress and exciting days for routing and Data Chains :smiley:


Count me in!! :smiley:


Welcome to all the new folks and great to see a SAFE Dev coming. As always a lot of stuff going on! Keep up the good work :+1:.


that is really cool :slight_smile: it will make life much easier

Thank you for the great news once again ! It really feels like the day is about to rise :slight_smile:


Let’s go SafeNetwork!


Thanks so much for all of your hard work! The progress has been fantastic!


Great progress and Lotsa new faces and awesome projects on display here. Someone here mentioned parallels to Elon Musk and his inspiration. Totally agree.
Nicely done @maidsafe.


Great work all. DevCon will be amazing - hoping to snag a place, and I’m sure it’ll be great for all of the MaidSafe team members to get together in one place for a few days.

Also great to hear that implementation work on data chains is getting started. Looking forward to the results.

Keep up the amazing work!


I don’t pretend to know all, or even most, of the details to routing. But 255 does not seem like a large number. Will this be large enough for nodes to be able to scale well? I’m thinking when there are hundreds, thousands or millions of nodes running around in the network.

Also how is the SAFE Accadamy coming. I confess I saw it in an update but haven’t really seen much of it since. I don’t really understand the APIs that well but I do understand language bindings allow for the creation of APIs and that in turn helps development of new apps. With all the new bindings being created for so many different languages this impresses on me how many different programming languages SAFE will be available for and how fast app development will take place. Hence I’m interested in learning a language or two and how to code with it.

Very exciting updates! I’d love to come to devcon but may make do with the live streaming given it’s on the other side of the world :grinning:

Nice to see the 2 developer TDD approach, I’m sure that will result in some iron clad tests!

1 Like

Think of it as stages Nodes can be at.

So one stage for entry (say “5” for newborn), another for misbehaving nodes (say “4” to “1” then kicked out)
one for toddler (say “6”)
one for very young (say “7”)
and so on till elder (say “15” upto whatever)

Its not to say how long but what stage of ability./trustworthiness they have obtained


Okay cool but what happens (theoretically) if a node stays connected long enough to reach stage 255? Are they like “The Ancient Ones” or something? Grand sages that no one questions? :slight_smile: