前言 总结拜占庭协议的时候,这两个概念搞不清楚了,所以来总结一下。
同步和异步的区别
1、同步和异步的区别 参考:https://blog.csdn.net/shenpanzhimao/article/details/83961734
总结:
- 同步:就是发送和接受都是同时的,两方具有相同的时钟。同步传输的效率高,难度大。
- 异步:是发送和接受不是同步的,两方有各自的时钟。异步传输能够适应多种情况,但是会加很多辅助信息来识别传输什么时候开始和结束,相对同步传输来说效率更低。难度小。
2、关于异步分布式系统的共识 关于异步式分布式系统的共识,有这样一个基础的结论,FLP不可能原理。是在1985年由Fischer, Lynch 和 Patterson三位计算机科学家,提出了一个FLP不可能原理:“在网络可靠的前提下,任意节点失效,一个或者多个的最小化异步模型系统中,不可能存在一个解决一致性问题的确定性算法。即如果存在任意节点失效的情况下,就无法完全保证分布式系统可以达到同步”。我们可以理解为认为完全异步的分布式系统是无法达到共识的。所以我们区块链的共识机制或多或少的对异步式分布式系统加了一些限制条件,比如pBFT共识算法,它假设节点之间消息节点有延迟,但是在有限时间内是可以达到的。所以我们区块链为了达到共识,也是有一点限制条件的异步分布式系统。
3、拜占庭协议的同步和异步 资料来源:https://allquantor.at/blockchainbib/pdf/ren2017practical.pdf
Ren L, Nayak K, Abraham I, et al. Practical synchronous byzantine consensus[J]. arXiv preprint arXiv:1704.02397, 2017.
浅谈“弱同步”和“异步”共识算法的区别
广义上讲,拜占庭共识考虑了n个团体之间达成协议的问题,其中最多f个会出现拜占庭式错误并任意偏离协议。
在定时(同步,异步或部分同步)和加密假设(无论是否假设数字签名)的各种组合下研究了拜占庭广播和协议。现在已经众所周知,这些假设极大地影响了容错和解决问题的界限。拜占庭协议即使在具有数字签名的情况下,
- 在部分同步或异步下要求f
- 同步下通过f
- 同步下通过f
推荐阅读
- go-raft实现
- Raft结构源码解析
- 共识协议|PBFT/Aardvark/RBFT差异
- hyperledger|pbft流程深层分析和解释
- blockchain|共识算法-PBFT
- 区块链|从寻找下一个币安,到寻找下一个Uniswap
- 共识算法|拜占庭将军问题的深入思考