MaidSafe Dev Update - September 7, 2017

Today, we are releasing updated binaries for SAFE Browser and Web Hosting Manager (to fix a few minor issues):

These binaries will connect to Test 19 (the test network we released last week), so you shouldn’t need to create a new account. See the Test 19 topic for more information.

As you can imagine there is a lot happening in the background with Alpha 2 and Alpha 3 release planning. We have multiple teams all working on the various components now to ensure we deliver these next two releases promptly and professionally. You will have seen recent recruitment drives to aid us in these next few steps.

Alpha 2 is not far away as we all know, but a timely release is imperative now and must tie up with other parts of the project such as PR, marketing and business relationship building. The Alpha 3 meetings this week have been very productive and allowed us to find some really pleasing numbers regarding network or overhead cost of some network actions. All in all, this has been a very good week.

SAFE Authenticator & API

Since the release of the front-end applications with Test 19, no major issues have been reported, neither internally or from the community. This is a good sign that the applications are quite stable and it is encouraging us to keep working on the minor issues we have in the backlog. We really appreciate the feedback and also the issues that the community has been reporting, and it’s very important and very helpful to have all issues reported, even if they are minor, in order to enhance the applications and make them more stable and usable.

The following issues/tasks were resolved during the last few days:

  • MAID-2327: minor refactor to safe_app_plugin to remove the queue for auth requests as the Authenticator already provides one.
  • MAID-2326 & MAID-2325: issues with either browsing or downloading empty files were solved.
  • MAID-2307: solved the issue that causes a crash in the browser when browsing a deleted service
  • MAID-2306: uploading empty directories is now correctly handled.
  • MAID-2305: crash when uploading empty files is now fixed.
  • safe_app_nodejs PR #140: display the correct error when failing to load the dynamic libraries (thanks a lot @cooperka!)
  • Improvements to the README files of safe_browser and safe_app_nodejs (also by @cooperka)

The issue with saving the state of the browser on the network (MAID-2318) is fixed but still undergoing internal testing. It should be solved in the next version of the browser.

As anticipated in last week’s dev update, @shankar resumed the effort to enhance the UI/UX of the Web Hosting Manager application; we hope to be able to start our internal testing within the next couple of days.

@joshuef is now working on trying to automate our release/packaging process since we’ve been doing it manually so far, which is not only a time-consuming task but also very error prone. This will help us in the short term to be able to spend less time on this process and also allow us to be able to quickly respond if an urgent patch is required for any of the front-end applications.

Additionally, @hunterlester is working on creating tools/mechanisms to automate our tests for the DOM API. This is also in line with our goal of being able to quickly provide patches/fixes without risking the quality of the software.

SAFE Client Libs

We improved the app authentication process: the response from the Authenticator now includes the full Access Container Entry (a structure that contains details about the containers the app has access to), saving the app a network request. We also simplified and optimized the API for working with MDataInfos (structures that contain the network identifier and encryption keys of a mutable data).

MAID-2313 is nearing completion which will allow us to automatically generate C header files to interface with our FFI. As part of this task, we refactored the FFI modules of safe_core and safe_authenticator. We also caught several FFI functions that were either not marked #[no_mangle] or were missing an extern declaration.

Routing & Vault

We are continuing to focus our research efforts on message broadcasting strategies, or in other words - strategies for ensuring that every intended recipient of a message eventually receives it. In addition to the simulation we developed last week, a further investigation on what additional penalty cost our current approach incurs is being carried out. We hope this will clarify our current situation and could provide us with a clearer comparison to any future proposal. Some other metrics, such as the total amount of traffic or number of messages in various approaches, are also being calculated.


Work this week has focused on tracking down bugs in our uTP implementation. Currently, the SAFE Network uses TCP for all peer-to-peer communication, though there are many advantages to using a UDP-based transport protocol such as speed and easier hole-punching through home routers. Our aim is to have uTP in a state where we can deploy it alongside TCP sometime in the next couple of weeks.


First!!! :slight_smile: !!!


