MaidSafe Dev Update - April 12, 2018

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

  • The Marketing Team have been consumed with preparations for SAFE DevCon 2018 during the last week. As mentioned yesterday, we may be able to squeeze in another couple of people at the last moment. So if you’re interested in joining us, contact @dugcampbell here or by email (
  • During the last week, the SAFE Client Libs team has been continuing to improve the language bindings (Java, C# and C remain our top priorities). Generally, the language bindings are getting close to production. The only missing part is full support for the C language in safe_bindgen which is almost done.


SAFE DevCon 2018

The Marketing Team have been consumed with preparations for SAFE DevCon 2018 during the last week - a never-ending stream of emails, conversations, orders, hoodies etc! However, all is shaping up very nicely for the big day. For everyone that’s coming to Ayr on Sunday 22nd April for the event on Monday 23rd April, you will receive an email tomorrow with further details of your hotel booking and transport arrangements for the day.

As mentioned yesterday, we may be able to squeeze in another couple of people at the last moment. So if you’re interested in joining us, contact @dugcampbell here or by email ( You’ll get a couple of nights’ accommodation and food - but most importantly get to meet some of the community face-to-face.

We have also been preparing for having most of the team in one place at our HQ in Ayr the weekend preceding DevCon. The weekend represents a rare opportunity for everyone to get to know each other a little better during a couple of days of work and play. For many, this will be the first time they have met so getting this fresh perspective will not only be enjoyable but will help maintain the company culture that can be difficult to instill in teams as decentralised as ours. A few of the guys are taking extended stays so this face-to-face communication will also enable in depth discussions on technical solutions.


@nicklambert was a guest on the Declare Your Independence radio show with Ernest Hancock late last week. @SarahPentland was also interviewed by popular YouTuber The CryptoLark earlier this week - so keep your eyes open for that interview going live any day!

SAFE Authenticator & API

@lionel.faber has been making good progress with the Java bindings integration. The basic JNI APIs are being integrated and unit tested on desktops as a first step. The issues that were discovered are being addressed with help from @nbaksalyar. Once the basic unit tests pass, the test cases will be expanded to use the Authenticator APIs. The CSharp APIs are also progressing well with the integration of the latest CSharp bindings. We are testing the example apps on Android and iOS this week and once the apps are confirmed to work on these platforms as expected, the latest code will be merged upstream.

We’ve pinned down and negated some CI bugs for Peruse, with the dev branch looking much healthier now after the refactor. We’re now concentrating on fleshing out the end-to-end test suite and making sure everything is stable, both in terms of the browser and the updates to the DOM API, which will be of great value for assuring quality as we add new features moving forward.

As you know we are also working on the dev website and we have dedicated some important efforts to this to have it ready as soon as possible. We don’t have much details to share about this at the moment, just that we continue gathering information and feedback from the forums to shape it in the correct way to make it useful and easy for developers to use. In addition to this, as you can imagine, the front-end team as all others are helping in the preparation of the DevCon from different aspects.

SAFE Client Libs

During the last week, we have been continuing to improve the language bindings (Java, C# and C remain our top priorities). We have fixed the issue found by @lionel.faber that we covered in the previous update and now we don’t see any NullPointerExceptions in Java code. Generally, the language bindings are getting close to production. We have raised a pull request to integrate the bindings code with the master branch, making them officially supported. The only missing part is full support for the C language in safe_bindgen which is almost done. We are currently working on automated integration tests and code samples. Current progress can be tracked in this repository.

@marcin is working on improving get_if_addrs by making it harder to write unsafe code. He is investigating ways to update the API and lower the number of unsafe blocks. In addition, the revocation bug fix that was being worked on in MAID-2616 has been reviewed and approved, and we will now be testing the new code thoroughly (MAID-2618) as it is critical we get app revocation right. Also, the final Rust upgrade PR has been approved and soon all of our Rust crates will be at Stable 1.24.0 and use Clippy version 0.0.186.

Routing & Crust

No Routing update this week. We are still finalising some exciting developments there. See last week’s update for more info:

In Crust we slightly simplified the Service interface:

  • Service::prepare_connection_info() was removed from the public interface
  • Service::connect() now takes a connection info relay channel instead of two structures: our and remote peer’s connection info. Crust users don’t have to deal with connection info anymore - that’s handled by Crust itself.

We also discovered that on some routers LAN peer discovery was not working. We were using broadcast address which is not handled by some routers. So eventually we used broadcast addresses for specific subnets, e.g. which seems to work on all our tested devices. It’s worth mentioning that we found that netsim is not working on Debian 9 and Ubuntu 16 systems. Reasons are yet unknown and we’ll keep investigating. For the lucky ones who don’t run those systems, we released a new netsim version which adds basic firewall functionality. Now it’s possible to block packets originating from specified addresses.


Great stuff - earlier than expected.

DevCon is going to be epic, and is rightly taking up significant focus!


Second, this is my first time. :sweat_smile:

Really it would have been awesome to be there. But someday I would, definitely to meet the whole team.

I thought the development would be linear so it would take time but each weekly dev updates are crossing my expectations and I am sure it is more like exponential progress. I can feel the network around the corner.


Third (5 characters)…


Great update about routing this week…‘We are still finalising some exciting development’. I don’t need a lot of words :wink:


Good on you @SarahPentland for reaching out to a pretty popular youtuber! CryptoLark is a lot of people’s first stop into the crypto sphere, excellent work and looking forward to it.

Hoping we see the Safecoin video at DevCon :stuck_out_tongue_closed_eyes:
I’m not so sure about huge project updates from Maidsafe at DevCon, I feel like that would have been too hard to predict but DevCon is going to be sweet!!! Bravo @maidsafe!


Mmm java bindings! Yum yum! I’m going to have to dust off my old java fuse repo and get it integrated! :slight_smile:


This is excellent news! Can’t wait for this interview to drop. I also really enjoyed listening to Nick’s interview with Ernest Hancock.

Marketing racing full speed ahead, DevCon around the corner, the SAFEnetwork coming together full throttle—there are just too many things to be excited about right now! It’s like watching an epic painting coming together. :smile:


I haven’t read it yet but I guess it’s an excellent update as usual. So, thanks for this great update!
I promised to make a graphic for this update but due to personal issues I can’t. I’ll probably have a lot of not too fun stuff to deal with in the next couple of weeks, so I’ll put my creativity for this forum on ice for a little while :pensive:


Oh, well. Why try to sleep. This was actually quite therapeutic :smile:


Nice update Maidsafe devs



Now I’ll read


Awesome @SarahPentland
Must have had a few butterflies going into that.
Very well done and a pleasure to listen to you.


Ooh, going to have to watch that one!


Great interview @SarahPentland !


Thanks for the JAMS shout out @SarahPentland. At this point I would only describe it as a music player but things will be expanding in relatively short order. Great interview! Keep em coming if and when you can.


I’m wondering based on this video how network spam gets addressed as well. You can add rate-limits sure but what if I want to harness the power of safe coin for say a new secure tx network backed by the safe network that would deal in 10-100’s of thousands of transactions per second against SAFE just using the coin as a currency. I mean this coin is obviously designed as a utility token sure, but if you tell people that it can send/receive for free as well then you certainly will get people wanting to use it like a currency too probably based on the fiat value of the coin in a given second. Simple rate limiting logic can’t compensate for some of these valid use cases. Maybe the simple answer is sorry Jeremy we are going to be a utility token so keep your filthy free loading credit card replacement app off our network lol.

1 Like

Safecoin itself could be transaction free, but any layer on top won’t be. I remember the tokens created on the decorum wallet cost puts to send.

I don’t think the free transaction cost of a safecoin can be manipulated in to doing useful work.

And David said some time ago this interesting thing.


Right, just confirms my point the free nature of transacting safe coin will not make it a viable solution for rapid payments as a crypto currency based on rate limiting implementation. Does not discount you can do a free store of value transfer(The value of the Safe Coins) between friends on small scale though which is nice. I suppose a network could still be made for transacting against safe as a credit card network if I found a huge base of nodes that would basically be slaves under the hood of my theoretical network so I could move safe coin from outside a centralized node and keep it distributed. Talking 10k+ nodes here with distributed safe balances probably and my solution would have each node sending a certain amount of coin to a given node. Would be complicated :smiley: .

Flow would be like so:

My high tx network -> pick a slave with the balance of coin I need to move to a specific safe address and has a send age older than ___ amount of time -> to the receiver node of the transaction. As long as my safe coin slave army keeps adequate safe balances could be feasible I think.


Depends on what you call fast. It has never been implied that a single person can send 1000’s of coins per second. The transaction rate is limited for you, but if you have 10,000 sections then each section could be doing 100 transactions per second (for 100 people). So any one person sees 1 transaction per second but this smallish network is doing 1 million transactions per second.

If only 10 per second per section then its 100,000 per second. And when the network grows and you have 100’s of thousands of sections then the rate is even faster across the network.