MaidSafe Dev Update :safe: 31st May 2016

Hi everyone,

The sun is shining here in Troon, this is worth noting as it doesn’t happen that often :wink: and some of the team are on annual leave. I myself am just back from a few days off and have spent the morning catching up on everything going on in MaidSafe and the community, although we have a few less bodies around the pace does not appeared to have slowed any.

@dirvine announced the Stable Droplet test network here, for any app developers or folks interested in this area this is definitely worth checking out and should help these guys progress with their projects.

The MaidSafe blog has also saw some excellent blog posts in the last week:
@ioptio’s Structuring Networks with XOR will help understanding the underlying structure of the SAFE Network and is well worth a read.
@nicklambert’s Developer Case Study with Harmen Klink, the founder of Project Decorum is an interesting insight into an exciting project actively building on and for the SAFE Network.

TEST 4 will be released for community testing when the current work in Crust async is completed, integrated and tested. More detail of the ongoing work in Crust below.

##Crust, Core: Andrew, Spandan (tl) & Vinicius.

We have more or less got the Crust async ready. The team are currently testing and integrating these changes with Routing and are addressing any bugs that are exposed by writing thorough test cases. Last week, we aimed to complete the Direct Connection Listener, parallel bootstrapping and hole punching connect. Direct Connection Listener and parallel bootstrapping are indeed completed and are currently under test, with hole punching connect still outstanding and will be tackled this week.

The final parts of functionality are being added into IGD (the crate we are porting to be async - find out more about IGD from last weeks update ). One of these parts (add_any_port`) turned out to be particularly bothersome algorithm:

  1. This function first attempts to call AddAnyPortMapping on the IGD with a random port number.
  2. If that fails due to the method being unknown it attempts to call AddPortMapping instead with a random port number.
  3. If that fails due to ConflictInMappingEntry it retries with another port up to a maximum of 20 times.
  4. If it fails due to SamePortValuesRequired it retries once with the same port values.

The team expect this coding will be completed soon and if the testing and integration goes well, we will have a releasable Crust by the end of this week.

##Routing, Vaults: Adam, Andreas (tl), Fraser & Qi.

While we are still working on some cleanups, most of our resources are currently allocated to Crust.
So: Nothing to see here! Please move along! :slight_smile:

##Client : Krishna (tl), Scott & Shankar.

Last week the RFC to update the launcher to the next version was raised. The discussion related to the RFC is still open and active.

@happybeing had requested that version support be added for the NFS APIs, however at this point of time, we would like to put that on hold. NFS and safe_core can support it, enabling versioning can increase the data volume stored and also result in a spike in network traffic as well. It would be better to expose versioning from NFS, once we have options like Deleting Owned Immutable data and also have improved client caching mechanisms to reduce the network traffic in place.

The RFC will be updated with few more minor enhancements. @cretz highlighted a few issues on launcher security in his post. We are also planning to add an approach to mitigate these and continue the discussion once we have presented this.

Once the RFC is updated, we will start addressing the issues on the launcher and the demo apps.

@Shankar and @Scott have been working on some updates to our website and these updates will go live in the next couple of days.

All RFCs by current status.

Thanks as always for your all of your support, here is a link to the weekly transcript.


:confused::confounded::blush::grinning: i love tuesdays *reading* :heart_eyes::hugging:


Getting place right now here!


Yay, getting closer to MVP!!


Thanks for the update, looks we are close to TEST 4 and it will be great to test the network when we’re there.

Here’s last week’s update about IGD:

Here’s the crate

Is there a simple explanation to what parallel bootstrapping is? And why the async version of Crust? Is it to lower CPU-usage or is there more in store?


Thanks so much for the update!


In simple terms its trying to bootstrap against multiple nodes at the same time. Say in normal usage when bootstrap cache is enabled, that list can have about 1500 endpoints, to this add the hard coded contacts. Out of this ofc nodes can go offline and thereby be invalid for a new client/vault to bootstrap with.

If bootstrapping is sequential one by one, thats gonna be time consuming if the same is parallel you try a bunch of these at the same time, prolly use one that connects to fastest, continue and ignore the rest.

Probably better to refer to it as the “mio” version of crust. even previously crust was technically async but used direct threads and was quite cumbersome not just because of threads but also because of how those threads were handled and overall performance. Now with the mio library the intention is to have the connections between peers optimised at the system level itself and also cut down the footprint of the process(less threads in machine).


Thanks for the update Maidsafe team,

This is why i love Tuesdays now

Up 2 test 4 :stuck_out_tongue: