CN114157672B - 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 - Google Patents
一种基于pbft的s-pbft简化共识协议运行及并行优化方法 Download PDFInfo
- Publication number
- CN114157672B CN114157672B CN202111429918.4A CN202111429918A CN114157672B CN 114157672 B CN114157672 B CN 114157672B CN 202111429918 A CN202111429918 A CN 202111429918A CN 114157672 B CN114157672 B CN 114157672B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- pbft
- consensus
- round
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于PBFT的S‑PBFT简化共识协议运行方法,包括:(1)请求阶段;(2)预准备阶段;(3)提交阶段;(4)结束阶段。一种基于PBFT的S‑PBFT简化共识协议的内部并行方法,依次包括:区块生成、区块广播、区块验证、投票广播和区块写入/回滚;依照耗时瓶颈的诱因分为两类:本地计算耗时和网络通信耗时;本地计算耗时的流程有区块生成、区块验证和区块写入;网络通信耗时的流程为区块广播与投票广播。还公开了基于PBFT的S‑PBFT简化共识协议的内部并行方法的优化方法,基于PBFT共识算法的简化共识协议通过流程简化和并行化技术,对传统PBFT共识算法进行改进,使得其更加符合联盟链系统架构的性能需求,进一步提高系统的计算资源利用率和共识过程执行效率。
Description
技术领域
本发明属于区块链共识技术领域,尤其涉及一种基于PBFT的S-PBFT简化共识协议运行及并行优化方法。
背景技术
传统的PBFT共识算法在一轮共识中存在三次全网广播:预准备阶段、准备阶段和提交阶段均需要以广播的形式进行数据传递。而在具体的工程实践中,广播消息有网络通信作为具体的实现手段。当系统的规模上升时,不断有新的节点加入,请求的数据量也不断增大时,多次的广播将意味着极大的网络通信量,使得网络通信资源成为系统性能的重要瓶颈。此外,由于共识过程中存在着串行化的流程,使得计算资源在数据广播期间没有得到充分的利用而浪费。
发明内容
本发明的目的是提供一种基于PBFT的S-PBFT简化共识协议运行及并行优化方法,S-PBFT共识算法是一种基于PBFT共识算法的简化共识协议,其目的是通过流程简化和并行化技术,对传统的PBFT共识算法进行改进,使得其更加符合联盟链系统架构的性能需求,进一步提高系统的计算资源利用率和共识过程执行效率。
本发明一方面提供了一种基于PBFT的S-PBFT简化共识协议运行方法,包括:
(1)请求阶段:请求将广播至全网节点,每一个节点接收请求的行为是相同的;
(2)预准备阶段:通过区块高度和轮数计算以轮询的方式进行选主,以保证节点之间的对等性;每一轮共识开始前将完成选主;所述区块高度指的是共识开始前,已确认并加入区块链数据中区块的数量;轮数指的是针对基于区块高度的下一区块,已进行过多少次共识计算;所述选主的过程为:
Propose(hash(h,r))=n (1)
其中,Propose函数将计算出本轮主节点的编号n,n为小于当前网络节点总数N的自然数,用于索引唯一的节点;在主节点被唯一确定后,主节点将会将收集到的请求信息进行打包并广播给全网节点;
(3)提交阶段:S-PBFT共识协议在本阶段将进行投票操作,投票由全网节点共同参与,并且每一个节点的投票行为相互独立;节点收到了预准备阶段的广播数据后,基于本地区块数据对主节点的做块行为进行验证;验证结束后,将验证的结果转换为投票结果,进行全网广播;
(4)结束阶段:经过上一轮的全网投票,每一个节点都将会收到投票信息;当节点收到的投票信息足以使得其作出判断时,节点将进行做块或否定做块;之后,本轮结束,每一个节点均将进入下一轮的共识。
优选的,所述基于PBFT的S-PBFT简化共识协议面向联盟链设计,所述联盟链的节点需要一定的审批许可,方能加入共识。
优选的,所述预准备所述广播的数据用5元组来表示:
BroadcastingData={Height,Round,Txs,Node,Digest} (2);
主节点的广播数据中需要蕴含当前共识中的区块高度Height、轮数Round、交易数据Txs、节点自身数据Node以及消息摘要Digest,这些数据可以使得其他从节点对主节点的做块操作进行充分的验证。
优选的,所述基于PBFT的S-PBFT简化共识协议保证节点之间是对等的,在共识协议中所进行的状态转换流程也是相同的。
优选的,S-PBFT共识协议包括两种流程异常情况及其处理方式:
(1)集群变动:集群出现节点加入或退出时,S-PBFT共识协议触发集群变动,除了新加入/退出的节点之外,其余节点将终止本轮共识并回滚至本轮共识尚未开始的状态,并重新基于新的集群网络拓扑信息进行共识;所述集群变动中,若节点发现自身感知的集群节点数目小于4个,则停止共识并广播停止消息;
(2)回复超时:在投票阶段,若节点在一定时间内收到的投票没有达到节点做出决策的阈值,则该节点以本轮反对票超过阈值的情况处理。
本发明的第二方面提供一种基于PBFT的S-PBFT简化共识协议的内部并行方法,依次包括:区块生成、区块广播、区块验证、投票广播和区块写入/回滚;所述并行方法依照耗时瓶颈的诱因分为两类:本地计算耗时和网络通信耗时;本地计算耗时的流程有区块生成、区块验证和区块写入;网络通信耗时的流程为区块广播与投票广播。
优选的,所述基于PBFT的S-PBFT简化共识协议的内部并行方法包括:
(1)收集交易:节点维护一个交易缓冲区,用于存放未执行的交易;每一轮共识开始时,主节点从缓冲区中收集一定量的交易,等待做块;
(2)选取交易:主节点基于本地的区块数据,筛选出不重复并且合法的交易,用于构造区块;
(3)构造区块:主节点将上一步收集的交易数据打包并计算Merkle树根,之后检查本地区块数据并获得上一个区块的区块头,状态树树根等数据,进行摘要生成新的区块头;
(4)广播区块:主节点将构造的区块进行全网广播,广播区块这一流程是S-PBFT共识协议的开始;
(5)验证区块:收到广播的节点将会验证区块,验证过程将针对区块中的区块头、Merkle树根、版本号等字段进行验算和比对,以生成本节点的投票值;
(6)广播投票:节点将验证区块的结果全网广播;
(7)出块/回滚:在这一个阶段中,每一个节点将会持续收到投票广播;当收到第一个投票广播时,节点将进入计票阶段并且临时维护一个投票记录缓冲区,这个缓冲区仅仅用于当前高度与轮数的S-PBFT共识过程;每当收到投票信息时,节点记录投票结果并判断是否达到出块/回滚的票数阈值。当投票赞成数超过阈值时,节点出块并且自动进入下一轮共识;当投票反对数超过阈值时,节点将废弃当前的共识,进入下一轮共识。
本发明的第三方面提供一种基于PBFT的S-PBFT简化共识协议的内部并行方法的优化方法,包括:
当第N轮做块执行到区块广播的步骤时,全网节点在收到广播后,可以直接进入第N+1轮的共识。由于收到区块广播后,节点已知当前轮数共识的区块中交易的摘要,使得其可以对下一轮共识的交易进行预先筛选;
选取交易,当第N轮以节点A为主节点,交易集合为TX1、TX2和TX3时,广播过后其余的节点将会提前搜集当前交易池中的和当前区块内部交易集合不重复的合法交易,并且进行读取、计算Merkle树根和封装;
当第N+1轮完成区块生成后,将被阻塞,直至第N轮共识进行到投票广播;投票的结果将会被共享到第N+1轮的逻辑判断中,当得知第N轮投票通过时,第N+1轮即可解除阻塞并进行下一个流程;当得知第N轮投票不通过时,丢弃第N+1轮生成的交易数据并进入下一轮。
本发明的第四方面提供一种电子设备,包括处理器和通信电路,所述处理器连接所述通信电路,所述处理器用于执行指令以实现如第一到第三方面所述的方法。
本发明的第五方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述多条指令可被处理器读取并执行如第一到第三方面所述的方法。
本发明提供的S-PBFT共识协议相关的方法以及电子设备,具有如下有益效果:
(1)S-PBFT共识协议的内部并行流程设计通过流水线的形式,充分利用了网络通信过程中产生的闲置计算资源,通过交易收集提前和数据缓存的形式,将等待广播数据过程中的空闲时间进行循环利用,使得共识流程更加高效。
(2)通过对主流PBFT共识协议的流程简化和并行化,从而提高联盟链的数据吞吐能力。由于S-PBFT相较于PBFT减少了准备阶段,仅进行一次共识广播完成区块的校验检查,当主节点执行区块交易过程中出现作恶时,将会导致PBFT协议无法正确地进行下一轮共识。在此,SBFT引入的轮流选主规避了主节点数据不一致而导致的错误情况。轮流选主的过程使得节点在执行区块交易后产生的签名数据在下一轮共识中被检查,数据不一致的主节点将由于无法共识通过而被更换,从而保证了S-PBFT的拜占庭容错特性与可用性。
附图说明
图1为根据本发明优选实施例的S-PBFT共识协议流程图。
图2为根据本发明优选实施例的S-PBFT共识协议中区块声明周期流程图。
图3为根据本发明优选实施例的S-PBFT并行优化流程图。
图4为根据本发明优选实施例的交易选取流程图。
图5为根据本发明优选实施例的电子设备构成图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,本实施例提供一方面提供了一种基于PBFT的S-PBFT简化共识协议运行方法,S-PBFT共识协议面向联盟链设计,由于联盟链节点与公有链相比需要一定的审批许可,方能加入共识。所以S-PBFT共识协议将PBFT共识协议的广播流程进行优化,在保证数据安全性的前提下减少不必要节点广播阶段,以加快数据一致性的共识过程。S-PBFT共识协议的流程如1所示,包括:
(1)请求阶段:请求将广播至全网节点,每一个节点接收请求的行为是相同的;
(2)预准备阶段:基于联盟链的技术特点,S-PBFT共识协议以轮询的方式进行选主,以保证节点之间的对等性;每一轮共识开始前将完成选主;这里引入区块高度和轮数的概念:区块高度指的是共识开始前,以确认并加入区块链数据中区块的数量;轮数指的是针对基于区块高度的下一区块,已进行过多少次共识计算。选主的算法过程如下:
Propose(hash(h,r))=n (1)
其中,Propose函数将计算出本轮主节点的编号n,n为小于当前网络节点总数N的自然数,用于索引唯一的节点。在主节点被唯一确定后,主节点将会将收集到的请求信息进行打包并广播给全网节点。广播的数据可以用5元组来表示:BroadcastingData={Height,Round,Txs,Node,Digest} (2)
主节点的广播数据中需要蕴含当前共识中的区块高度、轮数、交易数据、节点自身数据以及消息摘要,这些数据可以使得其他从节点对主节点的做块操作进行充分的验证;
(3)提交阶段:S-PBFT共识协议在本阶段将进行投票操作,投票由全网节点共同参与,并且每一个节点的投票行为相互独立;节点收到了预准备阶段的广播数据后,基于本地区块数据对主节点的做块行为进行验证;验证结束后,将验证的结果转换为投票结果,进行全网广播。
(4)结束阶段:经过上一轮的全网投票,每一个节点都将会收到投票信息;当节点收到的投票信息足以使得其作出判断时,节点将进行做块或否定做块;之后,本轮结束,每一个节点均将进入下一轮的共识。
S-PBFT共识协议保证节点之间是对等的,在共识协议中所进行的状态转换流程也是相同的。S-PBFT共识协议的算法流程如表1所示:
表1 S-PBFT共识协议算法流程
在描述S-PBFT共识协议的算法中,第9~12行描述了验证与投票阶段。在主节点广播的Block数据中,携带了交易数据、交易Merkle树、高度为height-1的区块头部与状态树哈希、时间戳和版本号等信息。Verify函数用于验证Block在本节点的数据状态下是否合法,基于S-PBFT共识协议的对等性,收到Block数据的节点将会检查Block中的交易是否处于本节点的交易缓冲区中;并且对Block中交易数据的Merkle树根进行验算,对上一个区块的各项数据进行比对。经过Verify函数后,节点将得出本次的投票结果Vote值,进行广播。
接收投票并处理的环节起始与第14行,节点维护了本轮中投票的信息,每当接受到本轮投票时,进行计票并检查赞同票和反对票是否超过各自的阈值。当投票通过时,节点将认为本次共识的Block是合法的,可以被添加进自己维护的区块链数据中,则写入区块并且将height自增,round归零;投票不通过时,节点将round自增并开启新的一轮共识,旧的Block将不会被缓存。
作为优选的实施方式,S-PBFT共识协议规定了两种流程异常情况及其处理方式:
(1)集群变动:集群出现节点加入或退出时,S-PBFT共识协议触发集群变动,除了新加入/退出的节点之外,其余节点将终止本轮共识并回滚至本轮共识尚未开始的状态,并重新基于新的集群网络拓扑信息进行共识。特别的,若节点发现自身感知的集群节点数目小于4个,则停止共识并广播停止消息。由于4节点集群是拜占庭容错的最小集群数量,当集群数量小于4时,拜占庭容错将失去意义。
(2)回复超时:在投票阶段,若节点在一定时间内收到的投票没有达到节点做出决策的阈值,则该节点以本轮反对票超过阈值的情况处理。
如图2所示,为区块的声明周期流程图,本发明的第二方面提供一种基于PBFT的S-PBFT简化共识协议的内部并行流程方法,S-PBFT共识协议中,一轮正常顺序的流程依次为区块生成、区块广播、区块验证、投票广播和区块写入/回滚。这些流程依照耗时瓶颈的诱因可以分为两类:本地计算耗时和网络通信耗时。本地计算耗时的流程有区块生成、区块验证和区块写入;网络通信耗时的流程为区块广播与投票广播。为了进一步探究流程中可并行化操作的部分,以下将结合一个区块在S-PBFT共识协议中的生命周期来进行探究。包括:
(1)收集交易:节点维护一个交易缓冲区,用于存放未执行的交易;每一轮共识开始时,主节点从缓冲区中收集一定量的交易,等待做块;
(2)选取交易:主节点基于本地的区块数据,筛选出不重复并且合法的交易,用于构造区块;
(3)构造区块:主节点将上一步收集的交易数据打包并计算Merkle树根,之后检查本地区块数据并获得上一个区块的区块头,状态树树根等数据,进行摘要生成新的区块头;
(4)广播区块:主节点将构造的区块进行全网广播,广播区块这一流程是S-PBFT共识协议的开始;
(5)验证区块:收到广播的节点将会验证区块,验证过程将针对区块中的区块头、Merkle树根、版本号等字段进行验算和比对,以生成本节点的投票值;
(6)广播投票:节点将验证区块的结果全网广播;
(7)出块/回滚:在这一个阶段中,每一个节点将会持续收到投票广播;当收到第一个投票广播时,节点将进入计票阶段并且临时维护一个投票记录缓冲区,这个缓冲区仅仅用于当前高度与轮数的S-PBFT共识过程;每当收到投票信息时,节点记录投票结果并判断是否达到出块/回滚的票数阈值。当投票赞成数超过阈值时,节点出块并且自动进入下一轮共识;当投票反对数超过阈值时,节点将废弃当前的共识,进入下一轮共识。
以上的流程在有序串行的情况下执行能够保证正确性,但是仍旧存在着可以进行优化的空间。如图3所示,本发明的第三方面提供一种基于PBFT的S-PBFT简化共识协议的内部并行流程优化方法,包括:
当第N轮做块执行到区块广播的步骤时,全网节点在收到广播后,可以直接进入第N+1轮的共识。由于收到区块广播后,节点已知当前轮数共识的区块中交易的摘要,使得其可以对下一轮共识的交易进行预先筛选。由于节点的对等性,交易缓冲池的内容保证了一定的统一性;
选取交易,交易的选取如图4所示,当第N轮以节点A为主节点,交易集合为TX1、TX2和TX3时,广播过后其余的节点将会提前搜集当前交易池中的和当前区块内部交易集合不重复的合法交易,并且进行读取、计算Merkle树根和封装;
当第N+1轮完成区块生成后,将被阻塞,直至第N轮共识进行到投票广播;投票的结果将会被共享到第N+1轮的逻辑判断中,当得知第N轮投票通过时,第N+1轮即可解除阻塞并进行下一个流程;当得知第N轮投票不通过时,丢弃第N+1轮生成的交易数据并进入下一轮。
本实施例对方法的可用性进行如下评估:
S-PBFT共识协议的内部并行流程设计基于计算资源的并行化支持,即保证了共识期间系统本身的多任务处理能力。由于流程本身是需要计算资源和存储资源支持的,并行化流程的执行需要系统额外划分出其他的资源进行流程执行。在具体的工程实现中,需要通过对运行区块链系统的硬件资源进行评估,判断是否开启并行功能以优化性能。
如图5所示,本实施例还提供了一种电子设备,包括处理器301和与处理器301连接的通信电路302,处理器301内存储有多条指令,指令可被处理器加载并执行,以使处理器301能够执行如上所述的方法。
本实施例还提供了一种计算机可读存储介质,存储有多条指令,指令用于实现如上所述的方法。
本实施例提供的系统、方法和电子设备,具有如下有益效果:
(1)S-PBFT共识协议的内部并行流程设计通过流水线的形式,充分利用了网络通信过程中产生的闲置计算资源,通过交易收集提前和数据缓存的形式,将等待广播数据过程中的空闲时间进行循环利用,使得共识流程更加高效。
(2)通过对主流PBFT共识协议的流程简化和并行化,从而提高联盟链的数据吞吐能力。由于S-PBFT相较于PBFT减少了准备阶段,仅进行一次共识广播完成区块的校验检查,当主节点执行区块交易过程中出现作恶时,将会导致PBFT协议无法正确地进行下一轮共识。在此,SBFT引入的轮流选主规避了主节点数据不一致而导致的错误情况。轮流选主的过程使得节点在执行区块交易后产生的签名数据在下一轮共识中被检查,数据不一致的主节点将由于无法共识通过而被更换,从而保证了S-PBFT的拜占庭容错特性与可用性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种基于PBFT的S-PBFT简化共识协议运行方法,其特征在于,包括:
(1)请求阶段:请求将广播至全网节点,每一个节点接收请求的行为是相同的;
(2)预准备阶段:通过区块高度和轮数计算以轮询的方式进行选主,以保证节点之间的对等性;每一轮共识开始前将完成选主;所述区块高度指的是共识开始前,已确认并加入区块链数据中区块的数量;轮数指的是针对基于区块高度的下一区块,已进行过多少次共识计算;所述选主的过程为:
Propose(hash(h,r))=n (1)
其中,Propose函数将计算出本轮主节点的编号n,n为小于当前网络节点总数N的自然数,用于索引唯一的节点;在主节点被唯一确定后,主节点将会将收集到的请求信息进行打包并广播给全网节点;
(3)提交阶段:S-PBFT共识协议在本阶段将进行投票操作,投票由全网节点共同参与,并且每一个节点的投票行为相互独立;节点收到了预准备阶段的广播数据后,基于本地区块数据对主节点的做块行为进行验证;验证结束后,将验证的结果转换为投票结果,进行全网广播;
(4)结束阶段:经过上一轮的全网投票,每一个节点都将会收到投票信息;当节点收到的投票信息足以使得其作出判断时,节点将进行做块或否定做块;之后,本轮结束,每一个节点均将进入下一轮的共识;
所述基于PBFT的S-PBFT简化共识协议运行方法的内部并行方法依次包括:区块生成、区块广播、区块验证、投票广播和区块写入/回滚;所述内部并行方法依照耗时瓶颈的诱因分为两类:本地计算耗时和网络通信耗时;本地计算耗时的流程有区块生成、区块验证和区块写入;网络通信耗时的流程为区块广播与投票广播;
所述基于PBFT的S-PBFT简化共识协议的内部并行方法包括:
(1)收集交易:节点维护一个交易缓冲区,用于存放未执行的交易;每一轮共识开始时,主节点从缓冲区中收集一定量的交易,等待做块;
(2)选取交易:主节点基于本地的区块数据,筛选出不重复并且合法的交易,用于构造区块;
(3)构造区块:主节点将上一步收集的交易数据打包并计算Merkle树根,之后检查本地区块数据并获得上一个区块的区块头,状态树树根等数据,进行摘要生成新的区块头;
(4)广播区块:主节点将构造的区块进行全网广播,广播区块这一流程是S-PBFT共识协议的开始;
(5)验证区块:收到广播的节点将会验证区块,验证过程将针对区块中的区块头、Merkle树根、版本号等字段进行验算和比对,以生成本节点的投票值;
(6)广播投票:节点将验证区块的结果全网广播;
(7)出块/回滚:在这一个阶段中,每一个节点将会持续收到投票广播;当收到第一个投票广播时,节点将进入计票阶段并且临时维护一个投票记录缓冲区,这个缓冲区仅仅用于当前高度与轮数的S-PBFT共识过程;每当收到投票信息时,节点记录投票结果并判断是否达到出块/回滚的票数阈值;当投票赞成数超过阈值时,节点出块并且自动进入下一轮共识;当投票反对数超过阈值时,节点将废弃当前的共识,进入下一轮共识;
当第N轮做块执行到区块广播的步骤时,全网节点在收到广播后,可以直接进入第N+1轮的共识;由于收到区块广播后,节点已知当前轮数共识的区块中交易的摘要,使得其可以对下一轮共识的交易进行预先筛选;
选取交易,当第N轮以节点A为主节点,交易集合为TX1、TX2和TX3时,广播过后其余的节点将会提前搜集当前交易池中的和当前区块内部交易集合不重复的合法交易,并且进行读取、计算Merkle树根和封装;
当第N+1轮完成区块生成后,将被阻塞,直至第N轮共识进行到投票广播;投票的结果将会被共享到第N+1轮的逻辑判断中,当得知第N轮投票通过时,第N+1轮即可解除阻塞并进行下一个流程;当得知第N轮投票不通过时,丢弃第N+1轮生成的交易数据并进入下一轮。
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)回复超时:在投票阶段,若节点在一定时间内收到的投票没有达到节点做出决策的阈值,则该节点以本轮反对票超过阈值的情况处理。
6.一种电子设备,其特征在于,包括处理器和通信电路,所述处理器连接所述通信电路,所述处理器用于执行指令以实现如权利要求1-5任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述多条指令可被处理器读取并执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111429918.4A CN114157672B (zh) | 2021-11-29 | 2021-11-29 | 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111429918.4A CN114157672B (zh) | 2021-11-29 | 2021-11-29 | 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114157672A CN114157672A (zh) | 2022-03-08 |
CN114157672B true CN114157672B (zh) | 2022-10-28 |
Family
ID=80784144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111429918.4A Active CN114157672B (zh) | 2021-11-29 | 2021-11-29 | 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114157672B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115051985B (zh) * | 2022-04-01 | 2024-01-12 | 深圳瑞泰信资讯有限公司 | 一种基于动态节点的拜占庭容错共识协议的数据共识方法 |
CN115086349A (zh) * | 2022-06-10 | 2022-09-20 | 河南工业大学 | 一种基于流水线的高效区块链共识算法 |
CN115766616B (zh) * | 2022-10-16 | 2024-04-26 | 昆明理工大学 | 一种基于HoneyBadgerBFT共识算法的数据共享方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677485A (zh) * | 2019-09-30 | 2020-01-10 | 大连理工大学 | 一种基于信用的动态分层拜占庭容错共识方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
US10944624B2 (en) * | 2019-06-28 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Changing a master node in a blockchain system |
CN112187490B (zh) * | 2019-07-01 | 2023-04-07 | 深圳法大大网络科技有限公司 | 一种拜占庭容错共识方法及系统 |
CN110796547A (zh) * | 2019-10-30 | 2020-02-14 | 桂林电子科技大学 | 一种基于联盟区块链的改进的实用拜占庭容错系统 |
CN111865968A (zh) * | 2020-07-16 | 2020-10-30 | 南京工业大学 | 一种实用于区块链的优化拜占庭容错算法 |
CN112532581A (zh) * | 2020-10-26 | 2021-03-19 | 南京辰阔网络科技有限公司 | 一种基于共识参与度和交易活跃度的改进pbft共识方法 |
-
2021
- 2021-11-29 CN CN202111429918.4A patent/CN114157672B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677485A (zh) * | 2019-09-30 | 2020-01-10 | 大连理工大学 | 一种基于信用的动态分层拜占庭容错共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114157672A (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114157672B (zh) | 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 | |
CN110677485B (zh) | 一种基于信用的动态分层拜占庭容错共识方法 | |
CN111355810B (zh) | 一种基于信誉与投票机制的改进pbft共识方法 | |
CN111736963B (zh) | 一种用于无主链多分片区块链的事务处理系统及方法 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN106406896B (zh) | 一种并行PipeLine技术的区块链建块方法 | |
De Prisco et al. | Revisiting the Paxos algorithm | |
CN104751359B (zh) | 用于支付清算的系统及方法 | |
CN113570357B (zh) | 一种动态分层的高效pbft算法 | |
CN112187490A (zh) | 一种拜占庭容错共识方法及系统 | |
CN111342971A (zh) | 一种拜占庭共识方法和系统 | |
CN113407632A (zh) | 一种基于pbft的委托权益证明区块链共识算法 | |
US20230275771A1 (en) | Pre-execution of block chain transaction in parallel during block consensus | |
US20230017790A1 (en) | Graphic-blockchain-orientated hybrid consensus implementation apparatus and implementation method thereof | |
WO2022121612A1 (zh) | 区块链网络的信息处理方法、装置、设备及存储介质 | |
CN113448694B (zh) | 一种提高事务处理能力的区块链共识方法 | |
WO2023184881A1 (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
WO2024040796A1 (zh) | 一种区块链电力交易系统、共识方法、设备和存储介质 | |
Agrawal et al. | A performance comparison of algorithms for byzantine agreement in distributed systems | |
WO2024113956A1 (zh) | 节点选取方法、装置、第一节点、存储介质及程序产品 | |
Rai et al. | Blockguard: Adaptive blockchain security | |
CN110555764B (zh) | 一种去中心化环境下区块链达成一致性的方法及系统 | |
CN114861233B (zh) | 一种无需可信第三方的分片异步拜占庭容错共识方法和装置 | |
CN111177262A (zh) | 一种区块链共识方法、相关装置及系统 | |
Li et al. | EBFT: A hierarchical and group-based byzantine fault tolerant consensus algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |