但你可能不知道,这些算法和工具解决的并不是一致性中最难的问题,要讨论这个最难的问题,这就要追溯到 Leslie Lamport 1982 年发表的著名论文 《拜占庭将军问题》(The Byzantine Generals Problem)上了。 1、拜占庭将军问题是什么? 拜占庭将军问题,其实是一个共识问题。通过比喻的方式来描述分布式一致性中一类最难的问...
这个问题虽然形式上拜占庭将军很像,但是本质上这两个问题是不同的。拜占庭将军问题描述的是可靠信道上的多主体共识问题;而两军问题描述的是不可靠信道上的共识问题,也没有叛徒,更类似于TCP的三次握手。TCP三次握手通过加上序列号,确保对消息的确认,但是第三条消息能否被收到,发送方同样无法确认,也只是在成本和效率...
为了更加深入的理解拜占庭将军问题, 我们以三将军问题为例进行说明. 当三个将军都忠诚时, 可以通过投票确定一致的行动方案, 图2展示了一种场景, 即General A, B通过观察敌军军情并结合自身情况判断可以发起攻击, 而General C通过观察敌军军情并结合自身情况判断应当撤退. 最终三个将军经过投票表决得到结果为进攻:撤退...
莱斯利·兰伯特( Leslie Lamport )通过这个比喻,表达了计算机网络中所存在的一致性问题。这个问题被称为拜占庭将军问题。 什么是 Raft 算法? Raft 算法是一种简单易懂的共识算法。它依靠状态机和主从同步的方式,在各个节点之间实现数据的一致性。 在学习Raft算法的时候,大家需要了解Raft的两个核心要点: ...
描述拜占庭将军问题 拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。 该问题可以抽象地表述为:一群拜占庭军队的将军率兵驻扎在敌城附近,在只能依靠信使联系彼此的情况下,将军们必须就同一个作战方案...
最近区块链这个概念又火了一把! 有小朋友就问我说:他听说有一个问题叫拜占庭将军问题,好像跟区块链有关。他问我这个问题到底是什么?那今天我们就来解释一下这个问题。什么是拜占庭将军问题? 内容详见视频…… 知识 社科·法律·心理 恶意节点 比特币
拜占庭将军问题(The Byzantine Generals Problem)提供了对分布式共识问题的一种情景化描述,由Leslie Lamport等人在1982年首次发表。论文《The Byzantine Generals Problem 》同时提供了两种解决拜占庭将军问题的算法: 口信消息型解决方案(A solution with oral message); ...
这就是所谓的拜占庭容错——简单说,就好比一个正在工作的系统,纵使出现一些小的问题,但不影响其正常运行。而以上拜占庭将军遇到的问题,对应到区块链系统中,实际上是指分布式系统多个节点中,如果部分节点失效或者存在恶意行为,那么,如何才能保证其他节点仍然能够保持一致性?在区块链中,技术人员研究出了多种共识...
拜占庭故障(也叫做交互一致性,源一致性,错误雪崩,拜占庭协议问题,拜占庭将领问题和拜占庭故障)是一个计算机系统的状态,特别是「分布式计算」系统中,其中的组件可能会故障,并且在组件故障时可能发生故障信息。 “拜占庭将军问题”这个名字来自于一个寓言,用于描述一种情况——在这种情况下,为了避免系统发生灾难性故障,系统...