MaidSafe Dev Update - May 11, 2017

Last week, we added this tutorial to the SAFE Dev Forum:

It explains how to build the SAFE Browser with Mock-Vault and how to upload a website using the SAFE Hosting Manager app. We are also planning to add a few code examples that will help you understand how to use the SAFE Browser DOM APIs to build dynamic web applications. We are having some issues with some of the code examples, so you’ll have to wait a little longer for those, but we’re happy to have this one for you to play with. We’ll update this tutorial with more code examples once we resolve these issues. :slight_smile:

SAFE Authenticator & API

safe_app_nodejs has been updated to work with the latest dev branch of safe_client_libs. The error strings are now propagated across the FFI boundary and the inconsistency of calling the encryptKey function has been fixed. For Private MutableData, it now becomes the responsibility of the application to encrypt the keys and values depending on the use case.

The Authenticator was also updated to work with the latest safe_client_libs dev branch. Based on the feedback from last week, some devs had to manually clear the beaker-plugin-* modules from the app/node_modules directory and build safe_browser again. The build scripts have now been updated to address these issues. Thanks to all the community members who have tried building the apps (@southside, @JPL, @happybeing, @draw, @maxweng, to name a few). Fetching index.html as the default file, auto redirection to the safe: protocol and a DOM API fix for the quickSetup function of MutableData are now implemented in the SAFE Browser.

A few approaches on how to distribute the Java API for desktop and Android were tried. We are planning to distribute an AAR file for Android which can be configured as a Gradle dependency in Android Studio and used by devs. The safe_app native library for each architecture will be packaged within the AAR file itself. On the other hand for desktop applications, the devs can include the JAR as a Maven dependency. When the JAR is downloaded, the native library is downloaded based on the platform and architecture as part of the post-install script.

The examples in the documentation might not be up-to-date. However, devs can make use of the test cases in safe_app_nodejs for reference. We will review and get the examples in the documentation verified and updated.

SAFE Client Libs & Crust

The uTP API has now been finalised by Carl and the library is ready to be used and tested. So we will soon be planning to integrate Crust with uTP support, which of course includes UDP hole punching. This should certainly help us connect to more peers and reduce tunnels. We will investigate different approaches since the uTP crates design choices affect the way Crust is currently designed with its state machine paradigm, and then subsequently come up with tasks to implement it.

We ported a mechanism from the master branch of safe_vault to the MutableData PR which queues the data chunks that a new node needs to store, and schedules their transfer, instead of requesting them all at once. That is slightly more complicated code, but necessary to make safe_vault scale to large amounts of data.

Mutable Data has individual entries which can be mutated independently of each other unlike Structured Data. So we are looking into the optimal way to refresh this, otherwise a refresh message per entry could lead to more bandwidth during churn.

Routing & Vault

Regarding the first part of data chains, we are still having several active threads of discussion, and doing research in different directions. In a complex system like this one there are a lot of design choices to make and we are trying to strike the right balance between reinventing the wheel and settling for an efficient solution.

Work on the node name simplification is also progressing well, but still ongoing, we hope to have the back of this one broken late this week or early next week.


great work guys keep it up


By chance the first? Or what … Nope


Thanks for the update team MaidSafe, great progress on uTP!


Nice work! And thanks for the update, as always.


Thanks so much to the entire team for all of your hard work! :slight_smile:


Hey All, Do we still need the router “fix” to do this?

Many Thanks

Ask all questions on our weekly:

#Live video support Q&A right here!! :smiley: Here to halp


Thanks Maidsafe team for the update and your hard work.

Will it be easy to generate new coins like it’s done with ERC20 tokens (crowdsale) on Ethereum right now? And can mutableData be swapped with each other? I’m just wondering, because features like this could help our tokens get popular pretty quick.


Keep up the excellent work, grand job.


ok - 0 knowlege when it comes to mobile development :smiley: but that sounds like pretty plug&play to my ears =) glad you decided which route to go with mobile =) and i’m impatiently awaiting the first mobile app :innocent: :joy:

don’t be too fast :open_mouth: i have to fix a Lot (!) of stuff right now … if you are too fast i might have problems to focus on my work … :-\
but of course i’m glad to see that progress can be seen =)

thank you very much for the update!


Great work, I wait every week in anticipation of more steps forward.


Would another way for the token to gain more exposure, use and value be to create a gateway with Waves Platform, a DEX exchange which also offers a tool to issue tokens?

In my mind this is how a transaction should look like when you swap MutableData.

(this is just my fantasy how I hope that this will work without a third party)
In my wallet I have 42 SAFECOINS and I send you 21 SAFECOINS in exchange for Clikes, when this transaction comes to you it ask do you want to exchange this amount of Clikes for SAFECOINS? This can be answered with a yes or no, you can even adjust the amount or it’s auto adjusted if you don’t got that much, but this enable users to exchange value just by sending it to each other no exchange needed (this could also enable things like selling a home for SAFECOIN). Only when somebody else doesn’t have the token you want you go to an exchange. IMHO an exchange should just be a bucket where people can dump their coins with an % they want to receive from the exchange set&forget.

Most crypto tokens out there have a privatekey, it would be nice if you could just import them into a wallet and it automatically becomes MutableData. In case it’s not clear yet, miners can keep people their money/data hostage. With a marketcap of over $50 billion I hope that MutableData, can give the cryptocommunity financial freedom. This is not a criticism to the Maidsafe devs or anything (I can’t even code :stuck_out_tongue:), but it would be nice if existing coins could just be planted as seeds in MutableData. There will be more farmers than miners, who gives a dawn about a blockchain when all you want to do is transfer money.

All these platforms make no sense, they don’t solve the speed issue, heck we’re back to the old world of silo’s. My Omni tokens totally has no meaning if I send it to my wallet on Counterparty, some tokens can even be lost completely if you send them to the wrong address.

Sorry for the rant

We got a problem of luxury, some of our coins are even worth more than some national currencies, but instead of donating them we just burn our coins:

StorjX got a value of over $200 million on Counterparty and all that value will be burned

Imagine how many crypto projects you could bootstrap with that value, but I think it’s pretty clear how some people their imagination works. :kissing_heart: Burn baby burn

Yeah yeah I know it’s not that easy, because you’ll still need bitcoins to make these transactions, if we can just transfer value onto MutableData it will be a huge step forward in the right direction.


:stuck_out_tongue: if I only knew that a day before my comment there was a demo of a swap protocol

1 Like