美文网首页区块链区块链研究
实用拜占庭容错算法

实用拜占庭容错算法

作者: 外太空区块链的矿工 | 来源:发表于2019-08-10 23:14 被阅读3次

实用拜占庭容错系统(PBFT)降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别(Polynomial),使拜占庭协议在分布式系统中应用成为可能。

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

  PBFT要求共同维护一个状态,所有节点采取的行动一致。为此,需要运行三类基本协议,包括一致性协议、检查点协议和视图更换协议。我们主要关注支持系统日常运行的一致性协议。一致性协议至少包含若干个阶段:请求(request)、序号分配(pre-prepare)和响应(reply)。根据协议设计的不同,可能包含相互交互(prepare),序号确认(commit)等阶段。

PBFT协议通信模式

上图为PBFT协议通信模式,每一个客户端的请求需要经过5个阶段,通过采用两次两两交互的方式在服务器达成一致之后再执行客户端的请求。由于客户端不能从服务器端获得任何服务器运行状态的信息,PBFT中主节点是否发生错误只能由服务器监测。如果服务器在一段时间内都不能完成客户端的请求,则会触发视图更换协议。其中C为客户端,N0~N3表示服务节点,特别的,N0为主节点,N3为故障节点。整个协议的基本过程如下:

1)客户端发送请求,激活主节点的服务操作。

2)当主节点接收请求后,启动三阶段的协议以向各从节点广播请求。

[2.1]序号分配阶段,主节点给请求赋值一个序列号n,广播序号分配消息和客户端的请求消息m,并将构造PRE-PREPARE消息给各从节点;

[2.2]交互阶段,从节点接收PRE-PREPARE消息,向其他服务节点广播PREPARE消息;[2.3]序号确认阶段,各节点对视图内的请求和次序进行验证后,广播COMMIT消息,执行收到的客户端的请求并给客户端以响应。

3)客户端等待来自不同节点的响应,若有m+1个响应相同,则该响应即为运算的结果。

PBFT在很多场景都有应用,在区块链场景中,一般适合于对强一致性有要求的私有链和联盟链场景。例如,在IBM主导的区块链超级账本项目中,PBFT是一个可选的共识协议。在Hyperledger的Fabric项目中,共识模块被设计成可插拔的模块,支持像PBFT、Raft等共识算法。

相关文章

  • PBTF共识机制

    简介 实用拜占庭容错 (Practical Byzantine Fault Tolerance, PBFT) 算法...

  • 细说区块链共识机制之PBFT

    PBFT意为实用拜占庭容错算法,这个算法是卡斯特罗和利斯科夫在1999年提出来的。解决了原始拜占庭容错算法效率不高...

  • 区块链核心技术:拜占庭共识算法之PBFT

    PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该...

  • 实用拜占庭容错算法

    实用拜占庭容错系统(PBFT)降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别(Polynomial),使...

  • 浅读共识算法

    PBFT(拜占庭容错实用算法) 拜占庭问题:拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定...

  • Tendermint 共识算法

    介绍 分布式一致性算法一般可以分为两类:拜占庭容错和非拜占庭容错。非拜占庭容错算法如 Paxos, Raft 等在...

  • 区块链笔记——PBFT

    PBFT是实用拜占庭容错的简称,是解决拜占庭将军问题的一种方案。比起最开始的BFT算法,PBFT额外要求网络封闭,...

  • PBFT:实用拜占庭容错算法

    共识算法(consensus plugin)是区块链技术中最核心的部件之一,PBFT(实用拜占庭容错)作为经典分布...

  • 区块链共识机制

    非拜占庭问题,采用帕克斯算法和RUFT算法;拜占庭问题,采用拜占庭容错算法,进一步发展了优化PBFT算法。PBFT...

  • 实用拜占庭容错算法(PBFT)

    1.游戏背景 拜占庭帝国即东罗马帝国,拥有巨...

网友评论

    本文标题:实用拜占庭容错算法

    本文链接:https://www.haomeiwen.com/subject/fbgdjctx.html