CN113965570A - 区块链结构以及区块链事务执行方法、装置、设备和介质 - Google Patents
区块链结构以及区块链事务执行方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113965570A CN113965570A CN202111241726.0A CN202111241726A CN113965570A CN 113965570 A CN113965570 A CN 113965570A CN 202111241726 A CN202111241726 A CN 202111241726A CN 113965570 A CN113965570 A CN 113965570A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- chain
- blocks
- execution mode
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004806 packaging method and process Methods 0.000 claims abstract description 10
- 238000012856 packing Methods 0.000 claims description 55
- 125000006850 spacer group Chemical group 0.000 claims description 9
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 abstract description 5
- 239000007787 solid Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010200 validation analysis 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链结构以及区块链事务执行方法、装置、设备和介质,区块链结构为基于单链模型的主链侧链结构、间隔区块结构或大小区块结构,方法应用于单链单账本模型和单链多账本模型中,包括:创建事务并将事务广播到区块链或者事务执行模式对应的区块链群组;在区块链或区块链群组中将事务打包成区块并进行区块共识;根据事务执行模式将共识后的区块依次链接至区块链结构或区块链群组对应的账本中。本发明实现了在一条区块链上支持不同场景业务的事务执行模式,同时兼顾场景业务的事务执行模式和需求,节省了不同业务区块链分别部署和维护节点的成本,并且不存在异构区块链的兼容适配问题。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种区块链结构以及区块链事务执行方法、装置、设备和介质。
背景技术
信息产业的快速发展,使得云服务和网络资源紧密结合。云和网融合大趋势下,云网场景面临着集中式单点故障、多方互不信任、业务实时响应等问题。由于开放透明、去中心化、不可篡改等特性,区块链被广泛应用于诸如金融、能源、物流等领域,以实现多方安全可信、解决单点故障等问题,这也同样适用于云网场景。
目前,区块链有包括“执行-排序-验证”和“共识-执行”两种事务(Transaction)执行模式,而现有区块链只能选择其中一种作为其事务执行模式,例如,以太坊(Ethereum)使用的是“共识-执行”事务执行模式,超级账本(Hyperledger Fabric)使用的是“执行-排序-验证”事务执行模式。两种事务执行模式的执行流程如图2所示:
共识-执行(Consensus-Execute,CE)事务执行模式:区块链客户端发起事务并广播到区块链网络上,共识节点将该事务打包到区块内并进行区块共识,随后广播区块,其他节点同步区块并顺序执行验证区块内事务获得执行结果,最后通过执行结果更新区块链状态。
执行-排序-验证(Execute-Order-Validate,EOV)事务执行模式:区块链客户端向区块链背书节点发起事务请求,背书节点收到请求后预执行该事务生成执行结果和读写集,其中,读写集是指执行该事务后对区块链状态产生影响的状态数据集合,读写集包括读集和写集,读集用于获取区块链状态数据的索引,写集用于更新该索引对应的状态数据,区块链客户端收到执行结果和读写集后将其组装成事务发送给共识节点,共识节点将该事务进行排序并打包到区块内,随后广播区块,其他节点同步区块并验证区块内事务,最后通过读写集更新区块链状态。
上述两种事务执行模式的主要区别在于获取事务执行结果的阶段不同,EOV事务执行模式在预执行阶段获得执行结果和读写集,验证阶段进行区块链状态更新,该事务执行模式可实现多个事务的并行执行以提升性能,但是由于状态更新延后会出现事务执行冲突问题,并且需要使用背书节点进行事务预执行;CE事务执行模式在执行阶段获得执行结果并更新区块链状态,该事务执行模式不存在事务执行冲突问题,但是由于区块内所有事务串行执行导致性能较低。
云网场景使用区块链时,往往难以同时兼顾不同场景业务的事务执行模式和需求。例如,企业租用网络流量场景中,物理链路调度业务需要及时获得区块链的执行结果实现调度的实时响应,流量计费结算业务需要避免事务执行冲突问题。然而,现存方案无法在一条区块链上同时解决上述问题并且最佳适配不同云网场景业务的事务执行模式和需求,即现有的一条区块链的区块链结构不能同时支持多种事务执行模式。虽然同一云网场景的不同业务也可以分别使用不同区块链进行实现,然后通过跨链方式进行场景业务间数据交互,但是仍然面临不同区块链的节点部署维护成本高、异构区块链兼容适配难度大以及异构链场景业务跨链交互难等问题和挑战。
发明内容
发明目的:针对现有技术中存在的问题,本发明公开了一种区块链结构以及区块链事务执行方法、装置、设备和介质,所述区块链结构基于单链模型,实现了在一条区块链上同时支持不同的事务执行模式。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
一种区块链结构,所述区块链中包括至少两类区块,所述区块的类型根据事务执行模式划分;所述区块链结构为主链侧链结构、间隔区块结构或大小区块结构:
所述主链侧链结构包括主链和链接在主链上的若干侧链,所述主链由同类区块依次链接构成,每个侧链由同类区块依次链接构成,所述主链中区块的类型不同于侧链中区块的类型;
所述间隔区块结构由相互穿插的不同类区块依次链接构成,并且同类区块依次链接;
所述大小区块结构由若干大区块依次链接构成,所述大区块中包括至少两类区块,并且同类区块依次链接。
一种区块链事务执行方法,当应用于单链单账本模型时,所述方法包括:
创建事务并将所述事务广播到区块链;
在所述区块链中将所述事务打包成区块并进行区块共识;
根据所述事务的事务执行模式将共识后的区块依次链接至上述区块链结构中;
当应用于单链多账本模型时,所述方法包括:
创建事务并将所述事务广播到所述事务的事务执行模式对应的区块链群组;
在所述区块链群组中将所述事务打包成区块并进行区块共识;
将共识后的区块依次链接到所述区块链群组对应的账本中。
进一步的,所述事务通过事务数据结构体表示;
当应用于单链单账本模型时,所述事务数据结构体包括事务类型;
当应用于单链多账本模型时,所述事务数据结构体包括事务类型和账本ID;
其中,所述事务类型与所述事务的事务执行模式对应,所述账本ID与所述事务的事务执行模式对应的区块链群组对应。
进一步的,当应用于单链单账本模型,所述区块链结构为主链侧链结构时,
根据每类事务请求数量比例设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数,所述事务的类型根据事务执行模式划分;
或者设置区块打包事务数量的上限相同,根据每类事务的执行时间设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数。
进一步的,主链上区块打包的时间间隔大于或等于侧链上区块打包的时间间隔。
进一步的,当应用于单链单账本模型,所述区块链结构为间隔区块结构时,
若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置对应区块的穿插数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得各类区块的穿插数量比例相同。
进一步的,当应用于单链单账本模型,所述区块链结构为大小区块结构时,
若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置大区块中对应区块的数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得大区块中每类区块的数量比例相同。
一种区块链事务执行装置,当应用于单链单账本模型时,包括:
第一事务创建模块,用于创建事务并将所述事务广播到区块链;
第一区块共识模块,用于在所述区块链中将所述事务打包成区块并进行区块共识;
第一链接模块,用于根据所述事务的事务执行模式将共识后的区块依次链接至上述区块链结构中;
当应用于单链多账本模型时,包括:
第二事务创建模块,用于创建事务并将所述事务广播到所述事务的事务执行模式对应的区块链群组;
第二区块共识模块,用于在所述区块链群组中将所述事务打包成区块并进行区块共识;
第二链接模块,用于将共识后的区块依次链接到所述区块链群组对应的账本中。
一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任意一项所述区块链事务执行方法。
一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行任意一项所述区块链事务执行方法。
有益效果:与现有技术相比较,本发明具有如下有益效果:
本发明设计了一种区块链结构以及区块链事务执行方法,实现了基于单链模型的区块链可针对不同事务支持不同的事务执行模式。本发明的区块链单链模型包括单链单账本模型和单链多账本模型,基于单链单账本模型的区块链可通过单链侧链结构、间隔区块结构或大小区块结构同时使用不同的事务执行模式,基于单链多账本模型的区块链可在其不同账本中使用不同的事务执行模式。本发明实现了在一条区块链上支持不同场景业务的事务执行模式,同时兼顾场景业务的事务执行模式和需求,节省了不同业务区块链分别部署和维护节点的成本,并且不存在异构区块链的兼容适配问题。
附图说明
图1为本发明所述的区块链事务执行方法的流程图;
图2为现有技术中的事务执行模式的示意图;
图3为本发明实施例中的区块链结构示意图;
图4为本发明实施例中单链多账本模型的区块链结构示意图;
图5为本发明实施例中单链单账本模型的区块链中事务的事务数据结构体示意图;
图6为本发明实施例中单链单账本模型应用区块链事务执行方法的节点示意图;
图7为本发明实施例中单链多账本模型的区块链中事务的事务数据结构体示意图;
图8为本发明实施例中单链多账本模型应用区块链事务执行方法的节点示意图;
图9为本发明所述的区块链事务执行装置的示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
为便于说明本发明的技术方案,首先对本发明所涉及的名词进行解释:
单链模型:所有区块链节点通过网络连接共同组成一个区块链网络,该区块链网络的所有节点共同维护一条区块链。
单链多账本模型:基于单链模型,组成区块链网络的区块链节点共享底层计算/存储/网络资源,这些区块链节点根据不同场景业务需求创建并加入不同群组,每个群组内的所有节点共同维护一个账本,同一区块链节点可加入不同群组,即当群组数量大于或等于2时,形成单链多账本模型。
单链单账本模型:单链模型下,组成区块链网络的所有区块链节点加入同一个群组共同维护一个账本,全局只有一个账本,即群组数量等于1时,形成单链单账本模型。
实施例1:
本实施例公开了一种区块链结构,所述区块链中包括至少两类区块,所述区块的类型根据事务执行模式划分;所述区块链结构为主链侧链结构、间隔区块结构或大小区块结构:
所述主链侧链结构包括主链和链接在主链上的若干侧链,所述主链由同类区块依次链接构成,每个侧链由同类区块依次链接构成,所述主链中区块的类型不同于侧链中区块的类型;
所述间隔区块结构由相互穿插的不同类区块依次链接构成,并且同类区块依次链接;
所述大小区块结构由若干大区块依次链接构成,所述大区块中包括至少两类区块,并且同类区块依次链接。本发明的区块链单链模型包括单链单账本模型和单链多账本模型,基于单链单账本模型的区块链可通过单链侧链结构、间隔区块结构或大小区块结构同时使用不同的事务执行模式。
本实施例还公开了一种区块链事务执行方法,如图1所示,当应用于单链单账本模型时,所述方法包括:
创建事务并将所述事务广播到区块链;
在所述区块链中将所述事务打包成区块并进行区块共识;
根据所述事务的事务执行模式将共识后的区块依次链接至上述区块链结构中;
当应用于单链多账本模型时,所述方法包括:
创建事务并将所述事务广播到所述事务的事务执行模式对应的区块链群组;
在所述区块链群组中将所述事务打包成区块并进行区块共识;
将共识后的区块依次链接到所述区块链群组对应的账本中。基于所述区块链结构与区块链事务执行方法,本发明实现了在一条区块链上支持不同场景业务的事务执行模式,同时兼顾场景业务的事务执行模式和需求,节省了不同业务区块链分别部署和维护节点的成本,并且不存在异构区块链的兼容适配问题。
进一步的,所述事务通过事务数据结构体表示;
当应用于单链单账本模型时,所述事务数据结构体包括事务类型;
当应用于单链多账本模型时,所述事务数据结构体包括事务类型和账本ID;
其中,所述事务类型与所述事务的事务执行模式对应,所述账本ID与所述事务的事务执行模式对应的区块链群组对应。
基于所述事务数据结构体,能够识别出具体的事务类别以及对应的事务执行模式,并将其广播到区块链或事务执行模式对应的区块链群组。
进一步的,当应用于单链单账本模型,所述区块链结构为主链侧链结构时,根据每类事务请求数量比例设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数,所述事务的类型根据事务执行模式划分;
或者设置区块打包事务数量的上限相同,根据每类事务的执行时间设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数。
进一步的,主链上区块打包的时间间隔大于或等于侧链上区块打包的时间间隔,便于区块链的维护和数据查询。
进一步的,当应用于单链单账本模型,所述区块链结构为间隔区块结构时,若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置对应区块的穿插数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得各类区块的穿插数量比例相同。
进一步的,当应用于单链单账本模型,所述区块链结构为大小区块结构时,若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置大区块中对应区块的数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得大区块中每类区块的数量比例相同。
实施例2:
本实施例同时兼顾不同云网场景业务的事务执行模式和需求,解决区块链单链模型上,即同一条区块链中无法同时最佳适配多种云网场景业务的事务执行模式的问题,实现了一条区块链上支持不同场景业务的事务执行模式,保障不同业务的实时响应和避免冲突等需求。本实施例基于第一执行模式和第二执行模式两种事务执行模式解释单链模型如何设置区块链结构,并在同一条区块链上针对不同事务支持不同的事务执行模式,即完成事务的定制化执行。其中,基于单链模型的区块链可以是公有链、联盟链和私有链。使用第一执行模式和第二执行模式的事务执行流程如下:
第一执行模式:区块链客户端发起事务并广播到区块链网络上,共识节点将该事务打包到区块内并进行区块共识,随后广播区块,其他节点同步区块并顺序执行验证区块内事务获得执行结果,最后通过执行结果更新区块链状态。
第二执行模式:区块链客户端发起事务并广播到区块链网络上,共识节点在打包事务的同时执行该事务生成执行结果和读写集,并将该事务、执行结果和读写集一起打包到区块内进行区块共识,随后广播区块,其他节点同步并验证区块内事务,最后通过读写集更新区块链状态。
第一执行模式中,进行区块共识后再执行区块内事务得到执行结果,因此事务为串行执行,可以避免冲突问题;第二执行模式中,执行事务得到执行结果后再进行区块共识,因此事务可以并行执行,且能够获得执行结果的实时响应。例如,费用结算业务由于不能出现冲突问题,所以定制化使用第一执行模式;资源调度业务由于需要立即响应进行实时调度,所以定制化使用第二执行模式。
定义使用第一执行模式的事务为第一执行模式类事务,使用第二执行模式的事务为第二执行模式类事务。第一执行模式类事务和第二执行模式类事务可通过标识字段和扩展字段的方式共用同一个事务数据结构体,其中标识字段用于区分事务类别,扩展字段可根据事务类别添加相应的内容,例如,第一执行模式类事务的扩展字段可设置为空值,第二执行模式类事务的扩展字段可添加用于状态更新的读集和写集等。
本实施例的区块链单链模型包括单链单账本模型和单链多账本模型,基于单链单账本模型的区块链可通过单链侧链结构、间隔区块结构或大小区块结构等同时使用不同的事务执行模式,基于单链多账本模型的区块链可为其不同账本使用不同的事务执行模式。
基于单链单账本模型的区块链针对不同事务支持不同的事务执行模式
单链单账本的实质就是单条区块链下只存在一个账本,即区块链网络全局内仅一条区块链和一个账本,组成区块链网络的节点共享所有区块链上和账本数据,典型代表有比特币(Bitcoin)、以太坊(Ethereum)、EOS区块链等。基于该模型的区块链可支持多种场景业务,优点是可实现场景业务的完全去中心化,所有场景参与方地位平等,但是各场景业务间无法在区块链底层实现相互隔离。
基于单链单账本模型的区块链针对不同事务支持不同的事务执行模式时,由于在同一条区块链上进行采用第一执行模式和第二执行模式的两类事务,但是这两类事务的事务数据结构体组成结构不同,这就要求共识节点能够根据事务数据结构体识别出具体的事务类别:第一执行模式类事务的事务数据结构体中,标识字段包括事务类型、区块ID、事务ID和数据参数,扩展字段为空;第二执行模式类事务的事务数据结构体中,标识字段包括事务类型、区块ID、事务ID和数据参数,扩展字段包括读集和写集。
识别出具体的事务类别后,将尚未被打包的事务打包到新的区块中并完成区块共识,然后将区块广播给其他非共识节点,其他非共识节点同步并验证该区块,如图3所示,虚线区块打包第一执行模式类事务,实线区块打包第二执行模式类事务,反之亦可。区块打包两类事务的时间间隔支持自定义,例如,共识节点每15秒将尚未被打包的第一执行模式类事务打包到新的虚线区块中,共识节点每5秒将尚未被打包的第二执行模式类事务打包到新的实线区块中,如果打包事务的时间间隔对应的时间段内没有此类事务则打包空的区块。
基于单链单账本模型针对不同事务支持不同的事务执行模式的区块链结构,为主链侧链结构、间隔区块结构或大小区块结构等,如图3所示。
区块链结构①是主链侧链结构,主链是指虚线区块组成的区块链主体,侧链是指实线区块组成的区块链分支。主链上的虚线区块和侧链上的实线区块打包的间隔时间根据事务占比或相应的事务执行时间进行设定,从而确定侧链在主链上的位置以及侧链上的区块个数,具体可采用以下两种方法设置:
方法一:根据每类事务请求数量比例设置主链上和侧链上的对应区块打包的间隔时间;
方法二:设置每类区块打包事务数量的上限相同,根据每类事务的执行时间设置主链上和侧链上的对应区块打包的间隔时间。
例如,费用结算业务定制化使用第一执行模式,打包的区块为虚线区块,资源调度业务定制化使用第二执行模式,打包的区块为实线区块,因此:采用方法一,设置相同时间内费用结算业务和资源调度业务两类事务请求数量比例为1:3,则设置虚线区块和实线区块打包的时间间隔比例为3:1,所以可设置虚线区块打包的时间间隔为15秒、实线区块打包的时间间隔为5秒,即共识节点每15秒打包一个虚线区块和三个实线区块,因此三个实线区块组成侧链然后链接到主链的一个虚线区块上;采用方法二,由于第二执行模式类事务可以并行执行、第一执行模式类事务串行执行,所以打包相同数量事务的区块,第二执行模式类事务比第一执行模式类事务的执行时间更短,也即相同时间内,执行的第二执行模式类事务比第一执行模式类事务更多,假设区块链每1秒可以执行100笔第一执行模式类事务或者执行300笔第二执行模式类事务,即第一执行模式类事务与第二执行模式类事务的执行时间比例为3:1,设置虚线区块和实线区块打包事务数量上限均为100,则虚线区块和实线区块的执行时间比例为3:1,因此设置虚线区块和实线区块打包的时间间隔比例为3:1,即每打包一个虚线区块并执行100笔第一执行模式类事务,就打包3个实线区块并执行300笔第二执行模式类事务,因此三个实线区块组成侧链然后链接到主链的一个虚线区块上。
如果打包事务的时间间隔对应的时间段内没有此类事务则打包空的区块并且空区块不链接到区块链上。优选地,主链上区块打包的时间间隔不小于侧链上区块打包的时间间隔,便于区块链的维护和数据查询。
区块链结构②是间隔区块结构,实线区块和虚线区块相互穿插链接,并且同类区块也依次链接。虚线区块和实线区块的穿***例具体可采用以下两种方法设置:
方法一:设置每类区块打包事务数量的上限相同,根据每类事务的执行时间设置对应区块的穿插数量比例;
方法二:设置每类区块打包的时间间隔相等,根据每类事务的执行时间设置对应区块打包事务数量的上限,使得每类区块的穿插数量比例为1:1。
例如,费用结算业务定制化使用第一执行模式,打包的区块为虚线区块,资源调度业务定制化使用第二执行模式,打包的区块为实线区块,由于第二执行模式类事务可以并行执行、第一执行模式类事务串行执行,假设区块链每1秒可以执行100笔第一执行模式类事务或者执行300笔第二执行模式类事务,即第一执行模式类事务与第二执行模式类事务的执行时间比例为3:1,因此:采用方法一打包相同数量事务的区块,实线区块比虚线区块的执行时间更短,也即相同时间内,实线区块比虚线区块更多,设置虚线区块和实线区块的打包事务数量上限均为100,则虚线区块和实线区块的执行时间比例为3:1,因此虚线区块和实线区块的穿插数量比例设置为1:3;采用方法二,如果设置虚线区块和实线区块打包的时间间隔均为3秒,由于第一执行模式类事务与第二执行模式类事务的执行时间比例为3:1,因此分别设置虚线区块和实线区块打包事务数量的上限比例为1:3,从而使得虚线区块和实线区块的穿插数量比例为1:1。按照上述选择的方法设置区块数量比例后,虚线区块和实线区块会穿插链接形成区块链。
区块链结构③是大小区块结构,实线区块和虚线区块都被包含在相互链接的大区块内,并且同类区块依次链接,即实线区块依次链接,虚线区块依次链接。大区块内的虚线区块和实线区块的数量比例具体可采用以下两种方法设置:
方法一:设置每类区块打包事务数量的上限相同,根据每类事务的执行时间设置大区块中对应区块的数量比例;
方法二:设置每类区块打包的时间间隔相等,根据每类事务的执行时间设置对应区块打包事务数量的上限,使得大区块中每类区块的数量比例为1:1。
例如,费用结算业务定制化使用第一执行模式,打包的区块为虚线区块,资源调度业务定制化使用第二执行模式,打包的区块为实线区块,由于第二执行模式类事务可以并行执行、第一执行模式类事务串行执行,假设区块链每1秒可以执行100笔第一执行模式类事务或者执行300笔第二执行模式类事务,即第一执行模式类事务与第二执行模式类事务的执行时间比例为3:1,因此:采用方法一打包相同数量事务的区块,实线区块比虚线区块的执行时间更短,也即相同时间内,实线区块比虚线区块更多,设置虚线区块和实线区块打包事务数量上限均为100,则大区块中虚线区块和实线区块的数量比例为1:3,即1个大区块中含有1个虚线区块和3个实线区块;采用方法二,如果设置大区块打包的时间间隔为3秒,由于第一执行模式类事务与第二执行模式类事务的执行时间比例为3:1,因此分别设置虚线区块和实线区块打包事务数量的上限比例为1:3,从而保证大区块中虚线区块和实线区块的数量比例为1:1。按照上述选择的方式设置区块比例后,虚线区块和实线区块会组成大区块进行依次链接形成区块链。
需要说明的是,不能在主链侧链结构、间隔区块结构以及大小区块结构的同一个区块内混合打包两类事务,否则会出现区块内事务执行和验证效率降低等问题,原因在于区块共识后,第一执行模式在节点上需要进行事务执行和验证以更新区块链状态,而第二执行模式在节点上无需将事务重新执行一遍,仅验证签名合法即可利用状态数据更新区块链状态,因此第一执行模式会拖慢第二执行模式的事务验证,导致区块执行和验证耗时更长。
基于单链多账本模型的区块链针对不同事务支持不同的事务执行模式
单链多账本的实质是单条区块链下存在多个账本,即区块链网络全局内仅一条区块链和多个账本,组成区块链网络的节点共同维护一条区块链,同时组成区块链网络的节点根据不同业务创建并加入不同群组,一个区块链节点可同时加入多个群组,每个群组内的所有节点共同维护一个账本,每个群组内仅有一个账本并且群组内节点独立共识,群组间账本数据相互隔离,典型代表有超级账本(Hyperledger Fabric)区块链。基于该模型的区块链可支持多场景并存,优点是场景业务间可实现相互隔离,进而保证了业务数据的安全隐私。
单链多账本模型中,第一执行模式类事务的事务数据结构体中,标识字段包括事务类型、区块ID、事务ID、账本ID和数据参数,扩展字段为空;第二执行模式类事务的事务数据结构体中,标识字段包括事务类型、区块ID、事务ID、账本ID和数据参数,扩展字段包括读集和写集。
基于单链多账本模型的区块链针对不同事务支持不同的事务执行模式时,需要根据不同业务让相关节点创建并加入群组,然后该群组内所有节点初始化账本数据、指定共识算法、并为该账本设置相对应的事务执行模式,区块链根据事务数据结构体中的账本ID将事务广播到对应群组,所述事务的事务执行模式与账本ID对应群组的事务执行模式相同,群组内节点将本群组内事务打包成区块并链接到本群组的账本中。如图4所示,该节点加入了4个群组并且维护了4个账本,其中账本1和账本4使用了第一执行模式,账本2和账本3使用了第二执行模式。对于业务数据需要相互隔离的场景业务,则每个业务对应的群组或账本只能定制一种事务执行模式,从而保证了不同群组或账本所对应的业务相互隔离。例如,对于要求执行响应低时延的云网场景资源调度业务,其对应的群组或账本应选用第二执行模式,便于及时获得调度执行结果;而对于无法容忍交易冲突的云网场景费用结算业务,其对应的群组或账本则需要选用第一执行模式,进行顺序执行避免结算事务冲突导致回滚。
实施例3:
本实施例基于第一执行模式和第二执行模式两种事务执行模式以及云网场景的资源调度业务和费用结算业务解释单链模型如何设置区块链结构并且针对不同事务支持不同的事务执行模式。
基于单链单账本模型的区块链针对不同事务支持不同的事务执行模式实施例
执行事务前,进行如下配置:
区块链***选择一种区块链结构,例如,选择主链侧链结构,并设置主链打包区块时间间隔为15秒,侧链打包区块时间间隔为5秒;
区块链节点部署组网,形成区块链网络;
区块链***为费用结算业务和资源调度业务分别配置和启用第一执行模式和第二执行模式。
事务执行过程如下:
1.1、创建事务,如图5所示,其中,第二执行模式类事务使用扩展字段的读集和写集,第一执行模式类事务则将扩展字段设置为空值,然后将事务广播到区块链网络;
1.2、共识节点根据事务类型判断事务类别,分别进行区块打包并进行区块共识,第一执行模式类事务打包到侧链上,第二执行模式类事务打包到主链上;其他节点进行区块同步与验证等区块链操作;
1.3、针对云网新场景的费用结算业务和资源调度业务,重新执行步骤1.1-步骤1.2。
最终,基于单链单账本模型的区块链针对不同事务支持不同的事务执行模式的区块链节点如图6所示,在该图中,节点1、节点2、节点3等节点共享区块链网络内的数据、且以主链侧链结构同时支持分别选用第一执行模式和第二执行模式的费用结算业务和资源调度业务。
基于单链多账本模型的区块链针对不同事务支持不同的事务执行模式实施例
执行事务前,进行如下配置:
区块链节点部署组网,形成区块链网络;
针对具体云网场景进行业务需求分析,业务相关的区块链节点创建并加入群组,然后该群组内所有区块链节点初始化账本数据、指定共识算法、并为该账本设置与业务相对应的事务执行模式,例如,资源调度业务的区块链节点创建并加入群组A,然后群组A内所有区块链节点初始化账本数据、指定共识算法、为该账本设置并启用第二执行模式。
事务执行过程如下:
2.1、创建事务,如图7所示,其中,第二执行模式类事务使用扩展字段的读集和写集,第一执行模式类事务则将扩展字段设置为空值,然后根据事务的账本ID将事务广播到对应的群组,例如,将资源调度业务的事务广播给群组1;
2.2、群组内共识节点将本群组内事务打包成区块并进行区块共识,群组内其他节点进行区块同步、区块验证并将验证后的区块链接成账本;
2.3、针对云网新场景的费用结算业务和资源调度业务,重新执行步骤2.1-步骤2.2。
针对云网场景的新业务,根据新业务进行配置后,重新执行步骤2.1-步骤2.3。
最终,基于单链多账本模型的区块链针对不同事务支持不同的事务执行模式的区块链节点如图8所示。在该图中,节点1、节点2和节点4共同维护账本1以支持选用第一执行模式的费用结算业务,节点1、节点3和节点4共同维护账本3以支持选用第二执行模式的资源调度业务,共享节点资源的同时实现了场景业务间的隔离。
实施例4:
本实施例公开了一种区块链事务执行装置,如图9所示,
当应用于单链单账本模型时,包括:
第一事务创建模块,用于创建事务并将所述事务广播到区块链;
第一区块共识模块,用于在所述区块链中将所述事务打包成区块并进行区块共识;
第一链接模块,用于根据所述事务的事务执行模式将共识后的区块依次链接至所述区块链结构中;
当应用于单链多账本模型时,包括:
第二事务创建模块,用于创建事务并将所述事务广播到所述事务的事务执行模式对应的区块链群组;
第二区块共识模块,用于在所述区块链群组中将所述事务打包成区块并进行区块共识;
第二链接模块,用于将共识后的区块依次链接到所述区块链群组对应的账本中。
进一步的,所述事务通过事务数据结构体表示;
当应用于单链单账本模型时,所述事务数据结构体包括事务类型;
当应用于单链多账本模型时,所述事务数据结构体包括事务类型和账本ID;
其中,所述事务类型与所述事务的事务执行模式对应,所述账本ID与所述事务的事务执行模式对应的区块链群组对应。
进一步的,当应用于单链单账本模型,所述区块链结构为主链侧链结构时,
根据每类事务请求数量比例设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数,所述事务的类型根据事务执行模式划分;
或者设置区块打包事务数量的上限相同,根据每类事务的执行时间设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数。
进一步的,主链上区块打包的时间间隔大于或等于侧链上区块打包的时间间隔。
进一步的,当应用于单链单账本模型,所述区块链结构为间隔区块结构时,
若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置对应区块的穿插数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得各类区块的穿插数量比例相同。
进一步的,当应用于单链单账本模型,所述区块链结构为大小区块结构时,若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置大区块中对应区块的数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得大区块中每类区块的数量比例相同。
实施例5:
本实施例公开了一种设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一种区块链事务执行方法。存储器可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。处理器可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器或图像处理器等。
本实施例还公开了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任意一种区块链事务执行方法。存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种区块链结构,其特征在于,所述区块链中包括至少两类区块,所述区块的类型根据事务执行模式划分;所述区块链结构为主链侧链结构、间隔区块结构或大小区块结构:
所述主链侧链结构包括主链和链接在主链上的若干侧链,所述主链由同类区块依次链接构成,每个侧链由同类区块依次链接构成,所述主链中区块的类型不同于侧链中区块的类型;
所述间隔区块结构由相互穿插的不同类区块依次链接构成,并且同类区块依次链接;
所述大小区块结构由若干大区块依次链接构成,所述大区块中包括至少两类区块,并且同类区块依次链接。
2.一种区块链事务执行方法,其特征在于:
当应用于单链单账本模型时,所述方法包括:
创建事务并将所述事务广播到区块链;
在所述区块链中将所述事务打包成区块并进行区块共识;
根据所述事务的事务执行模式将共识后的区块依次链接至权利要求1中所述区块链结构中;
当应用于单链多账本模型时,所述方法包括:
创建事务并将所述事务广播到所述事务的事务执行模式对应的区块链群组;
在所述区块链群组中将所述事务打包成区块并进行区块共识;
将共识后的区块依次链接到所述区块链群组对应的账本中。
3.根据权利要求2所述的一种区块链事务执行方法,其特征在于,所述事务通过事务数据结构体表示;
当应用于单链单账本模型时,所述事务数据结构体包括事务类型;
当应用于单链多账本模型时,所述事务数据结构体包括事务类型和账本ID;
其中,所述事务类型与所述事务的事务执行模式对应,所述账本ID与所述事务的事务执行模式对应的区块链群组对应。
4.根据权利要求2所述的一种区块链事务执行方法,其特征在于,当应用于单链单账本模型,所述区块链结构为主链侧链结构时,
根据每类事务请求数量比例设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数,所述事务的类型根据事务执行模式划分;
或者设置区块打包事务数量的上限相同,根据每类事务的执行时间设置对应区块打包的时间间隔,从而确定侧链在主链上的位置以及侧链上的对应区块个数。
5.根据权利要求4所述的一种区块链事务执行方法,其特征在于,主链上区块打包的时间间隔大于或等于侧链上区块打包的时间间隔。
6.根据权利要求2所述的一种区块链事务执行方法,其特征在于,当应用于单链单账本模型,所述区块链结构为间隔区块结构时,
若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置对应区块的穿插数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得各类区块的穿插数量比例相同。
7.根据权利要求2所述的一种区块链事务执行方法,其特征在于,当应用于单链单账本模型,所述区块链结构为大小区块结构时,
若设置区块打包事务数量的上限相同,则根据每类事务的执行时间设置大区块中对应区块的数量比例,所述事务的类型根据事务执行模式划分;
若设置区块打包的时间间隔相等,则根据每类事务的执行时间设置对应区块打包事务数量的上限,使得大区块中每类区块的数量比例相同。
8.一种区块链事务执行装置,其特征在于,
当应用于单链单账本模型时,包括:
第一事务创建模块,用于创建事务并将所述事务广播到区块链;
第一区块共识模块,用于在所述区块链中将所述事务打包成区块并进行区块共识;
第一链接模块,用于根据所述事务的事务执行模式将共识后的区块依次链接至权利要求1中所述区块链结构中;
当应用于单链多账本模型时,包括:
第二事务创建模块,用于创建事务并将所述事务广播到所述事务的事务执行模式对应的区块链群组;
第二区块共识模块,用于在所述区块链群组中将所述事务打包成区块并进行区块共识;
第二链接模块,用于将共识后的区块依次链接到所述区块链群组对应的账本中。
9.一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求2~7中任意一项所述区块链事务执行方法。
10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求2~7中任意一项所述区块链事务执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111241726.0A CN113965570B (zh) | 2021-10-25 | 2021-10-25 | 区块链结构以及区块链事务执行方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111241726.0A CN113965570B (zh) | 2021-10-25 | 2021-10-25 | 区块链结构以及区块链事务执行方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965570A true CN113965570A (zh) | 2022-01-21 |
CN113965570B CN113965570B (zh) | 2024-05-17 |
Family
ID=79466700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111241726.0A Active CN113965570B (zh) | 2021-10-25 | 2021-10-25 | 区块链结构以及区块链事务执行方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965570B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180123779A1 (en) * | 2016-11-01 | 2018-05-03 | Jiangang Zhang | Flexible Blockchain Smart-Contract Deployment |
CN108984645A (zh) * | 2018-06-25 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN109787771A (zh) * | 2019-01-02 | 2019-05-21 | 浙江师范大学 | 一种基于区块链的身份授权方法及*** |
CN111736963A (zh) * | 2020-06-08 | 2020-10-02 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理***及方法 |
CN112925479A (zh) * | 2021-02-20 | 2021-06-08 | 京东数字科技控股股份有限公司 | 区块链数据管理方法及装置、电子设备及介质 |
CN113205417A (zh) * | 2021-04-27 | 2021-08-03 | 华东师范大学 | 一种面向联盟链的交易并行处理方法及*** |
CN113419823A (zh) * | 2021-06-22 | 2021-09-21 | 东北大学 | 一种适用于高并发事务的联盟链***及其设计方法 |
-
2021
- 2021-10-25 CN CN202111241726.0A patent/CN113965570B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180123779A1 (en) * | 2016-11-01 | 2018-05-03 | Jiangang Zhang | Flexible Blockchain Smart-Contract Deployment |
CN108984645A (zh) * | 2018-06-25 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN109787771A (zh) * | 2019-01-02 | 2019-05-21 | 浙江师范大学 | 一种基于区块链的身份授权方法及*** |
CN111736963A (zh) * | 2020-06-08 | 2020-10-02 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理***及方法 |
CN112925479A (zh) * | 2021-02-20 | 2021-06-08 | 京东数字科技控股股份有限公司 | 区块链数据管理方法及装置、电子设备及介质 |
CN113205417A (zh) * | 2021-04-27 | 2021-08-03 | 华东师范大学 | 一种面向联盟链的交易并行处理方法及*** |
CN113419823A (zh) * | 2021-06-22 | 2021-09-21 | 东北大学 | 一种适用于高并发事务的联盟链***及其设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113965570B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147735B (zh) | 一种基于分层结构的分布式账本*** | |
CN110990408B (zh) | 基于区块链的业务信息协同方法、业务***及联盟链 | |
CN109493050B (zh) | 基于区块链主链加并行多子链的转账方法 | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约*** | |
CN107392608B (zh) | 基于区块链***的数字资产交易方法及区块链*** | |
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约*** | |
CN112235420B (zh) | 基于区块链的数据同步方法、***及相关设备 | |
CN111445236A (zh) | 一种区块链交易验证方法、设备及存储介质 | |
CN112598525B (zh) | 一种智能合约分簇并行的区块链实现方法及装置 | |
CN109981279B (zh) | 一种区块链***、通信方法、装置、设备及介质 | |
CN111240732B (zh) | 分布式微服务的发布方法、装置、设备及存储介质 | |
CN109254825A (zh) | 一种纳管虚拟机硬盘的方法及装置 | |
CN109961364B (zh) | 一种基于有向无环图的交易方法及*** | |
CN109344126B (zh) | 贴图的处理方法、装置、存储介质和电子装置 | |
WO2023045617A1 (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
WO2022134797A1 (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
WO2021190179A1 (zh) | 一种同步处理方法和相关装置 | |
CN109445923A (zh) | 一种微服务任务调度的方法及装置 | |
CN113269546A (zh) | 一种基于区块链的用户身份证照***及方法 | |
CN110766410A (zh) | 基于默克尔树的可信跨链事件构造与验证方法和设备 | |
CN111798234B (zh) | 一种轻量级区块链***及构造方法 | |
CN113259478A (zh) | 在区块链***中执行交易的方法、装置及区块链*** | |
CN108833584A (zh) | 消息推送方法、终端、服务器及计算机存储介质 | |
CN112231415B (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 |