前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >拜占庭容错算法

拜占庭容错算法

作者头像
程序员不务正业
发布2018-10-10 09:52:08
6410
发布2018-10-10 09:52:08
举报
PBFT:

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

代码语言:javascript
复制
 拜占庭容错算法不需要发行加密货币,但是只能用于私有链或者联盟链,需要对节点的加入进行权限控制;不能用于公有链,因为公有链中所有节点都可以随意加入退出,无法抵挡女巫攻击(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存到了这份信息。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PBFT:
    • 安全性:
      • 角色分工
        • 其中主节点的选举方法是:p = v mod R ,其中v是系统的view编号,每次换选时发生view change,view编号+1。
    • quorums(法定人数)
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档