CN113259326B - 基于联盟链网络的共识优化方法、装置和计算机设备 - Google Patents
基于联盟链网络的共识优化方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN113259326B CN113259326B CN202110430340.8A CN202110430340A CN113259326B CN 113259326 B CN113259326 B CN 113259326B CN 202110430340 A CN202110430340 A CN 202110430340A CN 113259326 B CN113259326 B CN 113259326B
- Authority
- CN
- China
- Prior art keywords
- message
- consensus
- nodes
- committee
- request
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种基于联盟链网络的共识优化方法、装置、计算机设备和存储介质。所述方法包括:主节点接收到共识请求,向属于同一委员会的非主节点广播本地预准备消息;当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息。本申请通过构建共识分片协议,不需要各个非主节点之间相互广播共识消息包,提高联盟链网络节点共识效率。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于联盟链网络的共识优化方法、装置、计算机设备和存储介质。
背景技术
随着区块链技术的迅猛发展,区块链可以分类为私有链、联盟链和公有链。相比于私有链和公有链,联盟链在效率和灵活性上更有优势,因此得到了广泛的使用。
然而,联盟链作为一种去中心化的拜占庭容错的分布式系统,所采用的拜占庭容错共识机制中,对节点进行共识操作时,仍然需要系统中的节点之间相互广播共识消息包,导致联盟链网络系统的节点共识效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高联盟链网络系统中节点共识效率的一种基于联盟链网络的共识优化方法、装置、计算机设备和存储介质。
一种基于联盟链网络的共识优化方法,应用于主节点,所述方法包括:
接收共识请求;
向属于同一委员会的非主节点广播第一消息;所述第一消息为本地预准备消息;
当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;所述第一确认消息为所述部分节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;
当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息;所述第二确认消息为部分非主节点基于第二消息生成的提交消息,所述共识结果消息中包括多条所述提交消息。
在其中一个实施例中,当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息包括:
当接收到所述非主节点中不同非主节点返回的第一确认消息的数量达到第一设定数量时,向属于同一委员会的非主节点广播第二消息;其中,所述第一设定数量大于所述联盟链网络中恶意节点的个数。
在其中一个实施例中,当接收到属于同一委员会的部分非主节点基于返回的第二确认消息时,生成针对所述共识请求的共识结果消息包括:
当接收到所述非主节点中不同非主节点返回的第二确认消息的数量达到预设数量时,生成针对所述共识请求的共识结果消息。
在其中一个实施例中,若接收到的所述共识请求来自其他委员会的主节点,所述方法还包括:向所述其他委员会的主节点发送所述共识结果消息。
在其中一个实施例中,在接收共识请求之后,所述方法还包括:为所述共识请求分配序列号;其中,所述第一消息、第一确认消息、第二消息、第二确认消息以及共识结果消息均携带所述序列号,所述序列号用于标识所述共识请求。
一种基于联盟链网络的共识优化方法,应用于主节点,所述方法包括:
接收客户端的共识请求;
若确定所述共识请求为全网共识请求,采用上述实施例中任一项所述的共识优化方法在本地委员会内对所述全网共识请求进行共识,得到第一共识结果消息;
根据所述第一共识结果消息向其他委员会的主节点广播全网预准备消息;
接收其他委员会的主节点针对所述全网预准备消息返回的第二共识结果消息;其中,其他委员会的主节点上述实施例中任一项所述的共识优化方法在各自的本地委员会内对所述全网共识请求进行共识,得到各自的第二共识结果消息;
基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果。
在其中一个实施例中,所述基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果包括:
当接收到其他委员会的主节点返回的第二共识结果消息的数量超过第二设定数量时,对所述第二共识结果消息进行验证,若验证成功,则生成所述全网共识请求对应的全网共识结果。
一种基于联盟链网络的共识优化装置,所述装置包括:
第一广播模块,用于接收共识请求,在接收到共识请求后向属于同一委员会的非主节点广播第一消息;所述第一消息为本地预准备消息;
第二广播模块,用于当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;所述第一确认消息为部分非主节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;
第三广播模块,用于当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息;所述第二确认消息为部分非主节点基于第二消息生成的提交消息,所述共识结果消息中包括多条所述提交消息。
一种基于联盟链网络的共识优化装置,应用于主节点,所述装置包括:
第一共识模块,用于接收客户端的共识请求,若确定所述共识请求为全网共识请求,采用上述实施例中任一项所述的共识优化方法在本地委员会内对所述全网共识请求进行共识,得到第一共识结果消息;
第四广播模块,用于根据所述第一共识结果消息向其他委员会的主节点广播全网预准备消息;
第二共识模块,用于接收其他委员会的主节点针对所述全网预准备消息返回的第二共识结果消息;其中,其他委员会的主节点上述实施例中任一项所述的共识优化方法的方法在各自的本地委员会内对所述全网共识请求进行共识,得到各自的第二共识结果消息;
全网共识结果生成模块,用于基于所述第一分片共识结果消息以及所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述实施例中任一项所述的共识优化方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求上述实施例中任一项所述的共识优化方法的步骤。
上述基于联盟链网络的共识优化方法、装置、计算机设备和存储介质,主节点接收到共识请求时,向属于同一委员会的非主节点广播本地预准备消息;当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;所述第一确认消息为所述部分节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息。通过构建共识分片协议,使得各个委员会在进行节点共识时,通过主节点广播本地预准备消息,基于委员会的一部分非主节点返回的第一确认消息以及第二确认消息,可以得到委员会中的非主节点对本地预准备消息的共识结果,而不需要各个非主节点之间相互广播共识消息包,提高联盟链网络节点共识效率。
附图说明
图1为一个实施例中一种共识优化方法的应用环境图;
图2为一个实施例中一种共识优化方法的流程示意图;
图3为一个实施例中另一种共识优化方法的流程示意图;
图4为另一个实施例中一种共识优化方法的流程示意图;
图5为另一个实施例中一种共识优化方法的协议流程示意图;
图6为一个实施例中一种共识优化装置的结构框图;
图7为另一个实施例一种共识优化装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种基于联盟链网络的共识优化方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与区块链系统108进行通信,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,将区块链系统108划分为若干委员会,每个委员会可以理解为区块链网络中的一个分片,每个分片中包括主节点104和多个非主节点106,包括主节点104和多个非主节点106的各个委员会作为独立的分片可以并行处理共识请求。主节点104以及多个非主节点可以是服务器,也可以是独立的设备,或者独立设备中的虚拟机。
在一个实施例中,如图2所示,提供了一种基于联盟链网络的共识优化方法,以该方法应用于图1中任一委员会中的主节点104为例进行说明,包括以下步骤:
步骤202:接收共识请求;
其中,任一委员会的主节点接收共识请求,可选地,该共识请求可以是客户端发送的共识请求,也可以是其他委员会主节点发送的共识请求;根据请求消息级别的不同,共识请求消息可分为本地共识请求和全网共识请求。对于本地共识请求,在本地委员会内进行共识,对于全网共识请求,需要同时在本地委员会以及其他委员会中进行共识。本地委员会和其他委员会是相对而言的,将当前进行共识请求的委员会作为本地委员会,联盟链网络中的剩余委员会作为其他委员会。
步骤204:向属于同一委员会的非主节点广播第一消息;所述第一消息为本地预准备消息;其中,本地预准备消息为用于指示非主节点执行所述共识请求的消息。
在其中一个实施例中,当主节点接收到共识请求时,为该共识请求分配序列号n,并向与该主节点属于同一委员会中的各个非主节点广播一条本地预准备消息,本地预准备消息的格式为:<<n-pre-prepare,n,d,τ>σ,m>,其中,本地预准备消息中,m表示请求消息的内容,d表示请求消息内容m的摘要,τ表示本地委员会中的各节点基本信息,<x>σ代表节点对内容x进行签名。通过对本地预准备消息进行签名保证消息在传送过程中的安全性。可选地,各节点的基本信息包括节点序号、节点状态以及节点IP地址等基础信息,节点状态包括活跃和黑名单,活跃表示节点正在同一委员会中,黑名单表示节点已被当前委员会拒绝,主节点向属于同一委员会中所有的活跃非主节点广播本地预准备消息。
在一些实施例中,主节点向属于同一委员会中所有的活跃非主节点广播本地预准备消息时,将该本地预准备消息添加到主节点自身的本地日志中。
在一些实施例中,主节点向属于同一委员会中所有的活跃非主节点广播本地预准备消息时,启动计时器开始计时,若在预设的时间间隔之后未收到非主节点返回的第一确认消息,则再次向属于同一委员会中所有的活跃非主节点广播本地预准备消息,直到主节点接收到非主节点返回的第一确认消息。
需要说明的是,本地预准备消息的格式和内容是可以根据业务场景调整的,比如增加或删减一个或多个信息内容,如省略其中的摘要。
步骤206:当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;所述第一确认消息为所述部分节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;在其中一个实施例中,主节点向属于同一委员会的所有活跃非主节点广播本地预准备消息并开始计时后,属于同一委员会的诚实的活跃非主节点在接收到主节点发送的本地预准备消息后,对所述本地预准备消息进行验证,若验证通过,则接收该本地预准备消息,进入准备阶段,同时回复准备消息给主节点;主节点接收诚实的活跃非主节点返回的准备消息,对所述准备消息进行验证,当验证通过时,向属于同一委员会的非主节点广播第二消息;
在其中一个实施例中,主节点向属于同一委员会的非主节点广播的第二消息中,包括多条不同的活跃非主节点验证通过的所述准备消息,以使得同一委员会的非主节点在接收到主节点广播的上述第二消息时,能够获取到其他非主节点对于该准备消息的验证结果。第二消息的格式为:<prepare-collect,τ,n,T>σ,其中,n为共识请求的节点序列号,τ表示本地委员会中的各节点基本信息,T为来自不同的非主节点返回的一组2f+1签名并验证通过的准备消息,f为联盟链网络同一委员会中恶意节点的个数。当联盟链网络中存在恶意节点时,非主节点返回的验证通过的准备消息的数量大于同一委员会中恶意节点个数时,才能确保本地委员会的大部分诚实活跃非主节点对节点共识达成一致,避免收到大部分恶意节点返回的第一确认消息,提高得到的第二消息的有效性。
在一些实施例中,主节点向属于同一委员会中的非主节点广播第二消息时,启动计时器开始计时,若在预设的时间间隔之后未收到非主节点返回的第二确认消息,则再次向属于同一委员会中的非主节点广播第二消息,直到主节点接收到非主节点返回的第二确认消息。
需要说明的是,第二消息的格式和内容是可以根据业务场景调整的,比如增加或删减一个或多个信息内容。
步骤208:当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息;所述第二确认消息为部分非主节点基于第二消息生成的提交消息,所述共识结果消息中包括多条所述提交消息。
在其中一个实施例中,主节点向属于同一委员会的非主节点广播一条第二消息后,活跃的非主节点对接收到的第二消息进行验证,并在验证通过后进入提交阶段,同时发送第二确认信息给主节点。主节点在接收到第二确认消息后生成针对共识请求的共识结果消息,对所述第二确认消息进行验证,当验证通过时,向属于同一委员会的非主节点广播所述共识结果消息。
在其中一个实施例中,主节点生成的针对共识请求的共识结果消息中,包括多条不同的活跃非节点验证通过的第二确认消息,以使得同一委员会的非主节点在接收到该第二确认消息时,能够获取到其他非主节点对于该第二确认消息的验证结果。共识结果消息的格式为:<commit-collect,τ,n,K>σ,其中,其中,n为共识请求的节点序列号,τ表示本地委员会中的各节点基本信息,K为来自不同的非主节点返回的一组2f+1签名并验证通过的提交消息,f为联盟链网络同一委员会中恶意节点的个数。当联盟链网络中存在恶意节点时,非主节点返回的验证通过的提交消息的数量大于同一委员会恶意节点个数时,才能确保本地委员会的大部分诚实活跃非主节点对节点共识达成一致,避免收到大部分恶意节点返回的第二确认消息,提高得到的共识结果消息的有效性。
需要说明的是,共识结果消息的格式和内容是可以根据业务场景调整的,比如增加或删减一个或多个信息内容。
上述基于联盟链网络的共识优化方法,主节点接收到共识请求时,向属于同一委员会的非主节点广播本地预准备消息;当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;所述第一确认消息为所述部分节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息。通过构建共识分片协议,使得各个委员会在进行节点共识时,通过主节点广播本地预准备消息,基于委员会的一部分非主节点返回的第一确认消息以及第二确认消息,可以得到委员会中的非主节点对本地预准备消息的共识结果,而不需要各个非主节点之间相互广播共识消息包,提高联盟链网络节点共识效率。
在一个实施例中,当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息包括:
当主节点接收到所述非主节点中不同非主节点返回的第一确认消息的数量达到第一设定数量时,再向属于同一委员会的非主节点广播第二消息;其中,所述第一设定数量大于所述联盟链网络中恶意节点的个数。
可选地,当主节点接收到来自不同的诚实活跃非主节点返回的超过2f条的准备消息,向属于同一委员会的非主节点广播第二消息;其中f为联盟链网络同一委员会中恶意节点的个数。当联盟链网络中存在恶意节点时,主节点接收到非主节点返回的验证通过的第一确认消息的数量大于同一委员会中恶意节点个数时,才能确保本地委员会的大部分诚实活跃非主节点对节点共识达成一致,避免收到大部分恶意节点返回的第一确认消息,进而提高得到的第一确认消息的有效性。
在一个实施例中,当接收到属于同一委员会的部分非主节点基于返回的第二确认消息时,生成针对所述共识请求的共识结果消息包括:
当主节点接收到活跃的非主节点返回的第二确认消息的数量达到预设数量时,再基于接收的第二确认消息生成针对所述共识请求的共识结果消息;其中,所述第一设定数量大于所述联盟链网络中恶意节点的个数。
可选地,当主节点接收到来自不同的活跃非主节点返回的超过2f条的第二确认消息,生成共识结果消息,并将上述共识结果消息广播给同一委员会的非主节点;其中f为联盟链网络同一委员会中恶意节点的个数。当联盟链网络中存在恶意节点时,主节点接收到活跃的非主节点返回的验证通过的第二确认消息的数量大于同一委员会中恶意节点个数时,才能确保本地委员会的大部分诚实活跃非主节点对节点共识达成一致,避免收到大部分恶意节点返回的第二确认消息,进而提高得到的第二确认消息的有效性。
在一个实施例中,如图3所示,若接收到的所述共识请求来自其他委员会的主节点,所述方法还包括:
步骤310:向所述其他委员会的主节点发送所述共识结果消息。
在其中一个实施例中,主节点接收的共识请求可以是来自客户端的共识请求,也可以是来自其他委员会主节点的共识请求,若主节点接收到的共识请求来自于客户端的本地共识请求,则基于上述共识方法在本地委员会内将共识结果消息广播给属于同一委员会的非主节点。若主节点接收的共识请求来自于其他委员会主节点的共识请求,则将共识结果消息广播给属于同一委员会的非主节点的同时,将所述共识结果消息发送给其他委员会的主节点,从而使得其他委员会的主节点能够得到该本地委员会的共识结果。
在一个实施例中,在接收共识请求之后,所述方法还包括:为所述共识请求分配序列号;其中,所述第一消息、第一确认消息、第二消息、第二确认消息以及共识结果消息均携带所述序列号,所述序列号用于标识所述共识请求。主节点接收到共识请求后,为所述共识请求分配序列号,在所述第一消息、第一确认消息、第二消息、第二确认消息以及共识结果消息均携带所述序列号,以使得在节点共识过程中能够通过序列号来标识共识请求。
在一个实施例中,所述主节点向属于同一委员会的非主节点广播所述共识结果消息之后还包括:主节点以及同一委员会的非主节点基于所述共识结果消息之后,对所述共识结果消息进行验证,并在验证成功后基于共识结果消息执行所述共识请求。
在另一个实施例中,提供了另一种基于联盟链网络的共识优化方法,以该方法应用于图1中的主节点服务器为例进行说明,包括以下步骤:
一种基于联盟链网络的共识优化方法,应用于主节点,所述方法包括:
步骤402:接收客户端的共识请求;
步骤404:若确定所述共识请求为全网共识请求,采用上述实施例中任一项的共识优化方法在本地委员会内对所述全网共识请求进行共识,得到第一共识结果消息;
进一步地,全网共识请求的前半部分共识过程与本地共识一致,主节点在接收到客户端发送的全网共识请求时,先基于上述实施例中任一项的共识优化方法在本地委员会内进行本地共识得到第一共识结果消息。
步骤406:根据所述第一共识结果消息向其他委员会的主节点广播全网预准备消息;
进一步地,主节点在本地委员会内进行本地共识得到第一共识结果消息之后,根据该第一共识结果消息,编辑一条全网预准备消息并广播给联盟链网络中其他委员会的主节点。可选地,所述全网预准备消息的格式如下:
<<w-pre-prepare,n,d,τ,K>σ,m>
与本地预准备消息相比,全网预准备消息中加入了K,n为共识请求的节点序列号,τ表示本地委员会中的各节点基本信息,m为消息内容的摘要,K表示来自同一个委员会中不同的非主节点的一组2f+1签名并验证通过的提交消息,f为联盟链网络同一委员会中恶意节点的个数。当联盟链网络中存在恶意节点时,其他委员会的主节点接收到本地委员会内中不同的非主节点返回的验证通过的提交消息的数量大于同一委员会中恶意节点个数时,才能确保本地委员会的大部分诚实活跃非主节点对节点共识达成一致,避免收到大部分恶意节点返回的提交消息,进而提高得到的全网预准备消息的有效性。
需要说明的是,全网预准备消息的格式和内容是可以根据业务场景调整的,比如增加或删减一个或多个信息内容,如省略其中的摘要m。
步骤408:接收其他委员会的主节点针对所述全网预准备消息返回的第二共识结果消息;其中,其他委员会的主节点上述实施例中任一项所述的共识优化方法在各自的本地委员会内对所述全网共识请求进行共识,得到各自的第二共识结果消息;
进一步地,联盟链网络中其他委员会的主节点在接收到全网预准备消息后,根据该全网预准备消息生成新一轮本地预准备消息广播至各自的本地非主节点,在各自的委员会内采用上述实施例中任一项所述的共识优化方法进行本地委员会共识得到各自的第二共识结果消息,并将上述第二共识结果消息返回给当前主节点。
步骤410:基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果。上述基于联盟链网络的共识优化方法,通过将联盟链网络分为若干委员会,在接收到全网共识请求时,将全网共识请求在各自的委员会内进行本地共识,同时主节点广播全网预准备消息给其他委员会主节点时,携带了本地共识结果消息,通过构造共识分片协议,从而能够通过跨片消息实现对全网共识请求的处理,进一步提高了联盟链网络节点的共识效率。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请实施例并不限于此。
如图4所示,主节点接收到客户端发送的共识请求,本地委员会主节点在本地委员会内广播共识消息,采用上述实施例中的共识优化方法在本地委员内进行共识,本地委员会非主节点对主节点发送的共识请求消息进行验证,若验证成功后将本地共识结果消息返回给主节点,主节点返回确认本地共识结果消息给客户端,共识过程结束,若非主节点验证失败则直接结束;当共识请求消息为全网共识请求时,主节点进一步将共识消息广播给联盟链网络中的所有其他委员会主节点,各个其他委员会主节点在各自的委员会内采用上述实施例中的共识优化方法进行共识,各个委员会对共识请求消息进行验证,若验证成功后将各个委员会的共识结果消息返回给原主节点,原主节点返回各个委员会的共识结果消息给客户端,共识过程结束,若各个委员会验证失败则直接结束。通过将联盟链网络分为若干委员会分片,构建共识分片协议来实现本地节点共识和全网节点共识,各个委员会可以并行处理节点共识,减少计算或存储的冗余,提高了网络中节点的共识效率。
进一步地,如图5所示,给出了客户端C在联盟链网络中完成全网共识协议的过程。分片1表示本地委员会,分片2与分片3表示联盟链网络中其他委员会。
在其中一个实施例中,所述基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果包括:
当接收到其他委员会的主节点返回的第二共识结果消息的数量超过第二设定数量时,对所述第二共识结果消息进行验证,若验证成功,则生成所述全网共识请求对应的全网共识结果。可选地,第二设定数量为联盟链网络中委员会数量的一半,当接收到联盟链网络中大部分委员会返回的第二共识结果消息时,对第二共识结果进行验证,若验证成功,则生成全网共识结果。
在其中一个实施例中,所述基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果之后还包括:主节点对所述第二共识结果消息进行验证,并在验证成功后基于所述第二共识结果消息执行所述全网共识请求。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种基于联盟链网络的共识优化装置,所述装置包括:
第一广播模块610,用于接收共识请求,在接收到共识请求后向属于同一委员会的非主节点广播第一消息;所述第一消息为本地预准备消息;
第二广播模块620,用于当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息;所述第一确认消息为部分非主节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;
第三广播模块630,用于当接收到属于同一委员会的部分非主节点返回的第二确认消息时,生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息;所述第二确认消息为部分非主节点基于第二消息生成的提交消息,所述共识结果消息中包括多条所述提交消息。
在其中一个实施例中,所述第二广播模块620,还用于当接收到所述非主节点中不同非主节点返回的第一确认消息的数量达到第一设定数量时,向属于同一委员会的非主节点广播第二消息;其中,所述第一设定数量大于所述联盟链网络中恶意节点的个数。
在其中一个实施例中,所述第三广播模块630,还用于当接收到所述非主节点中不同非主节点返回的第二确认消息的数量达到预设数量时,生成针对所述共识请求的共识结果消息。
在其中一个实施例中,若接收到的所述共识请求来自其他委员会的主节点,所述装置还包括:
第一发送模块,用于向所述其他委员会的主节点发送所述共识结果消息。
在其中一个实施例中,在接收共识请求之后,所述装置还包括:
序列号分配模块,用于为所述共识请求分配序列号;其中,所述第一消息、第一确认消息、第二消息、第二确认消息以及共识结果消息均携带所述序列号,所述序列号用于标识所述共识请求。
在另一个实施例中,如图7所示,提供了另一种基于联盟链网络的共识优化装置,应用于主节点,所述装置包括:
第一共识模块710,用于接收客户端的共识请求,若确定所述共识请求为全网共识请求,采用上述实施例中任一项所述的共识优化方法在本地委员会内对所述全网共识请求进行共识,得到第一共识结果消息;
第四广播模块720,用于根据所述第一共识结果消息向其他委员会的主节点广播全网预准备消息;
第二共识模块730,用于接收其他委员会的主节点针对所述全网预准备消息返回的第二共识结果消息;其中,其他委员会的主节点上述实施例中任一项所述的共识优化方法的方法在各自的本地委员会内对所述全网共识请求进行共识,得到各自的第二共识结果消息;
全网共识结果生成模块740,用于基于所述第一分片共识结果消息以及所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果。
关于基于联盟链网络的共识优化装置的具体限定可以参见上文中对于基于联盟链网络的共识优化方法的限定,在此不再赘述。上述基于联盟链网络的共识优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图8所示,提供了一种计算机设备,该计算机设备可以是服务器,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储共识节点的基础数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于联盟链网络的共识优化方法。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于联盟链网络的共识优化方法,其特征在于,应用于主节点,所述方法包括:
接收共识请求;
向属于同一委员会的非主节点广播第一消息,并在预设的第一时间间隔之后未收到所述非主节点返回的第一确认消息时,再次向属于同一委员会中的活跃非主节点广播所述第一消息,直到接收到所述非主节点返回的第一确认消息;所述第一消息为本地预准备消息;
当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息,并在预设的第二时间间隔之后未收到非主节点返回的第二确认消息时,再次向属于同一委员会的非主节点广播所述第二消息,直到接收到非主节点返回的第二确认消息;所述第一确认消息为所述部分节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;
当接收到属于同一委员会的部分非主节点返回的第二确认消息时,并对所述第二确认消息进行验证,若验证通过,则生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息;所述第二确认消息为部分非主节点基于第二消息生成的提交消息,所述共识结果消息中包括多条所述提交消息;
若接收到的所述共识请求来自其他委员会的主节点,所述方法还包括:
向所述其他委员会的主节点发送所述共识结果消息。
2.根据权利要求1所述的方法,其特征在于,当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息包括:
当接收到所述非主节点中不同非主节点返回的第一确认消息的数量达到第一设定数量时,向属于同一委员会的非主节点广播第二消息;其中,所述第一设定数量大于所述联盟链网络同一委员会中恶意节点的个数。
3.根据权利要求2所述的方法,其特征在于,当接收到属于同一委员会的部分非主节点基于返回的第二确认消息时,生成针对所述共识请求的共识结果消息包括:
当接收到所述非主节点中不同非主节点返回的第二确认消息的数量达到预设数量时,生成针对所述共识请求的共识结果消息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述接收共识请求之后,还包括:
为所述共识请求分配序列号;其中,所述第一消息、第一确认消息、第二消息、第二确认消息以及共识结果消息均携带所述序列号,所述序列号用于标识所述共识请求。
5.一种基于联盟链网络的共识优化方法,其特征在于,应用于主节点,所述方法包括:
接收客户端的共识请求;
若确定所述共识请求为全网共识请求,采用权利要求1-4任一项所述的方法在本地委员会内对所述全网共识请求进行共识,得到第一共识结果消息;
根据所述第一共识结果消息向其他委员会的主节点广播全网预准备消息;
接收其他委员会的主节点针对所述全网预准备消息返回的第二共识结果消息;其中,其他委员会的主节点采用权利要求1-4任一项所述的方法在各自的本地委员会内对所述全网共识请求进行共识,得到各自的第二共识结果消息;
基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果,包括:
当接收到其他委员会的主节点返回的第二共识结果消息的数量超过第二设定数量时,对所述第二共识结果消息进行验证,若验证成功,则生成所述全网共识请求对应的全网共识结果。
7.一种基于联盟链网络的共识优化装置,其特征在于,所述装置包括:
第一广播模块,用于接收共识请求,在接收到共识请求后向属于同一委员会的非主节点广播第一消息,并在预设的第一时间间隔之后未收到所述非主节点返回的第一确认消息时,再次向属于同一委员会中的活跃非主节点广播所述第一消息,直到接收到所述非主节点返回的第一确认消息;所述第一消息为本地预准备消息;
第二广播模块,用于当接收到所述非主节点中部分节点返回的第一确认消息时,向属于同一委员会的非主节点广播第二消息,并在预设的第二时间间隔之后未收到非主节点返回的第二确认消息时,再次向属于同一委员会的非主节点广播所述第二消息,直到接收到非主节点返回的第二确认消息;所述第一确认消息为部分非主节点基于第一消息生成的准备消息,所述第二消息为包括多条所述准备消息的准备收集消息;
第三广播模块,用于当接收到属于同一委员会的部分非主节点返回的第二确认消息时,并对所述第二确认消息进行验证,若验证通过,则生成针对所述共识请求的共识结果消息,并向属于同一委员会的非主节点广播所述共识结果消息;所述第二确认消息为部分非主节点基于第二消息生成的提交消息,所述共识结果消息中包括多条所述提交消息;
若接收到的所述共识请求来自其他委员会的主节点,所述第三广播模块还用于向所述其他委员会的主节点发送所述共识结果消息。
8.一种基于联盟链网络的共识优化装置,其特征在于,应用于主节点,所述装置包括:
第一共识模块,用于接收客户端的共识请求,若确定所述共识请求为全网共识请求,采用权利要求1-4任一项所述的方法在本地委员会内对所述全网共识请求进行共识,得到第一共识结果消息;
第四广播模块,用于根据所述第一共识结果消息向其他委员会的主节点广播全网预准备消息;
第二共识模块,用于接收其他委员会的主节点针对所述全网预准备消息返回的第二共识结果消息;其中,其他委员会的主节点采用权利要求1-4任一项所述的方法在各自的本地委员会内对所述全网共识请求进行共识,得到各自的第二共识结果消息;
全网共识结果生成模块,用于基于所述第一共识结果消息以及所述第二共识结果消息,生成所述全网共识请求对应的全网共识结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110430340.8A CN113259326B (zh) | 2021-04-21 | 2021-04-21 | 基于联盟链网络的共识优化方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110430340.8A CN113259326B (zh) | 2021-04-21 | 2021-04-21 | 基于联盟链网络的共识优化方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259326A CN113259326A (zh) | 2021-08-13 |
CN113259326B true CN113259326B (zh) | 2023-02-17 |
Family
ID=77221962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110430340.8A Active CN113259326B (zh) | 2021-04-21 | 2021-04-21 | 基于联盟链网络的共识优化方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259326B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114520812B (zh) * | 2021-08-16 | 2023-02-14 | 西安电子科技大学 | 用于区块链分片系统的存储轮换方法、系统、设备及应用 |
CN113660125B (zh) * | 2021-08-18 | 2023-03-10 | 中国科学技术大学 | 一种基于随机可信委员会的共识方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018217804A1 (en) * | 2017-05-22 | 2018-11-29 | Visa International Service Association | Network for improved verification speed with tamper resistant data |
CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和系统 |
US11271717B2 (en) * | 2018-02-21 | 2022-03-08 | Thunder Token Inc. | Blockchain consensus methods and systems |
US20190394267A1 (en) * | 2018-06-26 | 2019-12-26 | Anami Holdings, Inc. | Dynamic voting nodes in blockchain networks |
EP3566392B1 (en) * | 2018-12-13 | 2021-08-25 | Advanced New Technologies Co., Ltd. | Achieving consensus among network nodes in a distributed system |
CN111756548A (zh) * | 2020-06-17 | 2020-10-09 | 深圳市蔚链科技有限公司 | 节点共识机制优化方法、系统、设备及存储介质 |
CN112398930A (zh) * | 2020-11-04 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 区块链的共识方法、节点设备、系统以及存储介质 |
CN112671761B (zh) * | 2020-12-22 | 2022-08-05 | 网易(杭州)网络有限公司 | 区块链的节点处理方法、装置、节点设备及存储介质 |
-
2021
- 2021-04-21 CN CN202110430340.8A patent/CN113259326B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113259326A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
US11375010B2 (en) | Sharding block chain generation method based on tree structure | |
CN113259326B (zh) | 基于联盟链网络的共识优化方法、装置和计算机设备 | |
KR20210055734A (ko) | 블록 처리 방법들, 노드 및 시스템 | |
CN113055188B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111767347B (zh) | 共识算法的切换方法、装置、节点设备及存储介质 | |
CN111628886B (zh) | 私有云环境下组建区块链网络的方法、装置、计算机设备 | |
CN109167660B (zh) | 选举代表节点设备方法、装置、计算机设备及存储介质 | |
CN111506656A (zh) | 区块链系统的共识处理方法、装置及智能设备、存储介质 | |
CN111522874A (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN111737104A (zh) | 区块链网络服务平台及其测试用例共享方法、存储介质 | |
CN113888164A (zh) | 区块链交易池实现方法、装置、计算机设备和存储介质 | |
CN110460536B (zh) | 用于区块链的数据处理方法和装置、介质和电子设备 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
US10735415B2 (en) | Method for accumulating and co-assembling consistent data | |
CN111224782B (zh) | 基于数字签名的数据校验方法、智能设备及存储介质 | |
CN111064813B (zh) | 在区块链共识处理时进行处理消息同步的方法及装置 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN110888892A (zh) | 一种区块同步方法、装置及存储介质 | |
US20210105299A1 (en) | Method and system for defending an http flood attack | |
CN116132052A (zh) | 跨链交易方法、装置、电子设备及存储介质 | |
CN113301117B (zh) | 节点加入共识及退出共识方法、装置、计算机设备 | |
CN111953671B (zh) | 一种基于区块链的动态蜜网数据处理方法及系统 |
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 |