我试图设计一个P2P网络,其中所有对等方共享相同的数据,并对其进行更改。没有进入共识部分(即假设一次只有一个节点会对数据进行更改)。
我如何确保所有对等体以容错方式连接到其他对等体?我只能想到一种方式,那就是每个对等体可以从另一个对等体请求更多对等体,但是如何确保连接尽可能均匀地分布,而TCP连接上没有一个对等体超载,而另一个对等体可能只是有任何联系吗?或者甚至如何防止所有同伴分成两个独立的组?
答案 0 :(得分:0)
bittorrent的canonical peer priority(github link)通过将两个端点的标识符散列在一起计算首选项顺序,应该允许节点达到覆盖的伪随机布局,同时避免节点“离开”去”。将两个身份混合在一起导致从每个对等体的角度看不同但全局一致的排序,从而构建随机布局。随着每个节点的边数增加,网络分裂的可能性将迅速趋于零。
你可以限制每个同伴接受的连接数量,这会迫使其他人在饱和后去其他地方寻找。