MaidSafe Dev Update - February 9, 2017

Yesterday, we released Test 12b. The logs confirm that the network is working as expected. We will continue to run it and analyse its performance. In the meantime, the parallel tasks of the updated client APIs have progressed to a point where we can showcase these. This has been a priority for us to enable third-party developers and projects to use the API as soon as we possibly could.

We hope that developers will enjoy this new experience, however the large task of documentation including tutorials and getting started guides are underway but not yet available. We anticipate that once again we will start promoting the Community Engagement Program to assist in documentation, use cases and further enhancements to the core network protocols.

The client binaries can be built locally by following the instructions in the README from the respective repositories.

In case you hit any issues, please report them here: safe_browser, safe_app_nodejs.

SAFE Authenticator & API

It has been a very productive week!

We completed the integration of the FFI bindings for authenticator and also the Node.js API. The safe_app_nodejs API seems to be stable with the initial set of test cases now passing. :tada: We will continue to expand our test cases in the week to follow and improve the API. Gabriel (@bochaco) was quick to get an understanding of the APIs and he has been contributing to the Node.js API along with Ben (@lightyear). We also added a few minimal examples to the Node.js API to showcase its usage.

@Shankar integrated the authenticator with the SAFE Browser. We’ve been testing the authenticator using the examples from the Node.js API. The UI for the authenticator will be improved. Also, there is more integration testing to be performed in the following week.

The plugin to handle the safe: protocol with the new changes has been integrated to the SAFE Browser, which allows browsing of static web pages. DOM APIs are not yet injected for building dynamic web applications.

We are refining the build and installation process of the browser and the Node.js API. Right now, it involves a bit more manual work, but we will be working towards making it easier. We will also wire up an Electron app to allow hosting web content.

The SAFE Browser and the Node.js library currently work against mock routing.

Here are some screenshots of examples running along with the authenticator:

Worth noting that the handling of the IPC response is not part of the CLI example. We will be using the system_uri crate to handle this in the next few days. The authenticator currently prints the authentication response to the console. This is to allow copy-pasting the response in the CLI example.

SAFE Client Libs & Crust

The Mio-6 bug, which causes failures in Crust and is essential to be resolved before we can port Crust to it fully, seems to have turned out trickier than expected. When we reported random failures on certain scenarios in Crust which we could simulate, Carl, the author of Mio, looked into it and found potential race conditions in the Mio poll function. He plans to rewrite it and is currently on it, resolving this and probably other issues in Mio. In the meantime we continue keeping Crust master to legacy Mio (v5).

Crust has been modified to currently not allow vaults to bootstrap if they fail to be reachable externally. Also, we have disabled NAT traversal just now for peer-peer connections due to too many simultaneous open file descriptors since Routing can now potentially connect to many nodes simultaneously and NAT traversal ends up using more than a couple of socket descriptors per peer to try and punch holes. Since vaults are allowed to bootstrap only if directly reachable, this is OK for now as peer-to-peer connections can reuse that same direct reachability.

Some of the user facing logs have also been improved in Crust.

Routing & Vault

This week we spent most of our time analysing the findings from Test 12, doing some more in-house tests, and preparing Test 12b accordingly.

We also continued refining our longer-term plans regarding data chains and are making steady progress working through the missing details to take it to the implementation phase.


rad! going to download and have a play now!


Wow guys, it’s nice to be able to see all the hard work from this end again… now that disjoints aren’t sucking up all the man hours.

Really impressed! The fresh blood appears to be settling in well too.

Things are looking so exciting I’m ready to burst. I can’t quite believe you might pull this whole thing off. It just seems so surreal. I can’t wait for the rest of the world to realise exactly what you’ve been doing here and what it will mean. It feels like a few people are starting to catch on, but there’s a steep learning curve that I guess most won’t have to go through because they’ll just see it all in action and it’ll be obvious at that point.

