7个版本 (破坏性更新)

0.7.0 2020年12月29日
0.6.0 2020年12月20日
0.5.0 2020年7月2日
0.4.0 2020年6月7日
0.1.0 2020年4月27日

#1291 in 算法


2 个crate中(通过 clepsydra)使用

MIT/Apache

50KB
1K SLoC

Concorde

此crate是一个正在进行的尝试,试图实现一种小型、特殊情况下的类似共识算法,称为“可重构格协议”,它具有一些理想特性

  • 它是异步的、小巧、快速且简单,与其他类似共识算法相比。状态少、消息类型和往返次数少。介绍它的论文用20行伪代码描述了它。

  • 它支持无需任何单独阶段的“在线重新配置”:在它运行时,您可以添加或删除节点,并且它可以即时适应更改的法定人数。

相对于通用共识,这些理想特性的代价很高,但您可能愿意并能够承担这样的代价

  • 讨论的“对象”领域 —— 您试图达成一致意见的领域 —— 必须是一个(连接半)格。

  • 您必须接受“格协议”API,其中您可能会得到一个“对象”值,它可能比您提出的值在其格中更高,甚至可能不是任何人提出的值(只是一个提议的并集)。

此外,您的法定人数系统(例如,一组节点)的表示本身也必须是一个格,尽管在这个实现中,它是一个固定的节点集法定人数系统,因此您在这里实际上没有选择。

参考

Petr Kuznetsov, Thibault Rieutord, Sara Tucci-Piergiovanni. 可重构格协议及其应用。[研究报告] 巴黎理工学院; CEA List. 2019. ffcea-02321547f

https://hal-cea.archives-ouvertes.fr/cea-02321547

名称

维基百科

英国-法国的空中客车公司Concorde是一款超音速客机

...

Concorde来源于法语单词concorde,其英语对应词为concord。这两个词都表示协议、和谐或联合。

(与同名的TSP求解器无关;对于名称冲突表示歉意)

依赖关系

~5–12MB
~116K SLoC