At least one, better 3 to 4, master-nodes are required
Bootstrap-Nodes are working stand-alone
No central "Super-Node" is required
Too much traffic would have to flow through it
Attacks on the network by censorship are reduced
Traffic does not increase network-overall load
Small disadvantage:
Hubs must register with ...
... more than one master-node ...
.. or connect with each other
1. Node checks if there is a list of master nodes already stored
2. Node is announcing itself to the upper bootstrap hub(s)
This should be done generic to keep things easy
Recommended is maybe an XML with all neccessary data
The session id will be included here
Other nodes shall always attempt to find a node by its current session id, not node it
The node id identifies the node globally
Requires a well-randomized id to be created to avoid collisions with other nodes
First announcement dominates on all "upper" nodes
A maximum limit of node ids per IP address shall prevent id flooding
The session id identifies the node currently
3. Node is fetching a list of other nodes
They must have at least X matching object types
If a bootstrap node is full it forwards the node to an other bootstrap hub
If that node is again full the node will be forwarded to a list node
If wether no free bootstrap nor list node is available the node waits some time and tries it again
Hashes of node-lists distributed over the bootstrap and list nodes should match
If to much are inconsistent:
4. Node connects to gathered master nodes
5. If all authorization steps are completed: