【技术实现步骤摘要】
一种基于PBFT的S
‑
PBFT简化共识协议运行及并行优化方法
[0001]本专利技术属于区块链共识
,尤其涉及一种基于PBFT的S
‑
PBFT简化共识协议运行及并行优化方法。
技术介绍
[0002]传统的PBFT共识算法在一轮共识中存在三次全网广播:预准备阶段、准备阶段和提交阶段均需要以广播的形式进行数据传递。而在具体的工程实践中,广播消息有网络通信作为具体的实现手段。当系统的规模上升时,不断有新的节点加入,请求的数据量也不断增大时,多次的广播将意味着极大的网络通信量,使得网络通信资源成为系统性能的重要瓶颈。此外,由于共识过程中存在着串行化的流程,使得计算资源在数据广播期间没有得到充分的利用而浪费。
技术实现思路
[0003]本专利技术的目的是提供一种基于PBFT的S
‑
PBFT简化共识协议运行及并行优化方法,S
‑
PBFT共识算法是一种基于PBFT共识算法的简化共识协议,其目的是通过流程简化和并行化技术,对传统的PBFT共识算法进行改进,使得其更加符合联盟链系统架构的性能需求,进一步提高系统的计算资源利用率和共识过程执行效率。
[0004]本专利技术一方面提供了一种基于PBFT的S
‑
PBFT简化共识协议运行方法,包括:
[0005](1)请求阶段:请求将广播至全网节点,每一个节点接收请求的行为是相同的;
[0006](2)预准备阶段:通过区块高度和轮数计算以轮询的方式进行选主, ...
【技术保护点】
【技术特征摘要】
1.一种基于PBFT的S
‑
PBFT简化共识协议运行方法,其特征在于,包括:(1)请求阶段:请求将广播至全网节点,每一个节点接收请求的行为是相同的;(2)预准备阶段:通过区块高度和轮数计算以轮询的方式进行选主,以保证节点之间的对等性;每一轮共识开始前将完成选主;所述区块高度指的是共识开始前,已确认并加入区块链数据中区块的数量;轮数指的是针对基于区块高度的下一区块,已进行过多少次共识计算;所述选主的过程为:Propose(hash(h,r))=n
ꢀꢀꢀꢀ
(1)其中,Propose函数将计算出本轮主节点的编号n,n为小于当前网络节点总数N的自然数,用于索引唯一的节点;在主节点被唯一确定后,主节点将会将收集到的请求信息进行打包并广播给全网节点;(3)提交阶段:S
‑
PBFT共识协议在本阶段将进行投票操作,投票由全网节点共同参与,并且每一个节点的投票行为相互独立;节点收到了预准备阶段的广播数据后,基于本地区块数据对主节点的做块行为进行验证;验证结束后,将验证的结果转换为投票结果,进行全网广播;(4)结束阶段:经过上一轮的全网投票,每一个节点都将会收到投票信息;当节点收到的投票信息足以使得其作出判断时,节点将进行做块或否定做块;之后,本轮结束,每一个节点均将进入下一轮的共识。2.根据权利要求1所述的一种基于PBFT的S
‑
PBFT简化共识协议运行方法,其特征在于,所述基于PBFT的S
‑
PBFT简化共识协议面向联盟链设计,所述联盟链的节点需要一定的审批许可,方能加入共识。3.根据权利要求1所述的一种基于PBFT的S
‑
PBFT简化共识协议运行方法,其特征在于,所述预准备所述广播的数据用5元组来表示:BroadcastingData={Height,Round,Txs,Node,Digest}
ꢀꢀꢀ
(2);主节点的广播数据中需要蕴含当前共识中的区块高度Height、轮数Round、交易数据Txs、节点自身数据Node以及消息摘要Digest,这些数据可以使得其他从节点对主节点的做块操作进行充分的验证。4.根据权利要求1所述的一种基于PBFT的S
‑
PBFT简化共识协议运行方法,其特征在于,所述基于PBFT的S
‑
PBFT简化共识协议保证节点之间是对等的,在共识协议中所进行的状态转换流程也是相同的。5.根据权利要求1所述的一种基于PBFT的S
‑
PBFT简化共识协议运行方法,其特征在于,所述基于PBFT的S
‑
PBFT简化共识协议还包括两种流程异常情况及其处理方式:(1)集群变动:集群出现节点加入或退出时,S
‑
PBFT共识协议触发集群变动,除了新加入/退出的节点之外,其余节点将终止本轮共识并回滚至本轮共识尚未开始的状态,并重新基于新的集群网络拓扑信息进行共识;所述集群变动中,若节点发现自身感知的集群节点数目小于4个,则停止共识并广播停止消息;(2)回复超时:在投票阶段,若节点在一定时间内收到的投票没有达到节点做出决策的阈值,则该节点以本...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。