0

For P2P networks, I know that some networks have initial bootstrap nodes. However, one would assume that with all new nodes learning of peers from said bootstrap nodes, the network would have difficulty adding new peers and would end up with many cliques - unbalanced, for lack of a better word.

Are there any methods to prevent this from occuring? I'm aware that some DHTs structure their routing tables to be a bit less susceptible to this, but I would think the problem would still hold.

To clarify, I'm asking about what sort of peer mixing algorithms exist/are commonly used for peer to peer networks.

Lev Knoblock
  • 611
  • 2
  • 6
  • 20

1 Answers1

1

However, one would assume that with all new nodes learning of peers from said bootstrap nodes, the network would have difficulty adding new peers and would end up with many cliques - unbalanced, for lack of a better word.

If the bootstrap nodes were the only source of peers and no further mixing occured that might be an issue. But in practice bootstrap nodes only exist for bootstrapping (possibly only ever once) and then other peer discovery mechanisms take over.

Natural mixing caused by connection churn should be enough to randomize graphs over time, but proactive measures such as a globally agreed-on mixing algorithm to drop certain neighbors in favor of others can speed up that process.

I'm aware that some DHTs structure their routing tables to be a bit less susceptible to this, but I would think the problem would still hold.

The local buckets in kademlia should provide an exhaustive view of the neighborhood, medium-distance buckets will cover different parts of the keyspace for different nodes and the farthest buckets will preferentially contain long-lived nodes which should have a good view of the network.

This doesn't leave much room for clique-formation.

the8472
  • 40,999
  • 5
  • 70
  • 122
  • Are you aware of any additional mixing algorithms outside of that BEP? I read somewhere that a random walk was a good way to randomize a new node's routing tables, but now I can't find the website where I read that, nor a description of how the algorithm would work. – Lev Knoblock Jun 29 '18 at 20:25
  • I have read about random walks but not used them myself. My gut feeling is that they'd work but would create unecessary connection churn (assuming TCP) which could have some undesirable side-effects. But if you want to read more you probably should hit google scholar or arxiv. – the8472 Jun 29 '18 at 20:34