SAFE Network Dev Update - September 27, 2018


Great work team! Looking forward with anticipation to the Android demo mobile app. Will this be an Android native app implemented in Java? Also, what are your plans for a similar iOS demo app?


Any timeline will be good. Even if its a timeline for the timelines timeline :innocent::grin:


I think man projects would love some kind of list like that, but it is a massive job and would require significant international resources to compile. Many ISP rebadge and alter defaults etc. Then even some change the router for different purchased speeds and so on. It is a quagmire and I am not sure it can even be done effectively as its a changing scene so the admin and keeping up will be tough. ISPs even need the serial numbers to confirm which version of router you have and they have access to those databases and such like.

This is why CRUST is so so important to work as effectively as possible, then we can use the “how to port forward” or “how to enable secured upnp” websites to help us reach the last few nodes who have horrible NAT types.

I should re-iterate though this is for vaults, not clients as they do not need to be connected to, they just need to find directly connectable nodes on the net and crust captures those every session (as it does for vaults to bootstrap).


seems like parsec merging is on hold right now in github, some pause caused by holidays maybe?


Have a look at, there you will see more recent activity.


Things to consider



thanks but you didnt answer my question


No. (20 characters )


Instead, @maidsafe could publish a test program and setup a procedure so that anyone could discover the capabilities of the router they are using.


I worked in internet tech support for 8 years and it was always a blast trying to figure out a new clients devices. I never understood why a client didn’t supply the techs doing support for their customers with needed information. That’s when I learned Google-fu!


Yea, my thoughts were more of a community built list as people use their routers. And obviously could not be a definitive list.

The other side is the routers Maidsafe have used could also be added to that list. I was definitely not thinking Maidsafe would try and compile a complete list.

So then if people are purchasing a new router they can have a small list of routers that definitely work.


Keep in mind though it is also the router OS version and any changes to defaults that some ISPs make. It really is a massive mess out there. I could imagine us all getting accused of rubbish info and horrendous support if we even try that.


Best news of the day ! Count me in :smiley: I have that Technicolor router ( I mean, really, a Technicolor Router ) from my ISP, glad to bring some spicy flavour to the statistics.


This kind of information can be handled with a forum, with subsections for different manufacturers and other categories, so crowdsourcing but with help. There are already such places out there for routers so a SAFE version could learn from those, avoiding the definitive list but creating a searchable resource that people add to themselves.

This would be a good SAFE App project for someone and generate revenue for them and for contributors (if using PtD and PtP)


I agree, but am very cautious, even ISPs cannot tell you sometimes until they get your serial number or remotely access the devices. Something like this is where bittorrent, Gnutella and many others struggled with for years, so it would not be SAFE only I think, but any p2p network project. Nobody has done it so far AFAIK as it is incredibly hard and a fast moving target. There was a university in the USA that tried to put out a NAT detection bit of software but dropped it after a few months. This is really an underestimated struggle. our approach is to punch through whatever we can and hope where we cannot that there is enough directly connectable devices to keep the network solid.

We can and likely will have error messages for vaults that show how to port forward etc. if all else fails.


Are there potential similar problems with IPv6?
I don’t have myself a lot of experience with/knowledge of IPv6 (yet), but there you don’t need NAT of course.
My impression is that slowly but surely the migration to IPv6 is becoming more seriously.
Both ends (Vaults) of an IP connection have to support IPv6 however, so in practice most connections will be IPv4 for the moment I assume.


Yes, it seems ISP’s will still only provide private IP addresses in the background so you will still need to traverse NAT. There is hope though, if for instance Elon Musk or somebody did get a global internet then we stand a chance, ofc mesh etc. also helps, but it all takes time. For now and even with IPv6 we have NAT and need to traverse it.

Just to be clear though, where we are seeing 75% connectivity in our tests, we have disabled direct connections, UPnP etc. to check this figure is purely and only hole punched connections. So the figure we are getting is only hole punched, there are many other connection types.


That is quite important part of this success.

Anyway the previous tests gets:

  • UDP 82%
  • TCP 64%

So this mean, that it is good enough ?


It certainly should be. There is an important thing in routing, “partial connections”, these are what they say, a node can connect to only x% of its peers. PARSEC based on gossip helps that (we only need to connect to 1/3 of the group + 1 to be certain we have connected to a single honest node) and we can get around partial connections via tunneling (a hellish and complex issue to code and reason).

I feel quite confident we can cope with partial connections.

Again to be clear, this is all vaults, clients are fine. This allows more vaults to automatically take part in the network. They can still port forward (or similar) if necessary, even that may still be automatic in many settings (UPnP), all this work is to allow a larger % of users as farmers, by taking away any administration or manual configurations. It is a huge issue for us, as it should be, but unfortunately, we are on our own there, no other project seems to have a similar drive to allow home machines to be active network participants to the same level we do. Bitcoin tries via UPnP (IIRC) but we want to go much further than that. I do wish all of the decentralised projects would take this part much much more seriously. Just imagine we had the financial resources of filecoin or similar, this would be a done deal for all.


It is surprising that libp2p doesn’t have such features