PBFT算法

本文介绍了分布式系统中的一致性问题,特别是在区块链领域的挑战。深入探讨了拜占庭问题及其与一致性区别,阐述了两将军问题和拜占庭问题的背景。详细解析了PBFT共识算法的工作原理,包括预准备、准备和提交三个阶段,以及其在面对拜占庭错误时的容错能力。最后,讨论了PBFT存在的问题及可能的改进思路。
摘要由CSDN通过智能技术生成

引言———分布式系统一致性问题

区块链系统,首先是一个分布式系统。传统单节点结构演变到分布式系统,碰到的首要问题就是一致性的保障。很显然,如果分布式集群无法保证处理结果一直的话,那任何建立于其上的业务系统都无法正常工作。 一致性问题是分布式领域最为基础也是最重要的问题。如果分布式系统能实现“一致”,对外就可以呈现一个完美的、可扩展的“虚拟节点”,相对于物理节点具有更优越性能和稳定性。这也是分布式系统希望能实现的最终目标。在理想的情况下,如果各个服务节点严格遵守相同的处理协议,构成相同的处理机状态机,给定相同的初始状态和输入序列,则可以保证在处理过程中的每个环节的结果都是相同的。这里需要注意的是,我们所说的一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否;例如,所有节点都达成失败状态也是一种一致。

一致性的问题和挑战

我们在涉及区块链的问题时,共识(consensus)在很多时候会与一致性(consistency)术语放在一起讨论。其实,两者的含义却是不同的。一致性往往指分布式系统中多个副本对外呈现的数据状态。它含有顺序一致性和线性一致性等等。描述了多个节点对数据状态的维护能力。而共识则描述了则描述了分布式系统多个节点之间,彼此对某个状态达成一致结果的过程。因此,一致性描述的是结果,共识则是一种手段,达成某种共识并不意味着就保障了一致性。 在实践中,要保障满足系统满足不同程度的一致性,核心过程往往需要通过共识算法来达成,共识算法解决的是对某个提案(propasal)大家达成一致意见的过程。如果分布式系统中各个单节点都能保证一十分理想的性能(如可以瞬间响应、超高吞吐)无故障地运行,节点之间通信瞬时送达,则实现共识过程并不十分复杂,简

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值