CN115499128A - 区块链共识方法、装置、系统及存储介质 - Google Patents
区块链共识方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN115499128A CN115499128A CN202110609573.4A CN202110609573A CN115499128A CN 115499128 A CN115499128 A CN 115499128A CN 202110609573 A CN202110609573 A CN 202110609573A CN 115499128 A CN115499128 A CN 115499128A
- Authority
- CN
- China
- Prior art keywords
- consensus
- transaction
- network
- block chain
- result
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 239000012634 fragment Substances 0.000 claims abstract description 98
- 238000013467 fragmentation Methods 0.000 claims abstract description 57
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 57
- 239000003999 initiator Substances 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种区块链共识方法、装置、系统及存储介质,通过对区块链网络进行分片划分得到分片网络,区块链网络中的网关节点对交易分配执行共识的分片网络,根据交易向分片网络发送共识请求,分片网络对交易执行共识以得到分片共识结果,分片共识结果发送到委员会片区执行再次共识得到交易共识结果,委员会片区将该交易共识结果上传区块链网络全网。利用本发明技术方案的共识方案,可避免区块链全网节点均对交易执行共识的问题,即使区块链网络中的节点越来越多,每次参与共识的节点包括分片网络及委员会片区的节点,共识效率较高,共识性能得到提升。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种区块链共识方法、装置、系统及存储介质。
背景技术
目前,区块链技术是一种在对等网络环境下,通过透明和可信规则,构建不可伪造、难以篡改和可追溯的块链式数据结构,实现和管理可信数据的产生、存取和使用的模式。技术架构上,区块链是由分布式架构与分布式存储、块链式数据结构、点对点网络、共识算法、密码学算法、博弈论、智能合约等多种信息技术共同组成的整体解决方案。
共识机制是区块链领域的核心概念,无共识,不区块链。区块链作为一个分布式系统,可以由不同的节点共同参与计算、共同见证交易的执行过程,并确认最终计算结果。
发明内容
本发明提供一种区块链共识方法、装置、系统及存储介质,用以解决共识效率低的技术问题。
第一方面,本发明提供一种区块链共识方法,应用于区块链网络中的网关节点,所述区块链网络包含分片划分的分片网络,所述区块链共识方法包括:
获取待共识的交易;
按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
根据所述交易向分配的所述分片网络发送共识请求。
在一个实施例中,获取待共识的交易,包括如下至少一种方式:
从客户端接收所述交易;
从交易队列中提取所述交易。
在一个实施例中,按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络,包括:
按照所述预设规则,获取所述交易的交易发起方和交易接收方各自所在分片网络;
若所述交易发起方和交易接收方在同一分片网络,则根据所述同一分片网络确定为所述交易执行共识的分片网络;
若所述交易发起方和交易接收方分别位于不同分片网络,则将所述交易发送给所述区块链网络中预配置的委员会片区,根据所述委员会片区的指定指令确定为所述交易执行共识的分片网络。
在一个实施例中,如果获取到至少两笔交易,则按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络,包括:
按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址分别进行交易分片得到分片交易;
对所述分片交易,获取所述分片交易的交易发起方和交易接收方各自所在分片网络。
在一个实施例中,按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址分别进行交易分片得到分片交易,包括:
按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址计算交易分片号。
第二方面,本发明提供一种区块链共识方法,应用于区块链网络中分片划分的分片网络,包括:
获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
对所述交易执行共识得到分片共识结果;
将所述分片共识结果发送给所述区块链网络中预配置的委员会片区。
在一个实施例中,对所述交易执行共识得到分片共识结果,包括:
通过第0轮主节点将所述交易发送给第0轮共识节点,从所述第0轮共识节点接收对所述交易的执行结果,对所述执行结果组合广播给第0轮共识节点;
从i=1开始,采用如下步骤进行N轮迭代:
通过第i轮主节点从第(i-1)轮共识节点接收对所述执行结果的第i轮共识消息,利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合,将组合的第i轮共识消息广播给第i轮共识节点;
根据对所述执行结果的第N轮共识消息确定所述分片共识结果;
所述N不大于所述分片网络中节点的数量并达到预设值。
在一个实施例中,将组合的第i轮共识消息广播给第i轮共识节点,包括:
对组合的第i轮共识消息分别进行私钥签名;
将具有私钥签名的组合的第i轮共识消息广播给所述第i轮共识节点。
在一个实施例中,在利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合之前,还包括:
如果所述第i轮共识消息各自带有私钥签名,则使用公钥对所述第i轮共识消息进行验签;
若验签通过,则利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合。
第三方面,本发明提供一种区块链共识方法,应用于区块链网络中预配置的委员会片区,所述区块链网络还包括分片划分的分片网络,所述区块链共识方法包括:
从所述分片网络接收对交易的分片共识结果;
对所述分片共识结果执行共识以得到交易共识结果;
若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
在一个实施例中,在从所述分片网络接收对交易的分片共识结果之前,还包括:
从所述网关节点接收分片网络分配请求;
根据所述分片网络分配请求对所述请求指定所述分片网络;
将所述分片网络的指定指令发送给所述网关节点。
第四方面,本发明提供一种区块链网络,包括:
网关节点,获取待共识的交易,从所述区块链网络包含的分片网络中为所述交易分配执行共识的分片网络,根据所述交易向分配的所述分片网络发送共识请求;
所述分片网络,对所述交易执行共识得到分片共识结果,将所述分片共识结果发送给所述区块链网络中预配置的委员会片区;
所述委员会片区,对所述分片共识结果执行共识以得到交易共识结果,若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
第五方面,本发明提供一种区块链共识装置,应用于区块链网络中的网关节点,所述区块链网络包含分片划分的分片网络,所述区块链共识装置包括:
获取模块,获取待共识的交易;
分配模块,按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
发送模块,根据所述交易向分配的所述分片网络发送共识请求。
第六方面,本发明提供一种区块链共识装置,应用于区块链网络中分片划分的分片网络,包括:
获取模块,获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
共识模块,对所述交易执行共识得到分片共识结果;
发送模块,将所述分片共识结果发送给所述区块链网络中预配置的委员会片区。
第七方面,本发明提供一种区块链共识装置,应用于区块链网络中预配置的委员会片区,所述区块链网络还包括分片划分的分片网络,所述区块链共识装置包括:
接收模块,从所述分片网络接收对交易的分片共识结果;
共识模块,对所述分片共识结果执行共识以得到交易共识结果;
上传模块,若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
第八方面,本发明提供一种电子设备,包括存储器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面或第二方面或第三方面所述区块链共识方法的步骤。
第九方面,本发明提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行第一方面或第二方面或第三方面所述区块链共识的步骤。
本发明提供的区块链共识方法、装置、系统及存储介质,通过对区块链网络进行分片划分得到分片网络,区块链网络中的网关节点对交易分配执行共识的分片网络,根据交易向分片网络发送共识请求,分片网络对交易执行共识以得到分片共识结果,分片共识结果发送到委员会片区执行再次共识得到交易共识结果,委员会片区将该交易共识结果上传区块链网络全网。利用本发明技术方案的共识方案,可避免区块链全网节点均对交易执行共识的问题,即使区块链网络中的节点越来越多,每次参与共识的节点包括分片网络及委员会片区的节点,共识效率较高,共识性能得到提升。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的区块链共识方法的机制示意图;
图2是本发明提供的区块链网络架构示意图之一;
图3是本发明提供的区块链共识方法的时序图;
图4是本发明提供的区块链共识方法的流程示意图之一;
图5是本发明提供的区块链共识方法的流程示意图之二;
图6是本发明提供的区块链网络架构示意图之二;
图7是本发明提供的区块链共识方法的具体示例示意图之一;
图8是本发明提供的区块链共识方法的具体示例示意图之二;
图9是本发明提供的区块链共识方法的流程示意图之三;
图10是本发明提供的区块链共识算法示意图;
图11是本发明提供的区块链共识方法的流程示意图之四;
图12是本发明提供的区块链共识装置的结构示意图之一;
图13是本发明提供的区块链共识装置的结构示意图之二;
图14是本发明提供的区块链共识装置的结构示意图之三;
图15是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在区块链技术中,共识算法是其中核心的一个组成部分。本发明发明人对目前的共识算法进行研究发现,以拜占庭共识算法PBFT(英文全称:Practical Byzantine FaultTolerance)为例,它的共识模式为:假设网络中有n个节点,当有一笔交易广播到区块链网络中的时候,每个收到这个消息的节点都会将这个消息再发送给其他的n-1个节点,告诉其他节点自己收到的信息是什么样的。由于网络中有可能存在作恶节点,所以每个节点还会再向n-1个节点再发送一次消息,告诉其他节点自己是否同意这笔交易。在这个阶段结束后,每个节点统计自己收到的消息中是否有超过2/3的节点同意该笔交易,若超过了2/3,那么则对该交易达成共识。
本发明发明人在实践中发现,区块链网络的共识效率下降了,共识性能降低。本发明发明人研究了区块链网络的整个演进历史,对区块链网络所涉及到的各技术点进行分析,发现区块链网络从最初创建至今,节点数量越来越多,参与共识的节点也随之增加,导致了共识效率逐渐下降,共识性能不足增,尤其不适合高性能的场景使用。
本发明发明人提出了本发明区块链共识方法、装置、系统及存储介质,其所包含的发明构思是,对区块链网络进行分片划分,区块链网络中的各节点分片到分片网络,交易在分片网络内进行共识,共识结果发送给委员会片区形成统一账本,上传到区块链网络全网。
根据图1所示各步骤阐述本发明对区块链网络的分片机制:
客户端发起交易到网关节点;
网关节点确定交易所分配的分片网络,将交易分发给所确定分片网络;
分片网络对交易进行共识得到分片共识结果,并将分片共识结果提交到委员会片区;
委员会片区对分片共识结果执行共识以得到交易共识结果,若共识通过,则将交易共识结果广播到各分片网络及网关节点。
另外,客户端也可以向网关节点发送链数据查询,网关节点从相应分片网络查询,并将查询结果返回给客户端。
区块链网络还可以设置同步节点,委员会片区可以将交易共识结果广播到同步节点,同步节点将交易共识结果广播到各分片网络。
根据本发明的区块链网络分片机制,本发明提供图2所示区块链网络的架构,本发明提供的区块链网络包括:
网关节点210、分片网络220和委员会片区230。
其中,网关节点210可以获取待共识的交易,按照预设规则从区块链网络包含的各分片网络中分配对交易执行共识的分片网络220,根据所述交易向所述分片网络220发送共识请求。
具体得,网关节点210可以直接与客户端对接,负责接收交易、分发交易到各分片网络等。该区块链网络还可以包括与网关节点210同层的同步节点(图中未示出)。
分片网络220从网关节点210接收对交易的共识请求,对交易执行共识。具体地,分片网络220可以执行交易以及共识,在这一层共识的结果是分片网络220上的交易产生的状态变化而不是最终状态。分片网络节点通过执行交易而产生状态变化,并提交给委员会片区230。各分片网络220独立并行运行,互不依赖和干预,大大增加了整个网络的共识能力。
委员会片区230从分片网络220接收对交易的分片共识结果,对分片共识结果进行再共识以得到交易共识结果,如共识通过则将交易共识结果上传到区块链网络,具体地将区块分发到全网同步,分片网络220中每个节点都具有全网状态。
本发明通过区块链网络的分片架构对共识性能进行提升。
基于本发明的区块链网络的架构,参照图3所示时序图,区块链共识方法具体包括如下步骤:
步骤310:客户端3A发起交易并将交易发送到网关节点3B;
步骤320:网关节点3B对交易进行有效性验证;
步骤330:网关节点3B将交易分发到分片网络3C;
步骤340:分片网络3C执行交易并共识以得到分片共识结果;
步骤350:分片网络3C将分片共识结果发送给委员会片区3D;
步骤360:委员会片区3D对分片共识结果进行共识得到交易共识结果;
步骤370:达成共识后,委员会片区3D将交易及相应的交易共识结果写入账本进行持久化,并将交易及相应的交易共识结果发送到分片网络3C和网关节点3B;
步骤380:分片网络3C将交易及交易共识结果写入本地存储;
步骤390:网关节点3B更新交易状态及区块等信息;
步骤3100:将交易共识结果响应回客户端3A。
下面结合图4-图11描述本发明的区块链共识方法。
参照图4,本方法的执行主体为区块链网络中的网关节点,本区块链网络包含分片划分的分片网络,本发明提供的区块链共识方法包括如下步骤:
步骤410:获取待共识的交易;
步骤420:按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
步骤430:根据所述交易向分配的所述分片网络发送共识请求。
在本发明中的交易是指交易对象在交易参与方之间转移的过程。
其中,获取待共识的交易可以包括至少一种方式:
从客户端接收交易;
从交易队列中提取所述交易。
参考前例,区块链网络可以设置客户端来接收用户的交易请求。
另外,网关节点本地可以存储待共识的交易形成交易队列,并可定期或不定期从中提取交易队列进入共识流程。
在本发明实施例中,参考图5,按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络,具体包括如下步骤:
步骤510:按照所述预设规则,获取所述交易的交易发起方和交易接收方各自所在分片网络;
步骤520:若所述交易发起方和交易接收方在同一分片网络,则根据所述同一分片网络确定为所述交易执行共识的分片网络;
步骤530:若所述交易发起方和交易接收方分别位于不同分片网络,则将所述交易发送给所述区块链网络中预配置的委员会片区,根据所述委员会片区的指定指令确定为所述交易执行共识的分片网络。
具体地,参考图6所示本发明区块链网络的网络分片示意图,区块链网络包括:
委员会片区,包括节点a、b、c...n,此仅为示例;
四个分片网络1、2、3...M,分片网络1包括节点1a、1b、1c...1n,分片网络2包括节点2a、2b、2c...2n,分片网络3包括节点3a、3b、3c...3n,分片网络M包括节点Ma、Mb、Mc...Mn。
区块链网络中的分片网络的数量,各分片网络内节点数量及委员会片区中节点数据量,不受本发明实施例的限定,可根据需要设定。
根据一定的组织关系对区块链网络中的节点人为划分其所属分片网络,通过节点配置文件进行配置其分片号。通过信任列表站点对验证节点进行准入控制、管理节点加入或离开指定分片网络。
具体地,在对交易分配分片网络时,可以在先判断交易的交易发起方和交易接收方是否在同一分片网络,从而根据判断结果采用图5所示方案对交易分配分片网络。
在一种实施例中,如果网关节点获取到至少两笔交易,则按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络,具体包括如下步骤:
按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址分别进行交易分片得到分片交易;
对所述分片交易,获取所述分片交易的交易发起方和交易接收方各自所在分片网络。
在具体应用中,对于多笔交易,可以根据交易发起方地址先进行交易分片,然后对每个分片交易分配专属的分片网络。
具体地,交易中包含交易发起方(From)与交易接收方(To),按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址计算交易分片号。交易分片号计算公式如下:
ShardIndex=((address(160bit)&0xF)%ShardCount)+1
参考图7所示,根据交易发起方账户地址后4位,分别为z...0000、z...0001、z...0002,按照如上公式对交易分片,得到分片交易1、2、3,所有分片交易可独立并行处理,互不依赖和干预。图7仅为示例,不构成限定。
交易分片号可以具体识别对应的分片交易。在得到交易分片号之后,再针对每个分片交易,根据交易发起方与交易接收方是否在同一个分片,来进行不同的划分逻辑:
参照图8所示,交易发起方地址与交易接收方地址在同一个分片网络时,该分片交易划分到交易发起方所在分片网络;
交易发起方地址与交易接收方地址不在同一个分片网络时,该分片交易划分到委员会片区,根据委员会片区的指定确定分片网络。
在本发明实施例中,网关节点也可以对交易随机分配分片网络,或者根据分片网络的工作量来分配交易。
参照图9,本发明提供的区块链共识方法应用于区块链网络中分片划分的分片网络,具体执行主体为该分片网络中的节点,该分片网络是网关节点分配用来对对应交易执行共识的。
本方法具体包括如下步骤:
步骤910:获取待共识的所述交易,所述交易是从所述网关节点发送的共识请求中得到的;
步骤920:对所述交易执行共识得到分片共识结果;
步骤930:将所述分片共识结果发送给所述区块链网络中预配置的委员会片区。
在本发明中,分片网络对交易执行共识,共识算法可以是实用拜占庭容错算法(Practical Byzantine Fault Tolerance,缩写:PBFT),或其他共识算法,在此不做限定。
各分片网络中所配置的共识算法可以相同或不相同,在此不作限定。
本发明提供一种改进的共识算法,使得对交易执行共识得到分片共识结果,可以包括如下步骤:
通过第0轮主节点将所述交易发送给第0轮共识节点,从所述第0轮共识节点接收对所述交易的执行结果,对所述执行结果组合广播给第0轮共识节点;
从i=1开始,采用如下步骤进行N轮迭代:
通过第i轮主节点从第(i-1)轮共识节点接收对所述执行结果的第i轮共识消息,利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合,将组合的第i轮共识消息广播给第i轮共识节点;
根据对所述执行结果的第N轮共识消息确定所述分片共识结果;
所述N不大于所述分片网络中节点的数量并达到预设值。
本发明的预设值是预先配置的,根据需要设置,在此不受限定。
使用本发明实施例的共识算法,每一轮的共识投票消息,都是各个共识节点提交给下一轮的主节点,并且只提交给下一轮的主节点,下一轮主节点对上一轮共识消息进行组合再广播给本轮共识节点。本发明共识算法将PBFT的网状拓扑模型优化成了星型拓扑模型,这减少了系统中消息量,从(n^2)减到了O(n)。
在轮次处理上,各个共识节点在集齐投票的同时就可以进入下一轮共识,而不需要经过一个额外的确认阶段,极大的提高了共识效率。
本发明的技术方案中区块链高性能共识算法还采用了链式流水线式确认,我们认可一个区块,实际上也是对于该区块父区块的认可。在链式确认中,可以将区块的确认放在下一个区块中,只要一个区块后面产生了预设值的连续区块,那么就说明该区块经过了预设轮次投票确认,就可以得到分片共识结果。
在本发明实施例中,获取待共识的交易,可以是直接接收网关节点发送的共识请求,从共识请求提取的到的;或者,还可以是从自身消息队列中提取到的。
在本发明具体实施例中,将组合的第i轮共识消息广播给第i轮共识节点,具体包括如下步骤:
对组合的第i轮共识消息分别进行私钥签名;
将具有私钥签名的组合的第i轮共识消息广播给所述第i轮共识节点。
这样,在每轮共识阶段共识节点可以使用公钥对接收到的共识消息进行验签,若验签通过,则提取第i轮共识消息的内容。
在本发明具体实施例中,在利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合之前,还包括如下步骤:
如果所述第i轮共识消息各自带有私钥签名,则使用公钥对所述第i轮共识消息进行验签;
若验签通过,则利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合。
在应用中,各共识节点在对共识消息进行再共识后,使用私钥签名,并将带有私钥签名的共识消息发送给下一轮主节点。这可以提升消息传输的安全性。
在本发明实施例中,共识消息的转发及接收过程可以均采用门限签名对报文进行签名及验签。对于每一轮主节点来说,当接收到足够的部分签名就能使用公钥进行验签,以得到完整的共识消息,使得算法能够在每一轮共识阶段以广播-收集的方式完成共识。
具体地,对本发明实施例的链式共识算法包括如下步骤:
主节点接收到共识请求,开启新一轮提案v;
主节点接收消息并储存在状态变量genericQC;
主节点将genericQC转发到下一轮提案的主节点,转发及接收过程采用门限签名对报文进行签名及验签。
下一轮提案的主节点启动一个新的prepare阶段,并添加自己的提案内容。提案v+1的prepare阶段同时充当提案v的preCommit阶段,提案v+2的prepare阶段同时充当提案v+1的preCommit阶段和提案v的commit阶段,从而形成链式结构。
例如请参考图10所示,对关于区块Blk0的提案QC启动prepare阶段,生成提案QC0并在QC0中添加自己的提案区块Blk1。关于区块Blk2的提案QC1的prepare阶段同时充当关于区块Blk0提案QC的preCommit阶段,而关于区块Blk3的提案QC2的prepare阶段同时充当提案QC1的preCommit阶段和提案QC的commit阶段。以此类推。
进一步地,为了提高主节点的工作效率,可以将链式共识算法转换为事件驱动的形式,处理流程如下:
每一轮提案的主节点维护一个事件(消息)队列,并开启一个线程监听自己的消息队列;
网关节点将共识请求写到主节点的消息队列,开启新一轮提案v;
每一轮主节点监听自己的消息队列,不断从队列取出事件,根据不同的事件,调用不同的函数,如prepare()、preCommit()等;
每一轮的主节点调用对应函数后,并将当前轮次的提案报文进行追加,然后发往下一轮主节点的消息队列内。如此往复。
参照图11,本发明还提供一种区块链共识方法,应用于区块链网络中预配置的委员会片区,其执行主体具体为委员会片区中的节点。该区块链网络还包括分片划分的分片网络,所述区块链共识方法包括如下步骤:
步骤1110:从所述分片网络接收对交易的分片共识结果;
步骤1120:对所述分片共识结果执行共识以得到交易共识结果;
步骤1130:若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
委员会片区负责对分片共识结果进行再共识,这样既提高了交易的效率又保证了网络传输的安全性。在具体实践中,各分片共识结果由委员会片区进行整合,形成全网统一账本。
另外,在从分片网络接收对交易的分片共识结果之前,还包括:
从网关节点接收分片网络分配请求;
针对分片网络分配请求在区块链网络包含的分片网络中指定分片网络;
将分片网络的指定指令发送给网关节点。
下面对本发明提供的区块链共识装置进行描述,下文描述的区块链共识装置与上文描述的区块链共识方法可相互对应参照。
参照图12所示,本发明提供的区块链共识装置应用于区块链网络中的网关节点,区块链网络包含分片划分的分片网络,所述区块链共识装置包括:
获取模块1210,获取待共识的交易;
分配模块1220,按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
发送模块1230,根据交易向分配的所述分片网络发送共识请求。
参照图13所示,本发明提供的区块链共识装置应用于区块链网络中分片划分的分片网络,包括:
获取模块1310,获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
共识模块1320,对所述交易执行共识得到分片共识结果;
发送模块1330,将所述分片共识结果发送给所述区块链网络中预配置的委员会片区。
参照图14所示,本发明提供的区块链共识装置应用于区块链网络中预配置的委员会片区,所述区块链网络还包括分片划分的分片网络,所述区块链共识装置包括:
接收模块1410,从所述分片网络接收对交易的分片共识结果;
共识模块1420,对所述分片共识结果执行共识以得到交易共识结果;
上传模块1430,若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
图15示例了一种电子设备的实体结构示意图,如图15所示,该电子设备可以包括:处理器(processor)1510、通信接口(Communication Interface)1520、存储器(memory)1530和通信总线1540,其中,处理器1510,通信接口1520,存储器1530通过通信总线1540完成相互间的通信。处理器1510可以调用存储器1530中的计算机程序,以执行区块链共识方法的步骤,例如包括:
获取待共识的交易;
按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
根据所述交易向分配的所述分片网络发送共识请求;或者
获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
对所述交易执行共识得到分片共识结果;
将所述分片共识结果发送给所述区块链网络中预配置的委员会片区;或者
从所述分片网络接收对交易的分片共识结果;
对所述分片共识结果执行共识以得到交易共识结果;
若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
此外,上述的存储器1530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的区块链共识方法的步骤,例如包括:
获取待共识的交易;
按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
根据所述交易向分配的所述分片网络发送共识请求;或者
获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
对所述交易执行共识得到分片共识结果;
将所述分片共识结果发送给所述区块链网络中预配置的委员会片区;或者
从所述分片网络接收对交易的分片共识结果;
对所述分片共识结果执行共识以得到交易共识结果;
若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
另一方面,本申请实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行上述各实施例提供的方法的步骤,例如包括:
获取待共识的交易;
按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
根据所述交易向分配的所述分片网络发送共识请求;或者
获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
对所述交易执行共识得到分片共识结果;
将所述分片共识结果发送给所述区块链网络中预配置的委员会片区;或者
从所述分片网络接收对交易的分片共识结果;
对所述分片共识结果执行共识以得到交易共识结果;
若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (17)
1.一种区块链共识方法,其特征在于,应用于区块链网络中的网关节点,所述区块链网络包含分片划分的分片网络,所述区块链共识方法包括:
获取待共识的交易;
按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
根据所述交易向分配的所述分片网络发送共识请求。
2.根据权利要求1所述的区块链共识方法,其特征在于,获取待共识的交易,包括如下至少一种方式:
从客户端接收所述交易;
从交易队列中提取所述交易。
3.根据权利要求1所述的区块链共识方法,其特征在于,按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络,包括:
按照所述预设规则,获取所述交易的交易发起方和交易接收方各自所在分片网络;
若所述交易发起方和交易接收方在同一分片网络,则根据所述同一分片网络确定为所述交易执行共识的分片网络;
若所述交易发起方和交易接收方分别位于不同分片网络,则将所述交易发送给所述区块链网络中预配置的委员会片区,根据所述委员会片区的指定指令确定为所述交易执行共识的分片网络。
4.根据权利要求3所述的区块链共识方法,其特征在于,如果获取到至少两笔交易,则按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络,包括:
按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址分别进行交易分片得到分片交易;
对所述分片交易,获取所述分片交易的交易发起方和交易接收方各自所在分片网络。
5.根据权利要求4所述的区块链共识方法,其特征在于,按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址分别进行交易分片得到分片交易,包括:
按照所述预设规则,根据所述至少两笔交易各自的交易发起方地址计算交易分片号。
6.一种区块链共识方法,其特征在于,应用于区块链网络中分片划分的分片网络,包括:
获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
对所述交易执行共识得到分片共识结果;
将所述分片共识结果发送给所述区块链网络中预配置的委员会片区。
7.根据权利要求6所述的区块链共识方法,其特征在于,对所述交易执行共识得到分片共识结果,包括:
通过第0轮主节点将所述交易发送给第0轮共识节点,从所述第0轮共识节点接收对所述交易的执行结果,对所述执行结果组合广播给第0轮共识节点;
从i=1开始,采用如下步骤进行N轮迭代:
通过第i轮主节点从第(i-1)轮共识节点接收对所述执行结果的第i轮共识消息,利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合,将组合的第i轮共识消息广播给第i轮共识节点;
根据对所述执行结果的第N轮共识消息确定所述分片共识结果;
所述N不大于所述分片网络中节点的数量并达到预设值。
8.根据权利要求7所述的区块链共识方法,其特征在于,将组合的第i轮共识消息广播给第i轮共识节点,包括:
对组合的第i轮共识消息分别进行私钥签名;
将具有私钥签名的组合的第i轮共识消息广播给所述第i轮共识节点。
9.根据权利要求7所述的区块链共识方法,其特征在于,在利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合之前,还包括:
如果所述第i轮共识消息各自带有私钥签名,则使用公钥对所述第i轮共识消息进行验签;
若验签通过,则利用自身对所述执行结果的共识消息对所述第i轮共识消息进行组合。
10.一种区块链共识方法,其特征在于,应用于区块链网络中预配置的委员会片区,所述区块链网络还包括分片划分的分片网络,所述区块链共识方法包括:
从所述分片网络接收对交易的分片共识结果;
对所述分片共识结果执行共识以得到交易共识结果;
若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
11.根据权利要求10所述的区块链共识方法,其特征在于,在从所述分片网络接收对交易的分片共识结果之前,还包括:
从区块链网络中的网关节点接收分片网络分配请求;
针对所述分片网络分配请求,在所述区块链网络包含的分片网络中指定所述分片网络;
将所述分片网络的指定指令发送给所述网关节点。
12.一种区块链网络,其特征在于,包括:
网关节点,获取待共识的交易,从所述区块链网络包含的分片网络中为所述交易分配执行共识的分片网络,根据所述交易向分配的所述分片网络发送共识请求;
所述分片网络,对所述交易执行共识得到分片共识结果,将所述分片共识结果发送给所述区块链网络中预配置的委员会片区;
所述委员会片区,对所述分片共识结果执行共识以得到交易共识结果,若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
13.一种区块链共识装置,其特征在于,应用于区块链网络中的网关节点,所述区块链网络包含分片划分的分片网络,所述区块链共识装置包括:
获取模块,获取待共识的交易;
分配模块,按照预设规则为所述交易在所述区块链网络包含的分片网络中分配执行共识的分片网络;
发送模块,根据所述交易向分配的所述分片网络发送共识请求。
14.一种区块链共识装置,其特征在于,应用于区块链网络中分片划分的分片网络,包括:
获取模块,获取待共识的交易,所述交易是从所述网关节点发送的共识请求中得到的;
共识模块,对所述交易执行共识得到分片共识结果;
发送模块,将所述分片共识结果发送给所述区块链网络中预配置的委员会片区。
15.一种区块链共识装置,其特征在于,应用于区块链网络中预配置的委员会片区,所述区块链网络还包括分片划分的分片网络,所述区块链共识装置包括:
接收模块,从所述分片网络接收对交易的分片共识结果;
共识模块,对所述分片共识结果执行共识以得到交易共识结果;
上传模块,若所述交易共识结果显示共识通过,则将所述交易共识结果上传到所述区块链网络。
16.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述的区块链共识方法的步骤。
17.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述区块链共识方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110609573.4A CN115499128A (zh) | 2021-06-01 | 2021-06-01 | 区块链共识方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110609573.4A CN115499128A (zh) | 2021-06-01 | 2021-06-01 | 区块链共识方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115499128A true CN115499128A (zh) | 2022-12-20 |
Family
ID=84464551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110609573.4A Pending CN115499128A (zh) | 2021-06-01 | 2021-06-01 | 区块链共识方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499128A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766542A (zh) * | 2017-10-30 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN109547527A (zh) * | 2018-10-12 | 2019-03-29 | 广西师范大学 | 区块链中基于信誉机制的分区快速共识方法 |
CN109961366A (zh) * | 2019-03-25 | 2019-07-02 | 中国农业银行股份有限公司 | 一种基于分区共识的交易方法及系统 |
CN110310115A (zh) * | 2019-05-23 | 2019-10-08 | 杭州云象网络技术有限公司 | 一种基于分片机制实现分布式账本横向扩展的方法 |
CN110400140A (zh) * | 2019-06-04 | 2019-11-01 | 西安电子科技大学 | 基于Fabric的分层分片交易信息处理方法及应用 |
CN111414433A (zh) * | 2020-05-09 | 2020-07-14 | 北京阳光欣晴健康科技有限责任公司 | 基于区块链和密文检索技术的分布式随访系统 |
CN111539726A (zh) * | 2020-04-20 | 2020-08-14 | 中国工商银行股份有限公司 | 区块链共识系统及方法 |
CN112150141A (zh) * | 2019-06-26 | 2020-12-29 | 京东数字科技控股有限公司 | 一种区块链共识方法、装置和系统 |
CN112417056A (zh) * | 2020-12-18 | 2021-02-26 | 昆明理工大学 | 一种基于区块链数据共享的信誉值动态分片两层共识方法 |
CN112688934A (zh) * | 2020-12-21 | 2021-04-20 | 杭州云象网络技术有限公司 | 一种基于智能网关和合约引擎的合约调用方法及系统 |
-
2021
- 2021-06-01 CN CN202110609573.4A patent/CN115499128A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766542A (zh) * | 2017-10-30 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN109547527A (zh) * | 2018-10-12 | 2019-03-29 | 广西师范大学 | 区块链中基于信誉机制的分区快速共识方法 |
CN109961366A (zh) * | 2019-03-25 | 2019-07-02 | 中国农业银行股份有限公司 | 一种基于分区共识的交易方法及系统 |
CN110310115A (zh) * | 2019-05-23 | 2019-10-08 | 杭州云象网络技术有限公司 | 一种基于分片机制实现分布式账本横向扩展的方法 |
CN110400140A (zh) * | 2019-06-04 | 2019-11-01 | 西安电子科技大学 | 基于Fabric的分层分片交易信息处理方法及应用 |
CN112150141A (zh) * | 2019-06-26 | 2020-12-29 | 京东数字科技控股有限公司 | 一种区块链共识方法、装置和系统 |
CN111539726A (zh) * | 2020-04-20 | 2020-08-14 | 中国工商银行股份有限公司 | 区块链共识系统及方法 |
CN111414433A (zh) * | 2020-05-09 | 2020-07-14 | 北京阳光欣晴健康科技有限责任公司 | 基于区块链和密文检索技术的分布式随访系统 |
CN112417056A (zh) * | 2020-12-18 | 2021-02-26 | 昆明理工大学 | 一种基于区块链数据共享的信誉值动态分片两层共识方法 |
CN112688934A (zh) * | 2020-12-21 | 2021-04-20 | 杭州云象网络技术有限公司 | 一种基于智能网关和合约引擎的合约调用方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110753026B (zh) | 一种基于区块链的分片方法及装置 | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN110875893B (zh) | 共识验证方法、校验节点及区块链系统 | |
CN111311414A (zh) | 一种基于一致性哈希算法的区块链多方共识方法 | |
CN107861811B (zh) | 工作流系统中的任务信息传输方法、装置和计算机设备 | |
CN110874351A (zh) | 工作量证明协同工作方法、区块链节点及区块链系统 | |
CN113553375B (zh) | 一种面向图式区块链的分片存储装置及方法 | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
CN111698094A (zh) | 一种基于区块链系统的共识方法及区块链系统 | |
CN110598060A (zh) | 一种区块链快速共识方法、装置、计算机设备和存储介质 | |
CN111698315A (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN114490020A (zh) | 一种区块链分片方法、系统及电子设备 | |
CN114296922A (zh) | 多方数据处理方法、系统、电子装置和存储介质 | |
CN113626875A (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
EP3683678B1 (en) | Computer-implemented method, computer program and data processing system | |
CN114449476A (zh) | 一种用于车联网中安全通信的区块链节点共识方法 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN115499128A (zh) | 区块链共识方法、装置、系统及存储介质 | |
US20230100485A1 (en) | Neural consensus-based blockchain network system for performing random consensus proof using non-random consensus proof-based blockchain network | |
CN110888892A (zh) | 一种区块同步方法、装置及存储介质 | |
CN113630445B (zh) | 一种基于区块链网络的数据存储方法及装置 | |
CN111510484A (zh) | 区块链处理方法、系统、装置、计算机设备和存储介质 | |
WO2024007689A1 (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 |