更新:有关重要状态的更新,请参见。
py-swirld
只是在Python里蒙·里蒙·拜德(Leemon Baird)的Swirlds拜占庭共识算法(可提供)上作弊。 Swirlds是一种算法,可构建高度一致且具有分区容忍性的对等仅追加日志。
它似乎按我的预期工作,但不要认为这是理所当然的!
依存关系
python3(显然!)
密码
分析和交互式可视化
用法/高级解释
如果您不打算了解算法的工作原理,那么我认为这对您没有任何帮助,因此您应该先阅读白皮书。 之后,实现非常简单:将代码划分为与本文介绍的功能相同的功能:
主循环(这是一个协程,用于逐步评估并避免线程)。
sync(, ) ,它查询远程节点并更新本地数据。
divide_rounds为新交易设置轮次和见证。
decide_fame负责投票的东西。
find_order根据新的选举结果更新最终交易清单。
一切都打包到一个Node类中,该Node类使用其签名密钥对和一个字典将其初始化,该字典将节点ID(它的公钥)映射到某种从他那里查询数据的方式(
1