什么是区块链共识算法(什么是区块链共识机制)?
2023年07月14日 17:11
欧易okx交易所下载
欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。
作为虚拟货币行业的人,我们经常会谈到什么是区块链共识算法,有很多细节需要注意。你知道什么是区块链共识机制吗?今天就让边肖告诉你吧!
我们已经多次分享了一些关于区块链技术的讲解和知识分析。
今天越洋java课程就来看看区块链技术中共识算法的一些基本定义和特征。
简单的区块链。我们一般意识形态中的链条是铁链子,是铁做的,一根一根扣着。
形象地说,区块链也可以这么理解,只不过它不是铁做的,而是由具有一定数据结构的块连接而成。这是一个简单的原型,用通俗的方式解释所谓的共识。通俗点说,就是我们都同意某件事。
比如我们在日常会议中讨论问题,比如我们判断一种动物是不是猫。我们用肉眼看了之后觉得自己像只猫。如果它符合猫的特征,那么我们认为它是猫。共识是一种规则。
继续我们的会议示例。
参加会议的人谈论通过会议解决问题。与区块链相比,参与挖掘的矿工通过某种共识的方法(算法)解决自己的账簿与其他节点的账簿保持一致的问题。
保持账簿一致的更深层次的含义是保持链中的块信息一致。
我们为什么需要共识?我不';我不需要它,可以吗?当然不是。没有一致的规则,生活就是一团糟。
区块链没有共识规则,各个节点各自为政,失去了一致的意义。
这两个例子的对应关系如下:会人=矿工会=共识方式(算法)谈解决问题=保持自己的账本和其他节点的账本一致。如果你不';不理解节点的概念和含义,请先作为矿工理解一下。一个节点包含许多角色。矿工就是其中之一。
共识算法目前,节点保持与区块链中其他节点账簿一致有几种常见的共识方法(算法):PoW,以比特币为代表(BTC)缺点:矿池的出现。在一定程度上违背了去中心化的初衷,同时使51%的攻击成为可能,影响了其安全性。
计算能力存在巨大浪费。看看矿池,消耗了很多电力资源。随着难度的增加,电费PoS已经不够用了。以ETH为代表,从PoW到PoS,破坏者的代价';对网络的攻击很低,因此更有可能是拥有大量令牌的节点争夺记账权,这将使网络共识被少数富有的账户所主导,从而失去公平性。
所谓“共识机制”,即通过特殊节点的投票,在极短的时间内完成交易的验证和确认;对于一个交易,如果几个利益不相关的节点能达成共识,我们可以认为全网也能达成共识。用一种更通俗的方式。如果一个中国微博大V,一个美国虚拟货币玩家,一个非洲留学生,一个欧洲旅行者don'不认识,但是都一致认为你是个好人,那么基本上可以断定你不是坏人。
为了让整个区块链网络节点保持相同的数据,保证每个参与者的公平性,整个系统的所有参与者必须有一个统一的协议,也就是我们这里要用到的共识算法。比特币的所有节点都遵循统一的协议规范。。协议规范(consensusalgorithm)由相关的共识规则组成,分为两大核心:工作量证明和最长链机制。所有规则(共识)的终极体现就是比特币最长的链条。共识算法的目的是保证比特币在最长的链条上保持运行。,从而保证整个会计系统的一致性和可靠性。
区块链的用户不需要考虑彼此';美国的信用,相互信任,或者在进行交易时信任中介或中心组织,但只需要根据区块链协议实施交易。。这种没有可信第三方中介的顺利交易的前提是区块链的共识机制,即在相互理解和信任的市场环境下,参与交易的所有节点都没有为了自身利益而违规作弊的动机或行为。因此,每个节点都会主动自觉地遵守预设的规则来判断每笔交易的真实性和可靠性,并将通过检查的记录写入区块链。每个节点的利益不同,所以逻辑上,他们没有动力串通作弊。当网络中的某些节点具有公共信誉时,这一点尤为明显。区块链技术使用基于数学原理的共识算法来建立一个"信任"节点之间的网络,并利用技术手段实现创新的信用网络。
目前区域金融行业主流的共识算法机制包括工作量证明机制、股权证明机制、份额授权证明机制、池验证池四大类。
工作量证明机制就是工作量的证明。这是在生成要添加到区块链的新交易信息(即新块)时必须满足的要求。在基于工作量证明机制的区块链网络中,节点通过计算随机哈希的数值解来争夺记账权。获得正确数值解生成块的能力是节点计算能力的具体表现。工作量证明机制具有完全去中心化的优点。在具有共识工作量证明机制的区块链中,节点可以自由进出。。著名的比特币网络使用工作量证明机制来生产新货币。但由于比特币网络应用了工作量证明机制,吸引了全球计算机的大部分计算能力。想要尝试使用这种机制来获得同等规模的计算能力以维护自身安全的其他区块链应用程序很难做到这一点。同时,基于工作量证明机制的挖掘行为也造成了大量的资源浪费,并且达成共识需要较长的周期,因此这种机制不适合商业应用。
2012年,化名SunnyKing的网友推出Peercoin,通过工作量证明机制发行新币,通过权益证明机制维护网络安全。这是权益证明机制在加密电子货币中的首次应用。。与要求认证者进行一定量的计算不同,权益证明要求认证者提供一定量加密货币的所有权。权限证明机制的操作模式是,当创建新块时,挖掘者需要创建"货币权利"交易。交易会按照预先设定的比例给矿工自己发一些硬币。根据每个节点的比例和时间';s令牌,公平性证明机制降低了根据算法按比例挖掘节点的难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间。但本质上还是需要网络中的节点来进行挖掘操作。所以PoS机制并没有从根本上解决PoW机制难以在商业领域应用的问题。共享授权认证机制是一种新的保证网络安全的共识机制。。在试图解决传统PoW机制和PoS机制问题的同时,还可以通过实施科技民主来抵消集权带来的负面效应。
股份授权认证机制类似于董事会投票,内置股东实时投票系统。就像这个系统持有一个股东';任何时候开会,所有股东都在这里投票决定公司';的决定。基于DPoS机制的区块链分权依赖于一定数量的代表,而不是所有用户。在这样的区块链所有节点投票选举一定数量的节点代表,这些节点代表所有节点确认区块,维护系统的有序运行。同时,区块链的所有节点都有权随时罢免和任命代表。如有必要,所有节点可以通过投票取消当前节点代表的资格。重新选举新的代表,实现实时民主。
份额授权证明机制可以大大减少参与验证和记账的节点数量,从而实现秒级共识验证。然而,这种共识机制仍然不能完美地解决区块链在商业中的应用问题。因为共识机制无法摆脱对令牌的依赖,而且很多商业应用都不需要令牌。
池验证池是基于传统的分布式一致性技术,辅以数据验证机制建立的,这是目前区块链广泛使用的共识机制。
池验证池可以不依赖令牌工作。在成熟的分布式一致性算法(Pasox、Raft)基础上,可以实现秒级共识验证,更适合多方参与的多中心商业模式。但是池验证池也有一些缺点。例如,共识机制不像PoW机制那样是分布式的。
本文主要讲解区块链工作量证明机制的一些算法原理,以及比特币网络如何证明其工作量。希望大家能对共识算法有一个基本的了解。
工作量证明系统的主要特点是客户端要做一些困难的工作才能得到一个结果,验证者通过结果可以很容易地检查客户端是否做了相应的工作。。该方案的一个核心特征是不对称:对于请求者来说工作是适度的,对于验证者来说容易验证。它不同于验证码,验证码更容易被人类而不是计算机解决。
下图显示了工作负载证明过程。
例如,创建"你好,世界!"对于一个基本角色来说。我们给出的工作负载要求是,可以在这个字符后添加一个名为nonce的整数值。对改变的字符创建执行SHA-256操作(添加随机数)。如果结果(以十六进制形式表示)以"0000",验证通过。为了实现这种工作负载证明的目标,需要不断增加nonce值。对获得的字符创建执行SHA-256散列操作。根据这个规则,需要4251次运算才能找到前面有四个零的散列。
通过这个例子,我们对工作量证明机制有了初步的了解。。可能有人会觉得,如果工作量证明只是这样一个过程,是不是只要记住nonce是4521就可以让计算通过验证了?当然不是,这只是一个例子。
接下来,我们只需将输入更改为"你好,世界!整数值",整数值为1~1000。也就是把输入变成1~1000的数组:Hello,World!1;你好,世界!2;…;你好,世界!一千。然后,数组中的每个输入由上面的工作负载依次证明——找到一个以四个零开头的hashhash。
由于哈希值是伪随机的,根据概率论的相关知识很容易计算,预计可以尝试2的16次方。以便获得前面有四个零的散列。刚才1000次计算的实际结果统计显示,平均计算次数为66958,非常接近2的16次方(65536)。在这种情况下,数学所期望的计算次数实际上是所需的"工作量",并且多次重复工作负荷将被证明是符合统计规律的概率事件。
实际用于生成输入字符并得到相应目标结果的计算次数如下:
对于比特币网络中的任何一个节点,如果想要生成一个新的区块加入区块链,就必须在比特币网络中解决这个谜题。这个问题的关键要素是工作量证明函数、方块和难度值。工作量证明函数就是这个问题的计算方法。块是这道题的输入数据,难度值决定了理解这道题所需的计算量。
比特币网络使用的工作量证明函数就是上面提到的SHA-256。数据块实际上是在工作负载证明链路中产生的。。旷工通过不断构造块数据来检验计算结果是否满足要求的工作量,从而判断块是否满足网络难度。块头是比特币工作量证明函数的输入数据。
难度值是矿工挖掘的重要参考指标。它决定了旷工需要多少哈希运算才能生成合法块。比特币网络每10分钟生成一个区块。如果在不同的网络计算能力条件下基本保持生成新块的速度,那么难度值必须根据网络计算能力的变化进行调整。。总的原则是保持网络10分钟生成一个新块,不考虑开采能力。
难度值的调整在每个完整节点中独立自动发生。每2016块,所有节点都会按照统一格式自动调整难度值。这个公式是通过比较2016块新生成的消费时间和预期时间(如果每10分钟生成一笔取款,则预期时间为20160分钟)得出的,并根据实际时间和预期时间的比值进行调整。换句话说如果方块生成速度快于10分钟,增加难度值;反正难度值降低了。公式如下:
新难度值=旧难度值*(20160分钟/过去2016块花费的时间)。
工作量认证需要目标值。比特币工作量证明的目标值计算公式如下:
目标值=最大目标值/难度值。,其中最大目标值为一个恒定值0x00000000000fffffffffffffffffffffffffffffffffffffffffffffffffff
目标值与难度值成反比,比特币工作量证明的达成是矿内计算的块哈希值必须小于目标值。
我们也可以简单理解为比特币工作负载的过程如下通过不断改变块头(即尝试不同的nonce值)并将其作为输入,进行SHA-256哈希运算,找出一个具有特定格式哈希值的进程(即需要一定数量的前导零),前导零越多越难。
比特币解决工作量证明这个难题的步骤大致可以概括如下:
这个过程可以用下图来表示:
比特币的工作量证明就是我们俗称的主要工作"采矿"。了解工作量证明机制这将为我们进一步理解比特币区块链的共识机制奠定基础。
PoW算法是一种防止滥用分布式服务资源和拒绝服务攻击的机制。它要求节点执行消耗适当时间和资源的复杂操作。并且其计算结果可以被其他节点快速检查,以时间和能量消耗为保证,保证服务和资源被真实需求所使用。
PoW算法最基本的技术原理就是使用哈希算法。假设找到散列值Hash(r),如果原始数据是r(raw),则运算结果是R(Result)。
R=Hash(R)
Hash函数Hash()的特点是对于任意输入值R,都可以得到结果R,不可能从R反推R。。当输入原始数据r改变1位时,结果r值完全改变。在比特币的PoW算法中,引入算法难度D和随机值N,得到如下公式:
rd=hash(rN)
。该公式要求在填入随机值n时,计算结果Rd的前d个字节必须为0。因为hash函数的结果是未知的,每个矿工都要做大量的计算才能得到正确的结果,计算的结果被广播到全网。其他节点只需执行一次哈希运算即可验证。PoW算法使用这种方法使得计算消耗资源,验证只需要一次。
?
PoS算法要求节点验证者承诺一定的资金,才有资格进行挖掘和打包。而且区域连锁系统在选择包装节点时采用的是随机方法。一个节点认捐的资金越多,它被选为打包块的概率就越大。
POS模式下,每枚硬币每天生成1个币龄。例如,如果你总共持有100枚硬币30天,那么这时候你的币龄是3000。此时,如果您验证了一个POS块,您的币龄将被清零,您将从该块中获得相应的数字货币利息。
一个节点的过程';s通过PoS算法的封锁是这样的:普通节点要成为封锁节点,首先要质押自己的资产。当轮到它屏蔽掉的时候,它会把这个块打包广播到全网,其他验证节点会检查这个块的合法性。
?
DPoS算法类似于PoS算法,也有股份和权利质押。
但不同的是,DPoS算法采用的是委托质押的方式,类似于普选产生N个超级节点的方式。
选民为某个节点投下自己的一票。如果一个节点被选为记账节点,那么这个记账节点在获得一个奖项后,往往可以用任何方式回报它的投票者。
N个核算节点会轮流封锁,节点之间互相监督。如果它做了坏事,它将从抵押中扣除。
通过信任少量诚实节点,可以去除块签名过程中不必要的步骤,提高交易速度。
?
拜占庭问题:
拜占庭是古代东罗马帝国的首都。为了保卫每个封地,驻扎了一支由单一将军率领的军队,将军们只能通过信使传递消息。在一场战争中,所有的将军必须达成共识,决定是否一起参战。
但是军队中可能有叛徒会影响将军们达成共识。拜占庭将军问题是指在已知其中一人是叛徒的情况下,剩下的将军如何达成一致决定的问题。
bft:
bft是拜占庭容错。拜占庭容错技术是分布式计算领域的一种容错技术。拜占庭假设是现实世界的模型。由于硬件错误、网络拥塞或中断以及恶意攻击,计算机和网络可能会出现不可预测的行为。。拜占庭容错技术就是为了处理这些异常行为,满足待解决问题的规范要求而设计的。
拜占庭容错系统:
故障节点称为拜占庭节点,正常节点为非拜占庭节点。
假设分布式系统有n个节点,整个系统的拜占庭节点不超过m(n3m1),拜占庭容错系统需要满足以下两个条件:
另外,拜占庭容错系统需要达到以下两个指标:
PBFT是一种实用的拜占庭容错算法,解决了原有拜占庭容错算法效率低的问题。该算法的时间复杂度为O(N2),使得解决实际系统应用中的拜占庭容错问题成为可能。
PBFT是一种状态机拷贝算法,所有拷贝都是在一个视图旋转过程中操作的,主节点由视图号和节点号集合决定,即主节点p=vmod|R|。v:视图数量,|R|节点数量,p:主节点号。
PBFT算法的一致性过程如下:一个客户端发起消息请求,并将其广播到各个副本节点。主节点之一(领导者)发起建议消息pre-prepare并广播它。其他节点获得原始消息,并在验证完成后发送准备消息。每个节点接收2f1准备消息,这意味着它准备好了。并发送提交消息。当节点收到2f1提交消息,客户端收到f1相同的回复消息时,说明客户端发起的请求已经达到了全网的共识。
具体流程如下:
客户端c向主节点p发送请求,O,t,c请求,O:请求的具体操作,t:客户端发出请求时追加的时间戳,c:客户端标识。请求:包含消息内容m和消息摘要d(m)。。客户端签署请求。
主节点收到客户端的请求时,需要提交以下内容:
a.客户端请求消息的签名是否正确。
丢弃的非法请求。正确的请求,分配一个数字n,数字n主要用于对客户进行排序';的请求。然后向其他副本节点广播预先准备的v,n,d,m消息。v:查看号,D客户端消息摘要,M消息内容。。前期准备,v,n,d签主节点。n是一定范围内的[h,H],具体原因请参考垃圾收集章节。
副本节点I从主节点接收预准备消息。,需要进行以下检查:
a.主节点的PRE-PREPARE消息签名是否正确。
B.当前的副本节点是否收到了具有相同V号和N的消息?,但签署不同的预先准备的信息。
c.d.与M的摘要是否一致。
d.n是否在区间[h,H]内。
丢弃的非法请求。正确的请求复制节点I向包括主节点在内的其他节点发送准备,v,n,d,I消息。v,n,d,m与上述PRE-PREPARE消息相同,I为当前副本节点号。。准备,v,n,d,I签名复制节点I.在日志中记录预准备和准备消息,可用于恢复视图更改过程中未完成的请求操作。
当主节点和副本节点收到准备消息时,需要提交:
a.副本节点准备消息的签名是否正确。
B.当前副本节点是否在同一个视图v中接收到n。
c.n是否在区间[h,H]内。
D.D是否与当前收到的PRE-PPREPARE
非法丢弃请求中的D相同?。如果副本节点I收到2f1验证的准备消息,则向包括主节点在内的其他节点发送COMMIT,v,n,d,I消息,v,n,d,I的内容与上述准备消息相同。。COMMIT,v,n,d,I签名复制节点I.在日志中记录提交消息,用于恢复视图更改过程中未完成的请求操作。在日志中记录其他副本节点发送的准备消息。
主节点和副本节点收到提交消息后,需要提交:
a.副本节点提交消息的签名是否正确。
B.当前副本节点是否在同一个视图v中接收到n。
c.d.与M的摘要是否一致。
d.n是否在区间[h,H]内。
丢弃的非法请求。如果复制节点I接收到2f-1验证的提交消息。它表明当前网络中的大多数节点已经达成共识来运行客户端';s请求操作O并返回回复,v,t,c,I,r给客户端。r:是请求操作的结果。如果客户端收到f1个相同的回复消息,,说明客户端发起的请求已经达到了全网的共识,否则客户端需要判断是否向主节点重新发送请求。将其他副本节点发送的提交消息记录到日志中。
?
如果主节点作恶,它可以为不同的请求分配相同的序列号,或者不分配序列号,或者使相邻的序列号不连续。备份节点应该有责任主动检查这些序列号的合法性。
如果主节点离线或做了坏事,它不会广播客户端';的要求。客户端设置超时机制,如果超时,它将向所有副本节点广播请求消息。副本节点检测到主节点是邪恶的或离线的,并启动视图改变协议。
查看更改协议:
副本节点向其他节点广播VIEW-CHANGE,v1,n,C,P,I消息。n是最新稳定检查点的数量,c是2f1验证的检查点消息集,p是当前副本节点未完成请求的预准备和准备消息集。
当主节点p=v1mod|R|接收到2f个有效的VIEW-CHANGE消息时,它向其他节点广播NEW-VIEW,v1,V,O消息。。v是一组有效的视图改变消息。o是由主节点重新发起的未完成的预准备消息集。预准备消息集的选择规则:
副本节点接收来自主节点的NEW-VIEW消息,验证其有效性,如果有效,则进入v1状态,开始O.
中的预准备消息处理流程?
在上述算法流程中,为了保证在视图改变的过程中能够恢复之前的请求,每个副本节点在本地日志中记录一些消息,副本节点执行完请求后需要清除之前请求记录的消息。
最简单的方法是在回复消息后再次进行当前状态的一致同步,代价比较大,所以可以在执行多个请求k(比如100)后再进行一次状态同步。该状态同步消息是检查点消息。。
副本节点I向其他节点发送CheckPoint,n,d,I,其中n是当前节点保留的最后一个查看请求号,d是当前状态的总结,检查点消息记录在日志中。。如果副本节点I收到2f1个验证过的检查点消息,它会清除之前日志中的消息,将n作为当前稳定的检查点。这是一种理想的情况。实际上,当副本节点I向其他节点发送检查点消息时,其他节点还没有完成K请求,所以不会响应I'他们会按照自己的速度前进。,但此时发布的检查点没有形成稳定。
为了防止I的处理请求过快,设置了上面提到的高低水位区间[h,H]来解决这个问题。。低水位H等于最后一个稳定检查点的数量,高水位H=hL,其中L是我们指定的值,等于checkpoint周期性处理的请求数量的整数倍,可以设置为L=2K。当副本节点I处理超出高水位H的请求时,它将在此时停止,并等待稳定检查点发生变化,然后继续前进。
?
在区块链方案中,,一般适用于需要强一致性的私有链和联盟链场景。例如,在IBM领导的区块链超级账本项目中,PBFT是一个可选的共识协议。在Hyperledger的Fabric项目中,共识模块被设计为可插拔模块。支持共识算法,如PBFT和Raft。
?
?
Raft基于领导者驱动的共识模型,在该模型中,将选出一位杰出的领导者。,领导者将完全负责管理集群,领导者将负责管理Raft集群所有节点之间的复制日志。
?
在下图中,将在启动过程中选择群集的领导者(S1)。,并为来自客户端的所有命令/请求提供服务。Raft集群中的所有节点都维护一个分布式日志(复制日志)来存储和提交客户端发出的命令(日志条目)。领导者接受来自客户端的日志条目。,并将它们复制到Raft集群中的上述文章中(S2、S3、S4、S5)。
在Raft集群中,需要最少数量的节点来提供预期级别的一致性保证,这也称为仲裁。。在Raft集群中执行一个操作所需的最小票数是(N/2^1),其中N是组中成员的总数,也就是说,至少有一半的票数被投出,这也是为什么集群节点通常是奇数的原因。因此,在上面的例子中。我们需要至少3个节点才能有共识保证。
如果法定仲裁节点因任何原因不可用,即投出的票数未超过半数,则本次协商未达成一致,无法提交新的日志。
?
数据存储:Tidb/TiKV
日志:阿里巴巴';sgadget
服务发现:consuetcd
集群调度:HashiCorpNomad
]?
只能容纳失败节点(CFT),不能容纳邪恶节点
按顺序投票,只能串行申请,所以在高并发场景下性能差
?
Raft通过解决围绕领导者选举的三个主要子问题以及管理分布式日志和算法的安全功能来解决分布式共识问题。
当我们开始一个新的Raft集群或一个领导者不可用时。新的领导者将通过簇中所有成员节点之间的协商来选举。因此,在给定的实例中,Raft集群的节点可以处于以下任何状态:Follower。候选人或领导者。
系统启动时,所有节点都是从动节点。如果他们不';在一段时间内没有接收到来自领导者的心跳信号,,追随者将被转换为候选人;
如果一个候选节点收到了大多数节点的票,那么它就可以转化为领导者。,其余的候选节点将返回到追随者状态;
一旦领导者发现系统中某个领导者节点的任期($TERM)比自己高,就会转化为跟随者。
Raft使用基于心跳的RPC机制来检测何时开始新的选举。在正常期间,领导者会定期向所有可用的追随者发送心跳消息(实际上,日志可能会与心跳一起发送)。因此其他节点以从者状态开始,并且只要它接收到来自当前领导者的周期性心跳,就保持在从者状态。
当跟随者超时时,它将以如下方式启动选举过程:
根据候选节点从簇内其他节点收到的响应,可以得到三种选举结果。
一致性算法的实现一般基于复制状态机。什么是复制状态机?
简单来说,同样的初始状态,同样的输入=同样的结束状态。。不同的节点应该用相同的确定性函数处理输入,而不引入不确定值,例如本地时间。使用复制日志是一个好主意,它具有持久性和顺序保持的特性,是大多数分布式系统的基石。
有了Leader,客户端的所有并发请求都可以在Leader端形成一个有序的日志(状态)序列,以表示这些请求的处理顺序。然后,领导者将自己的日志序列发送给追随者。维护整个系统的全局一致性。注意不是强一致性,是最终一致性。
日志由带有有序编号(日志索引)的日志条目组成。每个日志条目在创建时都包含术语编号($TERM),以及日志中包含的数据。日志中包含的数据可以是任何类型,从简单类型到区块链。每个日志条目都可以用一个[$term,index,data]序列对来表示,其中$term表示任期,index表示索引号,数据表示日志数据。
领导者尝试在集群中的大多数节点上执行复制命令。如果复制成功,命令将提交给群集,响应将发送回客户端。类似于两阶段提交(2PC)但与2PC的区别在于,领导者只需要一半以上的节点同意(工作状态下)。
领导者和追随者都可能崩溃。,那么跟随者维护的日志与领导者相比可能有以下几种情况
当领导者与跟随者不一致时,领导者强迫跟随者复制自己的日志。,领导者会从后向前尝试,在每个AppendEntries失败后尝试前面的日志条目(递减nextIndex值),直到成功找到每个跟随者的日志一致位置点(基于以上两个保证)。,然后把这个位置之后的关注者的条目一一覆盖。因此,丢失或额外的条目可能会持续多个术语。
?
要求候选人';的日志至少与其他节点一样是最新的。不然的话,追随者节点不会投票给候选人。
意味着每个提交的条目必须至少存在于这些服务器之一中。如果候选人';的日志至少与多数日志中的其他日志一样是最新的,它将保存所有提交的条目。,避免日志回滚事件的发生。
即任何一届最多选一个领导。这一点非常重要,在一个复制集中,任何时候都只能有一个领导者。系统中同时存在不止一个领导者它被称为大脑分裂,这是一个非常严重的问题,会导致数据覆盖的损失。在raft中,有两点保证了这个属性:
因此,某个任期内必须只有一个领导。
?
当集群中节点的状态发生变化(集群配置发生变化)时,系统容易发生系统故障。因此,为了防止这种情况,Raft使用了一种称为两阶段的方法来改变集群成员。因此,在这种方法中在实现新的成员配置之前,集群首先改变到中间状态(称为联合共识)。联合共识使系统即使在配置之间切换时也能响应客户机请求,其主要目的是提高分布式系统的可用性。
让';让我们在这里停下来介绍一下什么是区块链共识算法。感谢您花时间阅读本网站的内容。唐';不要忘记搜索更多关于什么是区块链共识机制和什么是区块链共识算法的信息。
推荐阅读
- 上一篇:首旅集团的前景(btg怎么样)
- 下一篇:奇亚币价格走势(奇亚币行情价格)
-
公安比特币病毒(公安比特币病毒最新消息)
1970-01-01
在具有共识工作量证明机制的区块链中,节点可以自由进出
-
比特币交易赌博,比特币交易算赌博吗
1970-01-01
在具有共识工作量证明机制的区块链中,节点可以自由进出
-
达程国际期货a50手续费,达程国际期货a50手续费多少
1970-01-01
在具有共识工作量证明机制的区块链中,节点可以自由进出
-
格林大华期货电话 格林大华期货有限公司
1970-01-01
在具有共识工作量证明机制的区块链中,节点可以自由进出
-
比特币每天开采量?比特币每天开采量多少
1970-01-01
在具有共识工作量证明机制的区块链中,节点可以自由进出
-
菜粕期货供过于求 菜粕期货价格下跌
1970-01-01
在具有共识工作量证明机制的区块链中,节点可以自由进出