A bit of history
A lot of people probably still remember the change from persistent to non-persistent Vaults. It actually means the following:
- Persistent Vault: Stores chunks on your computer even when you disconnect from SAFE. You can rejoin the network, proof you have a certain amount of chunks and rejoin the network in a certain group.
- Non-persistent Vault: Stores chunks on your computer but everything is meaningless when you re-connect to the network. You’ll start as a new node again.
We’ve seen a major refactor in Routing called: Disjoint Groups. And the idea is that a group of nodes all share the same routing table as they are responsible for the same address-space.
Data chains and archive Nodes
What’s the purpose of upcoming releases before we can move to BETA? It’s a feature called “Data Republish”. Imagine a TEST net where we all upload our websites and some data, collectively disconnect our Vaults after 24H and start the network from scratch (with the same network-name) with all data 100% republished as it was when the network got down.
So the question is, how?? The devs are thinking about this for quite some time and 1 idea is the usage of “Archive Nodes” in combination with “Data Chains”. The idea is to link all the hashes of all the files together. Each group of Vaults knows exactly which chunks they need to preserve and they might even store parts of the Datachain outside of their group to get an image of the network in their neighborhood. Several archive nodes are allowed per group and they should store all the chunks the group is responsible for, being able to republish them when the network goes down and gets a re-boot. But is this the smartest thing to do in the short term?
The near future
I think we should go for the most simple solution for the data republishing problem. Farming isn’t active yet, there’s no incentive for any Archive Node to come back online for that reason. And why should we account on 6 Archive Nodes in a group of 24 nodes for example? It doesn’t add to security.
What I propose here is to start the network with persistent nodes only. At least until we’ve reached BETA. How could this be done?
- Implement Node Ageing as a start. This will make sure the network is secured against a group-attack involving thousands of nodes. New Vaults will hop from group to group and all gathered chunks of data should be persistently stored on the harddrive of the user.
- Implement Data Chains. This as a way to keep track of all the data chunks in the network as proposed.
When trouble occurs on the network (like a big outage) each Vault restarts and tries to join the latest group it was part of. If that fails it tries to go back to the group it belonged to before it was relocated. We could re-boot the network several times over to see if everything goes well.
- I guess persistent Vaults are way more easy to implement than Archive Nodes with all their roles.
- All Vaults storing chunks makes data way more redundant. It gives us a bigger chance to have a successful reboot compared to only several “trusted” Archive Nodes. Why would we want to have this form of “centralization” in the first era of SAFE?
- There’s always the option to implement Archive Nodes when the network is bigger and more stable.
- It will speed up development of several App-projects (including Safecoin!) as the chances are way bigger that all data in the network is preserved.
- Having chunks on harddrive isn’t as secure as non-persistent Vaults.
- Vaults coming back online need to re-sync with the network.
So here it is. Hopefully a discussion about persistent and non-persistent Vaults again