一种基于PBFT的S-PBFT简化共识协议运行及并行优化方法技术

技术编号:32573581 阅读:9 留言:0更新日期:2022-03-09 17:01
本发明专利技术公开了一种基于PBFT的S

【技术实现步骤摘要】
一种基于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)预准备阶段:通过区块高度和轮数计算以轮询的方式进行选主,以保证节点之间的对等性;每一轮共识开始前将完成选主;所述区块高度指的是共识开始前,已确认并加入区块链数据中区块的数量;轮数指的是针对基于区块高度的下一区块,已进行过多少次共识计算;所述选主的过程为:
[0007]Propose(hash(h,r))=n
ꢀꢀꢀꢀ
(1)
[0008]其中,Propose函数将计算出本轮主节点的编号n,n为小于当前网络节点总数N的自然数,用于索引唯一的节点;在主节点被唯一确定后,主节点将会将收集到的请求信息进行打包并广播给全网节点;
[0009](3)提交阶段:S

PBFT共识协议在本阶段将进行投票操作,投票由全网节点共同参与,并且每一个节点的投票行为相互独立;节点收到了预准备阶段的广播数据后,基于本地区块数据对主节点的做块行为进行验证;验证结束后,将验证的结果转换为投票结果,进行全网广播;
[0010](4)结束阶段:经过上一轮的全网投票,每一个节点都将会收到投票信息;当节点收到的投票信息足以使得其作出判断时,节点将进行做块或否定做块;之后,本轮结束,每一个节点均将进入下一轮的共识。
[0011]优选的,所述基于PBFT的S

PBFT简化共识协议面向联盟链设计,所述联盟链的节点需要一定的审批许可,方能加入共识。
[0012]优选的,所述预准备所述广播的数据用5元组来表示:
[0013]BroadcastingData={Height,Round,Txs,Node,Didest}
ꢀꢀꢀꢀꢀ
(2);
[0014]主节点的广播数据中需要蕴含当前共识中的区块高度Height、轮数Round、交易数据Txs、节点自身数据Node以及消息摘要Digest,这些数据可以使得其他从节点对主节点的做块操作进行充分的验证。
[0015]优选的,所述基于PBFT的S

PBFT简化共识协议保证节点之间是对等的,在共识协议中所进行的状态转换流程也是相同的。
[0016]优选的,S

PBFT共识协议包括两种流程异常情况及其处理方式:
[0017](1)集群变动:集群出现节点加入或退出时,S

PBFT共识协议触发集群变动,除了新加入/退出的节点之外,其余节点将终止本轮共识并回滚至本轮共识尚未开始的状态,并重新基于新的集群网络拓扑信息进行共识;所述集群变动中,若节点发现自身感知的集群节点数目小于4个,则停止共识并广播停止消息;
[0018](2)回复超时:在投票阶段,若节点在一定时间内收到的投票没有达到节点做出决策的阈值,则该节点以本轮反对票超过阈值的情况处理。
[0019]本专利技术的第二方面提供一种基于PBFT的S

PBFT简化共识协议的内部并行方法,依次包括:区块生成、区块广播、区块验证、投票广播和区块写入/回滚;所述并行方法依照耗时瓶颈的诱因分为两类:本地计算耗时和网络通信耗时;本地计算耗时的流程有区块生成、区块验证和区块写入;网络通信耗时的流程为区块广播与投票广播。
[0020]优选的,所述基于PBFT的S

PBFT简化共识协议的内部并行方法包括:
[0021](1)收集交易:节点维护一个交易缓冲区,用于存放未执行的交易;每一轮共识开始时,主节点从缓冲区中收集一定量的交易,等待做块;
[0022](2)选取交易:主节点基于本地的区块数据,筛选出不重复并且合法的交易,用于构造区块;
[0023](3)构造区块:主节点将上一步收集的交易数据打包并计算Merkle树根,之后检查本地区块数据并获得上一个区块的区块头,状态树树根等数据,进行摘要生成新的区块头;
[0024](4)广播区块:主节点将构造的区块进行全网广播,广播区块这一流程是S

PBFT共识协议的开始;
[0025](5)验证区块:收到广播的节点将会验证区块,验证过程将针对区块中的区块头、Merkle树根、版本号等字段进行验算和比对,以生成本节点的投票值;
[0026](6)广播投票:节点将验证区块的结果全网广播;
[0027](7)出块/回滚:在这一个阶段中,每一个节点将会持续收到投票广播;当收到第一个投票广播时,节点将进入计票阶段并且临时维护一个投票记录缓冲区,这个缓冲区仅仅用于当前高度与轮数的S

PBFT共识过程;每当收到投票信息时,节点记录投票结果并判断是否达到出块/回滚的票数阈值。当投票赞成数超过阈值时,节点出块并且自动进入下一轮共识;当投票反对数超过阈值时,节点将废弃当前的共识,进入下一轮共识。
[0028]本专利技术的第三方面提供一种基于PBFT的S

PBFT简化共识协议的内部并行方法的优化方法,包括:
[0029]当第N轮做块执行到区块广播的步骤时,全网节点在收到广播后,可以直接进入第N+1轮的共识。由于收到区块广播后,节点已知当前轮数共识的区块中交易的摘要,使得其
可以对下一轮共识的交易进行预先筛选;
[0030]选取交易,当第N轮以节点A为主节点,交易集合为TX1、TX2和TX3时,广播过后其余的节点将会提前搜集当前交易池中的和当前区块内部交易集合不重复的合法交易,并且进行读取、计算Merkle树根和封装;
[0031]当第N+1轮完成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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)回复超时:在投票阶段,若节点在一定时间内收到的投票没有达到节点做出决策的阈值,则该节点以本...

【专利技术属性】
技术研发人员:胡凯王子凯
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1