拜占庭容错算法

PBFT:

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

 拜占庭容错算法不需要发行加密货币,但是只能用于私有链或者联盟链,需要对节点的加入进行权限控制;不能用于公有链,因为公有链中所有节点都可以随意加入退出,无法抵挡女巫攻击(sybil attack)
安全性:

在R>=3f+1的前提下,系统能保持安全性和活性。R为总结点数,f为错误节点数。

角色分工

replica(副本)所有参与的节点,总数为R
primary(主节点):负责将来自client的请求排好序,然后发给所有的备份节点。
backup(备份节点):接收并检查主节点的排序信息,如果主节点作恶可以进行换选。

其中主节点的选举方法是:p = v mod R ,其中v是系统的view编号,每次换选时发生view change,view编号+1。

quorums(法定人数)

quorums有两个重要的属性:
Intersection: 任意两个quorums至少有一个共同的并且正确的replica

Availability: 总是存在一个没有faulty replicas的quorum

如果一个replica把信息写给一个quorum,并让该quorum来存储信息,在收到每一个quorum中的成员的确认反馈后,那么我们可以认为该replica的信息已经被可靠的保存在了这个分布式系统中。这是强的约束,当然还有一个weak certificates:就是至少f+1个节点来共同存取信息,这样至少有一个正确的replica存到了这份信息。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 昨天休息,微信里好几个车辆不在厂的客户咨询我车辆的问题,没有感觉烦,相反感觉很好,让我感觉了自己的工作的价值和意义。
    王佳欢雪阅读 155评论 0 0
  • 每一个布局约束就是一个明确的线性变化规则,在数学上是以一次函数的形式表示,即: y = m * x + c 其中的...
    rebeccaBull阅读 745评论 0 0
  • 目录: 内存管理概述 内存管理的实现相关的几个C函数 ARC下的一些规则 @property中关键字与所有权修饰符...
    Tenloy阅读 688评论 0 3
  • 心有所感,笔不能舒! 摇摆的桥,古老的树,凉爽的吊楼,原始的房,触动心弦的笔绘,感知生命的历程,这是我眼中的烟雨柳江。
    蜗牛的一生阅读 161评论 0 0