Looking good! @maidsafe is slaying it. I have oooone request. I know someone who needs this one done Pleeeeeeease :innocent:


Never thought I would be mentioned in one of these updates. It’s so easy to get started contributing here! Thanks for making this project accessible to the world.

Hint: for anyone else interested in contributing, you can get started by reading this post :tada:


Ready to read thanks maidsafe keep up the good work!


Great work as always, the wheels are turning towards a better world


Exciting times. Each one of these gets better and better


to my ears all of this sounds very promising :hugging: extremely cool the pieces come together and we get closer to the dream :star_struck:


Thanks you all at MaidSafe :slight_smile: I’m intrigued by this:

I read this as being about finding efficiencies in network operations such as reducing the number of messages or something like that. Is that correct, and can you elaborate?

There are two outstanding issues that aren’t mentioned and which would help me to get resolved, so can you maybe give some more info on progress or if they are likely to be looked into, thanks? They are:

  • The first is stopping me doing any testing, which hasn’t been as much of a blocker as my lack of time to write the code I’d like to test :slight_smile: , so far, but I’m finding more time so hopeful you can fix it soon. I believe this is the same as MAID-2321:
  • The second may be out of our hands. It isn’t vital as I can develop by uploading to the network, but I’m wondering if there’s any progress:

Very good, Nice job, Thanks


Exciting stuff. It does feel like the autonomous network isn’t too far off!


Yes that is correct, we have basic documentation but not good enough to release, several meetings so far and more to go to clean it up. However looks good and should allow much better reasoning decisions about design options as we move forward and also show us if we can handle certain amounts of traffic. So far it’s proving helpful, but again not finalised just yet.


The supposed castle in the sky looks like it will surprise the doubters :wink: your hard work is deeply appreciated :+1:


Awesome , As I thought , robustness in all, which will be released. Thanks


Sounds like the network is ready for Alpha 2 but the delivery is still being worked on. As BIGbtc would say you only get one chance to get it right so no rush! :slightly_smiling_face:


Great work @maidsafe. As always a detailed update. Just want to point out that the forum is doing great. We got quite some new devs / ict folks last few weeks and I hope you can forgive me that I moved several of them directly to TrustLevel 1 as they were eager to test the software.

Great things happening folks.


So lets skip Alfa 2 and announce Alfa 3 :stuck_out_tongue_winking_eye:


Thanks Maidsafe team for another great update, you gals/guys keep rocking.

I don’t really look at github (sorry too lazy, actually clueless what going on there), but it good to know that there are people contributing so thank you to @cooperka

Let’s keep this ball rolling super ants :stuck_out_tongue:


Thank you MAIDSafe team for all your hard work!!! My prediction is that Alpha 2 will be declared on 14 Sep 17 with a Test network 20 release (to fix minor bugs). You are awesome and will you literally change the world! Get 'er done!

I notice you’re using some gossip protocol. Not sure if this is useful in any way, but hashgraph consensus also uses a gossip protocol, so perhaps they’ve come up with some ideas that could be useful for inspiration?

Abstract of the whitepaper

A new system, the Swirlds hashgraph consensus algorithm, is proposed for replicated state machines with guaranteed Byzantine fault tolerance. It achieves fairness, in the sense that it is difficult for an attacker to manipulate which of two transactions will be chosen to be first in the consensus order. It has complete asynchrony, no leaders, no round robin, no proof-of-work, eventual consensus with probability one, and high speed in the absence of faults. It is based on a gossip protocol, in which the participants don’t just gossip about transactions. They gossip about gossip. They jointly build a hashgraph reflecting all of the gossip events. This allows Byzantine agreement to be achieved through virtual voting. Alice does not send Bob a vote over the Internet. Instead, Bob calculates what vote Alice would have sent, based on his knowledge of what Alice knows. This yields fair Byzantine agreement on a total order for all transactions, with very little communication overhead beyond the transactions themselves.

If it turns out to be useful, there’s some more information in a thread about hashgraph in the related projects section that I posted a couple days ago.