13个稳定版本
1.15.0 | 2022年3月8日 |
---|---|
1.14.0 | 2022年3月2日 |
1.13.0 | 2022年2月23日 |
1.7.0 | 2022年1月26日 |
#9 in #vote
56KB
1.5K SLoC
sn_membership
MaidSafe网站 | 安全网络论坛 |
---|
关于
此安全网络成员资格模块允许节点动态加入和离开安全网络区域。
区域长老运行共识算法来决定重新配置,算法按阶段进行
- 长老代表加入的节点提出重新配置(加入或离开)的提案。该提案被广播给所有长老
- 如果长老检测到分裂投票,他们将提出合并投票。(这可能会发生多达O(log(n))次)
- 如果长老看到大多数同意的投票,他们将提出超级多数投票
- 一旦长老看到超级多数的超级多数投票,他们将执行决定的重新配置。
测试
消息序列图(MSC)
您会注意到在运行 cargo test
之后,将生成一组 .msc
文件。
这些文件显示了投票在网络中处理的进展。它们可以使用 mscgen 进行渲染。例如,test_round_robin_split_vote
测试生成了图表,展示了网络如何处理从1到6个成员的分裂投票,要渲染出2个成员投票不同的情况的图表,请运行
cargo test # generates the *.msc files in the current directory.
mscgen -T png -i round_robin_split_vote_2.msc -o round_robin_split_vote_2.png
渲染的图表 round_robin_split_vote_2.png
将看起来如下
请注意,尽管网络成员之间的线是完全水平的,但这并不意味着投票被立即发送和接收。当网络成员收到投票时,它会立即响应(如果有)并返回其投票,但模拟网络将这些投票排队并确定性交付。水平线表示投票最终被交付到目的地以及来自谁。
许可证
此安全网络软件可根据您选择的双许可方式,采用修改后的BSD(https://opensource.org/licenses/BSD-3-Clause)或MIT许可证(https://opensource.org/licenses/MIT)。
贡献
想要贡献?太棒了 🎉
有多种方式可以为项目做出贡献,无论是编写新代码、修复错误还是仅报告错误。所有形式的贡献都受到鼓励!
有关如何贡献的说明,请参阅我们的贡献指南。
依赖项
~6MB
~181K SLoC