一、PBFT
节点类型:
主节点:通过轮换或者随机算法生成
主节点索引通过公式(block_number + current_view) % consensus_node_num计算得出;
节点计算当前leader索引与自己索引相同后,就开始打包区块。
其余节点(副本节点和观察者节点)
其中:主节点以及副本节点参与共识
主节点未因发生故障导致切换时,则称整个共识过程发生在一个视图内
共识过程:
1、客户端发送交易到节点,节点将交易放入交易持中,并广播交易请求
2、主节点的sealer线程开始打包区块(交易池中获取交易,打包为一个区块),将新区块编入Prepare包中,广播给所有共识节点
3、通过以下三个步骤完成请求的共识过程
①Pre-Prepare 阶段,共识节点判断Prepare包的合法性(若为空包,请求视图轮换),缓存合法Prepare包(过滤重复收到相同包),执行区块中的交易并缓存执行后的区块,广播签名包。
② Prepare 阶段,共识节点判断签名包的合法性(与本地缓存的执行后区块做比较),缓存合法的签名包,若签名包达到2*f+1,广播commit包
③Commit 阶段,共识节点判断commit包的合法性(与本地缓存的执行后区块做比较),缓存合法的commit包,若commit包达到2*f+1,将新区块上链。
BCOS提出的Prepare包的优化,降低网络负载

在一个由(3*f+1)个节点构成的系统中,只要有不少于(2*f+1)个非恶意节点正常工作,该系统就能达成一致性
换言之:在 N≥3F+1 的情況下一致性是可能解決,N 为总计算机数,F 为有问题的计算机总数
PBFT(Practical Byzantine Fault Tolerance)是一种用于分布式系统的共识算法。它确保了即使在存在故障节点的情况下,系统仍能达成一致。在(3f+1)个节点的系统中,只要有(2f+1)个节点正常工作,就能保证一致性。算法流程包括客户端交易、主节点打包区块以及Pre-Prepare、Prepare、Commit三个阶段,优化点在于降低网络负载。该文详细阐述了PBFT的工作原理及其在确保区块链系统稳定性和安全性方面的作用。
5873

被折叠的 条评论
为什么被折叠?



