49 个版本 (7 个稳定版)

1.2.1 2022年1月27日
1.2.0 2021年3月25日
1.1.3 2021年2月12日
1.0.0 2020年12月23日
0.2.1 2019年3月6日

#2198 in 网络编程

MIT/Apache

63KB
1.5K SLoC

Poldercast的P2P拓扑组织

这个crate实现了Poldercast的P2P(对等)拓扑构建。目的是允许节点积极参与构建p2p网络的去中心化拓扑。

这是通过八卦来实现的。这是与他人分享拓扑信息的过程:谁在网络上,如何到达他们以及他们对什么感兴趣。

在Poldercast论文中有3个不同的模块,实现了3种不同的策略来选择八卦的节点和选择八卦的数据

  • Cyclon:此模块负责在八卦策略中添加一些随机性。它还防止节点落后,优先联系我们最不常用的节点;
  • Vicinity:此模块有助于在拓扑的节点之间建立基于兴趣的链接。确保具有共同兴趣的节点经常保持联系。
  • Rings:此模块创建一个节点的有向列表。这是将网络中的节点链接起来的任意方式。对于每个主题,节点将选择一组靠近的节点(有关更多详细信息,请参阅实现中的文档)。

参考文献

这个crate是Poldercast论文的具体实现

定制

现在这个crate允许对不同类型的模块管理留出空间。可以添加Poldercast默认模块(默认)。可以设置一个自定义拓扑策略,利用Poldercast的部分或全部模块,或者使用新的自定义模块。

许可

本项目受以下任一许可的许可

请选择您想要使用的许可。

依赖关系

~2–2.8MB
~54K SLoC