Even 18 months on I still have moments where I just have to sit down and take a moment because it’s all just too much. I can’t deal with trying to contemplate all the millions of implications we’ve talked about. I get lost. Like I can’t see the wood for the trees. It’s all just too big for my little brain :astonished:

Crazy time to be alive. I feel very lucky to have a ring-side seat.


excellent news =)

:tada: :tada: :tada: :tada: authenticator coming :sunglasses:

very very cool! i’m so looking forward to testing the authenticator and mutable data =)
so much news lately - things really seem to accelerate


TEST 12b still going strong here from a Vault’s perspective. I made several accounts and filled them up with private data. I did quite some downloads today and it worked fine. Great to see SAFE take up a folder with 480 MB without any trouble. This did gave trouble in some older test networks.

Nice progress on the APIs and Browser. We’ll see it when the binaries are launched :+1:.


Great to have safe_appjs available!!! I’ll be passing that along. And the authenticator! I had checked out Carl Lerches github and it looks like he’s on it! He even joked about rewriting everything :stuck_out_tongue_closed_eyes: and he’s coming along with iOS it looks like so. Step by step we’re getting there :slight_smile:


Another week another big step forward. Congratulations devs! :tada:

I’m stuck on building SAFE App Node.js though. Can someone help me out?


Awesome work with all the updates lately.


Same, I’m stuck at:

could not find Cargo.toml in /home/dav/safe/safe_app_nodejs/system_uri or any parent directory

node version is 7.5
rustc 1.7.0
cargo 0.8.0

I also can’t access the safe authenticator login page by entering the URL in the safe browser. Got the browner from a git clone and built the master branch following the steps inside the readme file.

1 Like

@DavidMtl @JPL

system_uri and native folders are submodules. Pull them in with git submodule init and then git submodule update

git submodule docs

Update rustc to 1.14.0. Are you using rustup as a toolchain manager?


Is there a zip for normal people to download and try the safe browser with Authenticator built in?

(no prob if not I know this is a dev update :grimacing:)

1 Like

@maidsafe For CEP and/or the bounty program, is there a central place where project needs will be posted?

I know this is far into the future and would add a lot to the dev work load but I’d love to also be able to get involved as a junior developer in exchange for mentorship instead of money.


@hunterlester . You’re a very competent person. i doubt you will have much difficulty becoming part of the core team in short time. Providing the community with binaries for new and future raw code like this recent browser update will no doubt be appreciated and indicative of your capabilities. Bridging this gap could be your first and continued widespread contribution. :slight_smile:


Very cool love to see the progress every week!


Wow Thanks Maidsafe devs, this is awesome (Everything is awesome, Everything is awesome when your part of the team…) :stuck_out_tongue:

Time to check the new goodies


Sorry for my ignorance, but how can we get a notification like this for SAFE Network sites, when someone tries to get to a safe:// site with a different browser? Basically a popup saying a newb to download SAFE Browser with a link to it, like so:

A little instruction vid how to set up SAFE Browser + SAFE App Node.js would help.


safe://xyz in firefox on linux appears to bounce to yahoo search… so, perhaps where SAFE is a top result for safe, it’ll be apparent.

The alt I wonder would be for the forum to be tweaked that safe:// urls are pointed to some maidsafe info page explaining the need for a browser.

1 Like

Alright thanks, got further, now I’m getting this:

npm ERR! Failed at the safe-app@0.0.1 build-safe-lib script ‘cd native/safe_app && cargo build --features “use-mock-routing testing” && cd …/…/ && cp -f native/target/debug/safe_app ./src/native’.


Tell the author that this fails on your system:
npm ERR! cd native/safe_app && cargo build --features “use-mock-routing testing” && cd …/…/ && cp -f native/target/debug/safe_app ./src/native

I’m using rustc 1.15.1, any idea?

1 Like

According to @frabrunelle there may be a bug in 1.15.1, so may need to try 1.14.0 instead.


Definitely try 1.14.0

Did you install 1.15.1 as a binary directly from or with rustup?

Which OS are you using?