49 个版本 (7 个稳定版)
1.2.1 | 2022年1月27日 |
---|---|
1.2.0 | 2021年3月25日 |
1.1.3 | 2021年2月12日 |
1.0.0 |
|
0.2.1 | 2019年3月6日 |
#2198 in 网络编程
63KB
1.5K SLoC
Poldercast的P2P拓扑组织
这个crate实现了Poldercast的P2P(对等)拓扑构建。目的是允许节点积极参与构建p2p网络的去中心化拓扑。
这是通过八卦来实现的。这是与他人分享拓扑信息的过程:谁在网络上,如何到达他们以及他们对什么感兴趣。
在Poldercast论文中有3个不同的模块,实现了3种不同的策略来选择八卦的节点和选择八卦的数据
Cyclon
:此模块负责在八卦策略中添加一些随机性。它还防止节点落后,优先联系我们最不常用的节点;Vicinity
:此模块有助于在拓扑的节点之间建立基于兴趣的链接。确保具有共同兴趣的节点经常保持联系。Rings
:此模块创建一个节点的有向列表。这是将网络中的节点链接起来的任意方式。对于每个主题,节点将选择一组靠近的节点(有关更多详细信息,请参阅实现中的文档)。
参考文献
这个crate是Poldercast论文的具体实现
定制
现在这个crate允许对不同类型的模块管理留出空间。可以添加Poldercast默认模块(默认)。可以设置一个自定义拓扑策略,利用Poldercast的部分或全部模块,或者使用新的自定义模块。
许可
本项目受以下任一许可的许可
- Apache License,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
请选择您想要使用的许可。
依赖关系
~2–2.8MB
~54K SLoC