首页 > 编程知识 正文

拜占庭容错协议,拜占庭是现在哪个国家

时间:2023-05-05 06:44:02 阅读:159771 作者:3752

共识算法区块链中最重要的是共识算法,比特币使用POS(proofofwork,工作量证明),以太网硬币使用pos (proofofstake,股权证明) 目前,销售点(pos ) delegatedproofofstake,poofstake )、po但是,在不需要货币体系的许可链或专用链中,绝对可靠的节点和高效的在这种块链中,传统的一致性算法优先,PBFT (拜占庭容错)、PAXOS、RAFT )。

拜占庭容错机制(BFT )基于拜占庭将军问题,确保一致性主要分为这三个阶段。 准备(pre-prepare )、准备(prepare )、确认(commit )。 流程如下图所示。

这里,c是发送请求方,0123是服务端,3是瘫痪的服务端,具体的步骤为:1. Request :请求方c向任意节点发送请求,这里为02. prepare :服务端0接收到了c的请求1233.扩散至Prepare:123,收到后记录重播3下无法播出4. Commit:0123节点在prepare阶段,收到一定数量以上相同请求后进入Commit阶段,Commit

根据上述流程,N 3F 1时可以解决一致性,n为总计算机数,f为有问题的计算机总数

N=4 F=0时:得到数据最终数据a1111 B1111 C1111 D1 11

在N=4 F=1的情况下:得到数据最终数据A1 1 1 01B1 1 0 11C1 0 1 11D0 1 1 11

N=4 F=2时:得到数据最终数据A1 1 0 0NAB1 0 0 1NAC0 0 1 1NAD0 1 1 0NA

因此,拜占庭容错可以容纳约1/3的错误节点误差,IBM编制的Hyperledger使用该算法作为共识算法。

PAXOS PAXOS是一种基于消息传递的一致性算法,具有良好的容错能力。

算法本身用语言描述的情况极为简化: phase 1

a ) proposer向网络中半数以上的加速器发送prepare消息

b )加速器通常回复promise消息

第二阶段

a )足够数量的加速器回复promise消息时,proposer发送accept消息

b )通常,加速器回复accepted消息

PAXOS有三种类型的角色Proposer、Acceptor和Learner。 主要交互过程在Proposer和加速器之间,如下图所示。

其中,1、2、3、4表示顺序。

下图显示了多代理人的情况。 t表示时间轴,只描绘了一个专业人士和加速器的关系。

A3在T1向A1发出accepted,在T2接收A5的prepare,在T3时A1通知A5的最终结果(税率10% )。 这里有两种情况。

1 .如果来自a-5的n-5小于来自a-1的n-1,则a-3直接拒绝a-5 (拒绝) )。

2 .从a5发送来的N5大于从A1发送来的N1时,A3回复promise,但带来了a1 (n1,10 % ) )。

最终A5也接受10%

上图显示,如果已经Promise了较大的n,则直接Reject较小的n

在上述说明中,即使Promise收到了一个n,在不进行接受之前还收到了更大的n的情况下,这将导致对已经进行了Promise的n进行Reject

总流程图氪概括如下。

PAXOS协议在微信PaxosStore中使用,每分钟以数十亿次的数量级调用PAXOS协议进程。 RAFT RAFT的核心思想简单明了,只要几个数据库的初始状态一致,只要后续进行的操作一致,就可以保证后续的数据一致。 由此,RAFT使用Log进行同步,将服务分为Leader、Follower、Candidate个角色,使其可以相互转换。 RAFT大致可以分为选出Leader 2. Leader生成Log,进行Follower和Headbeats同步的两个过程

选举Leader Follower增加当前任期,切换到Candidate,投票给自己,启动RequestVote RPC,等待出现以下三种情况;

1 .获得半数以上服务器投票,赢得选举,成为Leader

2 .另一台服务器赢得选举,收到对应的心跳,成为Follower

3 .选举超时,任何服务器都没有赢得选举,增加当前任期,重新开始选举

同步日志Leader接受客户端请求,Leader更新日志,将Heatbeats发送到所有Follower并同步日志。 所有的Follwer都有ElectionTimeout,如果在ElectionTimeout时间内没有从Leader收到Headbeats,则认为Leader无效并重新选举Leader

流图标:

安全性保证1 .日志的流程只能从Leader到Follower,Leader无法覆盖日志2 .日志不最新者无法成为Candidate

视频演示raft:http://thesecretlivesofdata.com/raft /

总结这三种一致性算法只是核心思路,具体实现当然在很多方面还需要进一步完善。 这三种算法都可以作为区块链共识算法,一些公司已经在使用,但最有名的是IBM的Hyperledger使用的PBFT共识算法。

得到数据最终数据a1111b1111c111d11111d11111

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。