The SAFE Network Primer: An Introduction to the SAFE Network


:wink: I hate Word formats.
Plain text encoded in UTF-8 Unicode is best and easily converted into whatever else. But making it look pretty requires skills I unfortunately don’t possess either.

I hope you understand that the only reason I’m complaining about these petty details is that I love your work so much. Thank you again!


No offence taken - and thanks!


Just finished reading this. Amazing! Top work guys. I’ll share this. Just wanted to point something out on page 4:

UK telecom giant TalkTalk was brought low by a
couple of teenagers

Should that be ‘brought down’ ?!


Thanks @Lisa_Brown! Brought low is OK. It means disgraced, diminished, defeated.


Great to see this well crafted piece of work, thank you guys! We absolutely needed it and it’s so good to have something like this to share.

I am also very much looking forward to the branching off of this document (in whatever format might be) into in-depth descriptions of the various constituents, that we would see in SAFE Academy.
It would be absolutely splendid if there was for example a top level document with ReadMore links to similarly composed material, with the more elaborate description of chosen constituent. (This primer could have more and more keywords linked for every new such material produced for example).

I noted this minimal typo btw:

Censorship would be impossible and data could be not be erased.


Great work guys, what an amazing group of people getting together!!

Here is an web based version, my small contribution.


Wow that was quick work. Is the text editable in that format?


yes it is… 20 char


Excellent :+1: 20characters


Awesome work @Savage! :smile:


I told you I’m a grumpy old man.


Indeed :face_with_raised_eyebrow: :grin:
The conversion was automated but thanks Ill fix the highlighted issues when I have some time :+1:


Great work!
Just a few remarks:

  • page 13, about splitting a section: I would rephrase “Usually this will happen before group membership exceeds 22 Vaults” into something like “This will happen after the number of elders in the section reaches 22 or more”:

    • currently all members are counted, but I understand that in final version only elders will be counted for deciding section splits or mergers.

    • the split will be triggered at 22 elders only if both halves contain 11 elders. If the 2 halves are unbalanced, say for example 9 + 13, then the split is not triggered. In this example it will be triggered only when the smaller half gets 2 more elders to reach 11 elders. So, here the split would happen at 24 elders (11 + 13).

  • page 15, about bootstrapping servers: This paragraph suggests that initial connection of a vault is centralized on MaidSafe servers. In fact, there are no “public keys of the bootstrap servers hard-coded into the Vault’s binary”.

    Instead, an external configuration file contains a set of IP addresses the vault can connect to initially. MaidSafe will provide such a file with addresses of some of their vaults. But once the network is started the IP address of any vault can be added to this file.

  • page 17, same thing about client software: there are no “public keys for these bootstrap servers hard-coded into the Client software”. Likewise, there is a similar external configuration file with a set of IP address.

If MaidSafe receives the order to shutdown their servers that wouldn’t be a problem because alternate lists of independent vaults would be circulating among users (for both clients and farmers). This means that the network is really decentralized and unstoppable by external actors.


Thanks @tfa - yes, I left the section splitting bit deliberately vague as the exact mechanism was being debated at time of writing. Will update in the next iteration though (and on the web version before that hopefully). I admit I did wonder about the hard coding bit as I remember the config file from the last time vaults from home were operational, but thought perhaps the public keys were about some separate authentication step?


There are several public keys in use, but you can think of it like this. A node will restart with a list of nodes who

  1. I has keys for
  2. Are directly connectible
  3. Are still on line

When it finds one it then bootstraps of of it and as it has the public key it uses anonymous asymmetric encryption to send the bootstrap messages. When it connects to its group then is switches to authenticated asymmetric encryption. the latter means I know you sent this thing I can decrypt, the former is I can decrypt this but do not know from whom.

This works well for us as the anonymous part is used for bootstrap where there is little need form any trust or identifying the node. That pat is up to the network when the node connects to it (gets to its group).


Does it have a license?


No, I thought about that but couldn’t see any obvious advantages given that the subject matter is specifically about SAFE. Not something I’m particularly familiar with though, TBH.


So to answer the question @tfa brings up where are these keys if they are not hard coded into the vault binary software?


Well, if it is to be reproduced other places by others it is nice to know what terms it can be reproduced under. If there’s no license, then the default is that it’s fully copyrighted, all rights reserved, and in theory permission should be asked every time it’s reproduced by someone else.

If it’s CC0(Creative Commons 0)/public domain, there are no restrictions. Cc-by, then the original source should be attributed, for example with a link. Cc-by-sa is the GPL of text, if any text incorporates the text it should also be licensed Cc-by-sa, in addition to attributing the original source.


OK -I had assumed it would be free to use and share if no other action were taken. So the other way around. I think it would be helpful if the original source were attributed. Is it just a matter of stating that or do you need to register with CC? (The CC site seems to be down at the moment.)