6个版本
0.7.3 | 2020年11月23日 |
---|---|
0.7.1 | 2020年6月2日 |
0.6.0 | 2020年2月26日 |
0.5.0 | 2018年7月10日 |
0.4.0 |
|
1152 在 网络编程 中
每月 31 次下载
690KB
15K SLoC
PARSEC - 异步、可靠、安全且高效的共识协议
软件包 | 文档 | Linux/macOS | Windows | 问题 |
---|---|---|---|---|
MaidSafe网站 | SAFE开发者论坛 | SAFE网络论坛 |
---|
概述
示例文件夹中有一个基本示例。这允许您模拟一个运行Parsec协议并就一系列随机网络事件达成共识的节点网络。您还可以将每个节点的八卦图以dot格式输出到系统临时目录中的文件。这可以通过特性dump-graphs
启用。例如,要运行一个由五个节点和十个网络事件组成的示例
cargo run --release --example=basic --features=mock,dump-graphs -- --initial-peers=5 --opaque=10
如果您的路径中有来自graphviz的dot
,则也会从每个这些dot文件生成SVG图形。如果没有,您可以将生成的dot文件的内容复制到在线转换器(例如http://viz-js.com)中,以查看八卦图。
详细教程
如果概述中的说明对您来说有点稀疏,请参阅教程以获取逐步指南。
实现状态
已实现的功能
- PARSEC的初始实现
- 在静态节点网络中演示了工作共识
- 集成测试
- 简单的测试表明,在节点数量较小且所有节点都在单个线程中模拟的网络中,已达成共识
- 使用随机生成数据以进行浸泡测试
- 进行了数万次运行,没有错误
- 生成图形
- 使用特性:
dump-graphs
,输出所有网络通信的dot表示 - 这些图形是在每个共识决策时刻的快照(每个节点每个共识决策一个图形)
- 图形用PARSEC协议的详细信息进行了注释,说明了最终如何达成共识
- 可以使用dot从dot表示中获得图像(例如.svg)
- 使用特性:
- 可重复性
- 如果测试失败,会输出一个种子。这个种子可以用来重现失败的场景,有助于调查潜在的问题。
- 简单示例
- 创建了一个简单示例,以便测试各种场景。
- 可以通过命令行参数配置对等节点数量、投票数量等。
- 初始文档
- API的早期文档可在此处找到。
即将推出的功能
- 防止恶意行为
- 处理分支(一个节点发送多个相同
self_parent
的事件) - 双重投票(一个节点对同一网络事件进行多次投票)
- 检测恶意行为,导致达成共识以排除违规节点
- 处理分支(一个节点发送多个相同
- 性能
- 基准测试和优化代码
- 在模拟网络中进行每秒交易数(TPS)的测量
- 使用可以与竞争共识协议相比的设置
- 广泛的测试
- 实施广泛的测试,以模拟对抗性场景,以证明在“愉快路径”之外的鲁棒性
- 广泛的文档
- 文档将全面制作
- 动态网络成员资格
许可证
根据通用公共许可证(GPL)版本3进行许可(LICENSE http://www.gnu.org/licenses/gpl-3.0.en.html)。
链接例外
Parsec根据GPLv3进行许可,带有链接例外。这意味着您可以从任何程序链接并使用库,无论是专有还是开源;付费或免费。但是,如果您修改Parsec,则必须根据GPLv3条款分发您修改版本的源代码。
有关更多详细信息,请参阅LICENSE文件。
贡献
想要贡献?太好了 🎉
有许多方式可以回报项目,无论是编写新代码、修复错误,还是只是报告错误。所有形式的贡献都受到鼓励!
有关如何贡献的说明,请参阅我们的贡献指南。
依赖项
~2.6–3.5MB
~75K SLoC