CN118041839A - 一种多区块链数据处理方法、装置、设备、介质及产品 - Google Patents
一种多区块链数据处理方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN118041839A CN118041839A CN202211411454.9A CN202211411454A CN118041839A CN 118041839 A CN118041839 A CN 118041839A CN 202211411454 A CN202211411454 A CN 202211411454A CN 118041839 A CN118041839 A CN 118041839A
- Authority
- CN
- China
- Prior art keywords
- target
- link
- chain
- node
- height
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 824
- 238000012790 confirmation Methods 0.000 claims abstract description 281
- 238000012795 verification Methods 0.000 claims abstract description 196
- 238000000034 method Methods 0.000 claims abstract description 112
- 238000012545 processing Methods 0.000 claims description 157
- 230000003993 interaction Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 16
- 230000008030 elimination Effects 0.000 claims description 11
- 238000003379 elimination reaction Methods 0.000 claims description 11
- 238000012856 packing Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 186
- 230000008569 process Effects 0.000 description 35
- 238000004422 calculation algorithm Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 18
- 238000012797 qualification Methods 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000010200 validation analysis Methods 0.000 description 10
- 238000013475 authorization Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000011835 investigation Methods 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 229940079593 drug Drugs 0.000 description 3
- 239000003814 drug Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004080 punching Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- 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
-
- 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
-
- 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/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种多区块链数据处理方法、装置、设备、介质及产品,方法包括:获取与目标链相关联的监测节点针对目标业务子链的链高度投票信息;在通过目标链上的子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型;基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度;通过子链监测控制合约生成目标链高度对应的高度确认信息,将高度确认信息发送至目标业务子网络中的验证节点,以使验证节点将目标链高度写入目标业务子链上的子链监测合约。采用本申请,可以在多区块链架构中实现对业务子链的灵活监测,且不影响业务子链的独立运行。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种多区块链数据处理方法、装置、设备、介质及产品。
背景技术
目前,为了满足业务形态需要,现有区块链系统可以在多区块链架构(例如,包含管理链、票据链和应用合约链的三链架构)的基础上创建用于执行某些子链业务(例如,会产生大量临时数据的临时业务)的业务子链。
发明人在实践中发现,现有的区块链系统所支持的监测检查机制,一般会嵌入到区块链系统包含的区块链节点或者相关业务合约中,随着相关交易打包上链时对应执行,然而,在区块链系统创建多个业务子链时,这种方式显然无法适应不同业务子链所需的灵活多变的监测逻辑。此外,采用该监测检查机制对业务子链进行监测时容易对业务子链上的正常子链业务产生阻塞作用,从而影响业务子链的独立运行。
发明内容
本申请实施例提供了一种多区块链数据处理方法、装置、设备、介质及产品,可以在多区块链架构中实现对业务子链的灵活监测,且不影响业务子链的独立运行。
本申请实施例一方面提供了一种多区块链数据处理方法,多区块链包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络;目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;方法由目标共识节点执行,方法包括:
获取与目标链相关联的监测节点针对目标业务子链的链高度投票信息;目标链上部署有用于对目标业务子链进行控制的子链监测控制合约;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;
在通过目标链上的子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型;
基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度;
通过子链监测控制合约生成目标链高度对应的高度确认信息,将高度确认信息发送至目标业务子网络中的验证节点,以使验证节点将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度。
本申请实施例一方面提供了一种多区块链数据处理方法,多区块链包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络;目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;方法由目标业务子网络中的验证节点执行,方法包括:
接收目标共识节点发送的目标业务子链的目标链高度所对应的高度确认信息;高度确认信息是由目标共识节点通过目标链上部署的用于对目标业务子链进行控制的子链监测控制合约所生成的;目标业务子链的目标链高度是目标共识节点基于获取到的与目标链相关联的监测节点针对目标业务子链的链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约所确定的;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;链高度投票信息的投票类型是在目标共识节点通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份所确定的;
将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约,基于目标链高度确定执行业务对象所请求的目标业务后的链高度。
本申请实施例一方面提供了一种多区块链数据处理方法,多区块链包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络;目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;方法由与目标链相关联的监测节点执行,方法包括:
获取监测节点针对目标业务子链的链高度进行投票时的链高度投票信息;目标链上部署有用于对目标业务子链进行控制的子链监测控制合约;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;
将链高度投票信息发送至目标共识节点,以使目标共识节点在通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型,且在基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约确定目标业务子链的目标链高度时,通过子链监测控制合约生成目标链高度对应的高度确认信息;高度确认信息用于发送至目标业务子网络中的验证节点;验证节点用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度;
从子链监测合约中获取目标链高度,基于目标链高度对目标业务子链进行监测投票处理。
本申请实施例一方面提供了一种多区块链数据处理装置,多区块链包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络;目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;装置运行在目标共识节点上,装置包括:
信息获取模块,用于获取与目标链相关联的监测节点针对目标业务子链的链高度投票信息;目标链上部署有用于对目标业务子链进行控制的子链监测控制合约;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;
类型确定模块,用于在通过目标链上的子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型;
高度确定模块,用于基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度;
信息发送模块,用于通过子链监测控制合约生成目标链高度对应的高度确认信息,将高度确认信息发送至目标业务子网络中的验证节点,以使验证节点将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度。
其中,上述链高度投票信息包含监测节点针对目标业务子链的第一类高度投票信息;第一类高度投票信息包含监测节点的节点标识、监测节点的公钥证书、监测节点针对目标业务子链的链高度进行投票时的投票确认高度、以及监测节点的签名信息;监测节点的签名信息是由监测节点通过监测节点的私钥信息对投票确认高度进行签名后所得到的;子链监测控制合约中包含与目标业务子链相关联的注册节点的节点注册配置信息;节点注册配置信息中包含注册节点的节点标识以及注册节点的公钥证书;注册节点的公钥证书是由目标共识节点调用子链监测控制合约对注册节点提交的注册节点信息进行身份注册后所得到的;
类型确定模块包括:
证书查找单元,用于从第一类高度投票信息中获取监测节点的节点标识,在注册节点的节点标识中查找与监测节点的节点标识相同的目标节点标识,且在查找到目标节点标识时,从注册节点的公钥证书中获取目标节点标识对应的目标注册节点的公钥证书,且将获取到的目标注册节点的公钥证书作为目标公钥证书;
签名验证单元,用于将第一类高度投票信息中包含的监测节点的公钥证书作为待处理公钥证书,基于待处理公钥证书以及目标公钥证书对监测节点的签名信息进行签名验证,得到监测节点的签名验证结果;
节点确定单元,用于在监测节点的签名验证结果指示签名验证成功时,确定监测节点为目标注册节点;
类型确定单元,用于基于目标注册节点的节点注册身份确定第一类高度投票信息的投票类型。
其中,签名验证单元包括:
证书比对子单元,用于将待处理公钥证书中的证书数据信息作为待处理证书信息,且将目标公钥证书中的证书数据信息作为目标证书信息;将待处理证书信息与目标证书信息进行比对,得到比对结果;
签名验证子单元,用于在比对结果指示待处理证书信息与目标证书信息一致时,基于待处理公钥证书中的公钥信息对监测节点的签名信息进行签名验证,并将签名验证成功时的验证结果作为监测节点的签名验证结果。
其中,节点注册配置信息中包含注册节点针对目标业务子链所注册的第一类型节点注册身份或第二类型节点注册身份;
类型确定单元包括:
身份查找子单元,用于在节点注册配置信息中查找目标节点标识对应的目标注册节点的节点注册身份,且将查找到的目标注册节点的节点注册身份作为目标节点注册身份;
第一类型确定子单元,用于在目标节点注册身份为第一类型节点注册身份时,基于第一类型节点注册身份确定第一类高度投票信息的投票类型为第一投票类型;
第二类型确定子单元,用于在目标节点注册身份为第二类型节点注册身份时,基于第二类型节点注册身份确定第一类高度投票信息的投票类型为第二投票类型。
其中,监测节点包括第一类监测节点和第二类监测节点;第一类监测节点为在子链监测控制合约中注册有第一类型节点注册身份的监测节点;第二类监测节点为在子链监测控制合约中注册有第二类型节点注册身份的监测节点;第一类型节点注册身份的身份等级高于第二类型节点注册身份的身份等级;链高度投票信息包含第一类监测节点和第二类监测节点针对目标业务子链的第一类高度投票信息;第一类高度投票信息包含第一类监测节点基于第一类型节点注册身份所确定的具有第一投票类型的第一链高度投票信息、以及第二类监测节点基于第二类型节点注册身份所确定的具有第二投票类型的第二链高度投票信息;
高度确定模块包括:
高度获取单元,用于将第一链高度投票信息中包含的第一类监测节点针对目标业务子链的链高度进行投票时的投票确认高度作为第一投票确认高度,且将第二链高度投票信息中包含的第二类监测节点针对目标业务子链的链高度进行投票时的投票确认高度作为第二投票确认高度;
高度确定单元,用于基于第一投票确认高度,调用子链监测控制合约确定针对目标业务子链的参照投票高度阈值,且基于参照投票高度阈值、第一投票确认高度、以及第二投票确认高度确定目标业务子链的目标链高度。
其中,当第一类监测节点的数量为M1个时,第一投票确认高度的数量为M1个,M1为正整数;当第二类监测节点的数量为M2个时,第二投票确认高度的数量为M2个,M2为正整数;
高度确定单元包括:
第一高度确定子单元,用于调用子链监测控制合约中的高度确认方法,将M1个第一投票确认高度中具有最小高度的第一投票确认高度作为目标业务子链的参照投票高度阈值;
第二高度确定子单元,用于在M1个第一投票确认高度以及M2个第二投票确认高度中获取小于或等于参照投票高度阈值的投票确认高度,将获取到的投票确认高度作为候选投票高度,且将候选投票高度中具有最大高度的投票确认高度作为目标投票确认高度;
第三高度确定子单元,用于将M1个第一投票确认高度以及M2个第二投票确认高度中大于或等于目标投票确认高度的投票确认高度作为待处理高度,当通过高度确认方法检测到待处理高度的数量大于投票数量阈值时,将目标投票确认高度作为目标业务子链的目标链高度;投票数量阈值大于或等于(M1+M2)/2。
其中,信息发送模块包括:
交易打包单元,用于基于链高度投票信息和目标链高度构造高度确认交易,在满足与目标链相关联的交易打包条件时,将高度确认交易打包至目标链的目标区块中,将包含高度确认交易的目标区块提交到目标链上;
交易执行单元,用于调用目标链上的子链监测控制合约执行目标区块中的高度确认交易,得到目标链高度对应的高度确认信息;
信息发送单元,用于通过目标跨链中继将高度确认信息发送至目标业务子网络中的验证节点;目标跨链中继用于隔离目标业务子网络和目标链网络。
其中,链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息;第二类高度投票信息是监测节点在检测到目标业务子链上存在业务风险时所确定的;第二类高度投票信息包含监测节点针对目标业务子链的链高度进行投票时的投票反对高度;第二类高度投票信息处于监测节点基于风险事务所确定的第一风险处理交易中;风险事务是监测节点基于投票反对高度所生成的;装置还包括:
风险处理模块,用于在获取到监测节点发送的第一风险处理交易时,将第一风险处理交易所指示的风险事务写入子链监测控制合约,将目标业务子链上大于投票反对高度的链高度确定为无效链高度,且生成与风险事务相关联的子链锁定信息;将子链锁定信息发送至目标业务子网络中的验证节点,以使验证节点停止执行与风险事务相关联的风险业务,且在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于第二风险处理交易对风险业务进行风险消除处理;子链锁定信息还用于指示验证节点将目标业务子链的业务状态设置为锁定状态,处于锁定状态的目标业务子链停止执行交易上链,且停止执行与多区块链所包含的第一链以及第二链之间的跨链交互;第一链以及第二链均为不同于目标业务子链的区块链;
风险解除模块,用于获取业务管理对象在风险业务处理成功时所发送的风险解除交易时,调用子链监测控制合约执行风险解除交易,得到用于解除风险事务的风险解除信息,将风险解除信息发送至验证节点,以使验证节点将投票反对高度作为目标业务子链的目标链高度,且将目标业务子链的业务状态由锁定状态恢复为解锁状态;监测节点用于在探测到目标业务子链上存在风险解除信息时,从目标链高度的下一链高度所对应的区块开始进行监测投票处理。
其中,装置还包括:
数据查询模块,用于在获取到业务对象通过业务终端所发送的子链数据查询请求时,通过子链监测控制合约读取目标业务子链的目标链高度,将子链数据查询请求所指示的待验证链高度与读取到的目标链高度进行比较,得到比较结果;
查询响应模块,用于在比较结果指示待验证链高度小于或等于目标链高度时,生成子链数据查询请求对应的子链查询响应信息,将子链查询响应信息返回给业务终端;子链查询响应信息用于指示业务对象所查询的待验证链高度为目标业务子链上已确认的链高度。
本申请实施例一方面提供了一种多区块链数据处理装置,多区块链包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络;目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;装置运行在目标业务子网络中的验证节点上,装置包括:
信息接收模块,用于接收目标共识节点发送的目标业务子链的目标链高度所对应的高度确认信息;高度确认信息是由目标共识节点通过目标链上部署的用于对目标业务子链进行控制的子链监测控制合约所生成的;目标业务子链的目标链高度是目标共识节点基于获取到的与目标链相关联的监测节点针对目标业务子链的链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约所确定的;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;链高度投票信息的投票类型是在目标共识节点通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份所确定的;
高度写入模块,用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约,基于目标链高度确定执行业务对象所请求的目标业务后的链高度。
其中,高度写入模块包括:
阈值确定单元,用于将高度确认信息所对应的目标链高度写入子链监测合约,获取从目标链上同步来的缓冲高度,将缓冲高度与目标链高度的高度之和作为出块高度阈值;
业务执行单元,用于调用目标业务子链上的子链业务合约执行业务对象所请求的目标业务,得到目标业务执行结果,基于目标业务执行结果生成具有目标区块高度的提议区块,且基于目标区块高度和出块高度阈值确定执行目标业务后的链高度;目标区块高度大于目标链高度且小于或等于出块高度阈值。
其中,装置还包括:
第一锁定模块,用于将目标业务子链上位于目标链高度之后的链高度作为待确认链高度;在待确认链高度达到出块高度阈值,且未获取到目标共识节点针对待确认链高度的更新高度确认信息时,通过子链监测合约将目标业务子链的业务状态设置为锁定状态;处于锁定状态的目标业务子链停止执行交易上链;
子链解锁模块,用于在获取到目标共识节点针对待确认链高度发送的更新高度确认信息时,将更新高度确认信息所对应的待确认链高度写入子链监测合约,且将目标业务子链的业务状态由锁定状态恢复为解锁状态。
其中,链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息;第二类高度投票信息是监测节点在检测到目标业务子链上存在业务风险时所确定的;第二类高度投票信息包含监测节点针对目标业务子链的链高度进行投票时的投票反对高度;第二类高度投票信息处于监测节点基于风险事务所确定的第一风险处理交易中;风险事务是监测节点基于投票反对高度所生成的;装置还包括:
第二锁定模块,用于在接收到目标共识节点发送的子链锁定信息时,基于子链锁定信息停止执行与风险事务相关联的风险业务,且将目标业务子链的业务状态设置为锁定状态;处于锁定状态的目标业务子链停止执行交易上链,且停止执行与多区块链所包含的第一链以及第二链之间的跨链交互;第一链以及第二链均为不同于目标业务子链的区块链;子链锁定信息是由目标共识节点将第一风险处理交易所指示的风险事务写入子链监测控制合约后所得到的;
风险消除模块,用于在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于第二风险处理交易对风险业务进行风险消除处理,向业务管理对象返回风险成功处理信息;风险成功处理信息用于指示业务管理对象在风险业务处理成功时向目标共识节点发送风险解除交易;风险解除交易用于指示目标共识节点通过子链监测控制合约生成用于解除风险事务的风险解除信息;
风险解除模块,用于接收目标共识节点返回的风险解除信息,基于风险解除信息将投票反对高度作为目标业务子链的目标链高度,且将目标业务子链的业务状态由锁定状态恢复为解锁状态。
本申请实施例一方面提供了一种多区块链数据处理装置,多区块链包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络;目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;装置运行在与目标链相关联的监测节点上,装置包括:
投票获取模块,用于获取监测节点针对目标业务子链的链高度进行投票时的链高度投票信息;目标链上部署有用于对目标业务子链进行控制的子链监测控制合约;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;
投票发送模块,用于将链高度投票信息发送至目标共识节点,以使目标共识节点在通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型,且在基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约确定目标业务子链的目标链高度时,通过子链监测控制合约生成目标链高度对应的高度确认信息;高度确认信息用于发送至目标业务子网络中的验证节点;验证节点用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度;
高度获取模块,用于从子链监测合约中获取目标链高度,基于目标链高度对目标业务子链进行监测投票处理。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,多区块链可包含目标链和目标业务子链,其中,目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络,且该目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的。可以理解,目标共识节点可以获取与目标链相关联的监测节点针对目标业务子链的链高度投票信息;该目标链上部署有用于对目标业务子链进行控制的子链监测控制合约,且该子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点。进一步,在通过目标链上的子链监测控制合约确定上述监测节点为目标注册节点时,可以基于目标注册节点的节点注册身份确定链高度投票信息的投票类型,进而可以基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度。随后,目标共识节点可以通过子链监测控制合约生成该目标链高度所对应的高度确认信息,并将该高度确认信息发送至目标业务子网络中的验证节点。可以理解,这里的验证节点可用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;这里的子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度。上述可知,本申请实施例提供了一种多区块链架构中的业务子链监测方案,对于在多区块链架构中创建的任意一个业务子链(如上述目标业务子链),需要对该业务子链进行监测的监测节点可以作为对应的注册节点(如上述目标注册节点)在子链监测控制合约中进行身份注册,且可以灵活定制自身针对该业务子链的监测逻辑,从而可以基于该监测逻辑得到针对该业务子链的链高度投票信息;进而目标共识节点在获取到相应的链高度投票信息时,可以通过子链监测控制合约从该链高度投票信息中计算出本次确认的该业务子链的链高度(如上述目标链高度),并可将已确认的链高度发送至对应的业务子网络(如上述目标业务子网络)中的验证节点,以使验证节点将其写入子链监测合约中来确定后续执行相关子链业务(如上述目标业务)后的链高度,从而起到对该子链业务的监测、控制和管理作用,也就是说,可以通过目标链上的子链监测控制合约以及监测节点所定制的监测逻辑,在多区块链架构中实现对任意业务子链的灵活监测。此外,由于目标链和监测节点均独立于业务子链,因此在对业务子链进行监测的过程中,相关子链业务仍可以在业务子链上有序执行,即本申请实施例提供的业务子链监测方案不影响业务子链的独立运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络的分层结构示意图;
图2是本申请实施例提供的一种基于多区块链的区块链电子票据平台的场景示意图;
图3是本申请实施例提供的一种区块链电子票据场景下的交互示意图;
图4是本申请实施例提供的一种多区块链架构中子链业务监测的场景示意图;
图5是本申请实施例提供的一种多区块链数据处理方法的流程示意图;
图6是本申请实施例提供的一种多区块链数据处理方法的流程示意图;
图7是本申请实施例提供的一种多区块链数据处理方法的流程示意图;
图8是本申请实施例提供的一种多区块链数据处理方法的交互流程示意图;
图9是本申请实施例提供的一种多区块链数据处理装置的结构示意图;
图10是本申请实施例提供的一种多区块链数据处理装置的结构示意图;
图11是本申请实施例提供的一种多区块链数据处理装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图;
图13是本申请实施例提供的一种多区块链数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种区块链网络的分层结构示意图。如图1所示的分层结构可应用于多种业务场景下的区块链系统,例如,该区块链系统可以为区块链电子票据系统,也可以为区块链电子文件系统。在该区块链系统所对应的区块链网络中,可包含部署在公网中的业务网络、和部署在私有云中的多个共识网络。如图1所示,这里的业务网络可以为图1所示的业务网络400a,且这里的多个共识网络具体可以包含图1所示的共识网络100a、共识网络200a和共识网络300a。
在如图1所示的业务网络400a中,可以部署有多个业务节点,这里的多个业务节点具体可以包含图1所示的业务节点110a、业务节点110b、业务节点110c、业务节点110d、业务节点110e、业务节点110f、业务节点110g、…、业务节点110n。其中,需要注意的是,这里将不对部署在该业务网络400a中的业务节点的数量进行限定。应当理解,处于业务网络400a中的业务节点不需要参与记账。此外,如图1所示,对于运行在该业务网络400a中的各个业务节点而言,均可以通过网络通信的形式访问上述多个共识网络中的一个或者多个,这里将不对各业务对象通过相应业务节点访问到的共识网络的数量进行限定。可以理解的是,各个共识网络之间也可以通过网络通信的形式进行数据交互。
应当理解,在如图1所示的共识网络100a中,可以部署有多个共识节点,这里的多个共识节点具体可以包含图1所示的共识节点10a、共识节点10b、共识节点10c和共识节点10d。需要注意的是,这里将不对部署在该共识网络100a中的共识节点的数量进行限定。此外,如图1所示,对于运行在该共识网络100a中的多个共识节点而言,共同维护的区块链具体为图1所示的区块链10e。
同理,在如图1所示的共识网络200a中,可以部署有多个共识节点,这里的多个共识节点具体可以包含图1所示的共识节点11a、共识节点11b、共识节点11c和共识节点11d。需要注意的是,这里将不对部署在该共识网络200a中的共识节点的数量进行限定。此外,如图1所示,对于运行在该共识网络200a中的多个共识节点而言,共同维护的区块链具体为图1所示的区块链11e。
依此类推,在如图1所示的共识网络300a中,可以部署有多个共识节点,这里的多个共识节点具体可以包含图1所示的共识节点12a、共识节点12b、共识节点12c和共识节点12d。需要注意的是,这里将不对部署在该共识网络300a中的共识节点的数量进行限定。此外,如图1所示,对于运行在该共识网络300a中的多个共识节点而言,共同维护的区块链具体为图1所示的区块链12e。
为便于理解,本申请实施例可以将位于上述区块链系统中的业务节点和共识节点统称为区块链节点(可简称为节点),并可以将参与构成上述区块链系统的共识网络100a、共识网络200a、共识网络300a统称为核心共识网络,并可以将上述核心共识网络中的各个节点统称为核心节点。
可以理解的是,本申请实施例可以通过路由网络(图1中未画出)对上述业务网络和核心共识网络进行网络隔离。例如,可以通过路由网络中的路由节点,对点对点(Peer ToPeer,简称P2P)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构,进而能够提高区块链上数据的保密性和安全性。其中,路由网络中的路由节点的节点数量可以为一个或者多个,在此不做限定。
应当理解,本申请实施例所涉及的区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链。
比如,共识网络100a中的每个节点(比如,共识节点10a、共识节点10b、共识节点10c和共识节点10d等核心节点)上所存储的区块链均为区块链10e,这里的区块链10e可以为上述区块链系统中的目标链(例如,具体可以为区块链电子票据系统中的管理链,或者可以为区块链电子文件系统中的管理链),且该目标链所对应的核心共识网络(即共识网络100a)可以为目标链网络(例如,具体可以为管理链对应的管理链网络),该目标链网络中的共识节点(或者核心节点)可以统称为目标共识节点(例如,具体可以为管理链网络中的管理共识节点)。又比如,共识网络200a中的每个节点(比如,共识节点11a、共识节点11b、共识节点11c和共识节点11d等核心节点)上所存储的区块链均为区块链11e,这里的区块链11e可以为上述区块链系统中的第一链(例如,具体可以为区块链电子票据系统中的票据链,或者可以为区块链电子文件系统中的文件链),且该第一链所对应的核心共识网络(即共识网络200a)可以为第一链网络(例如,具体可以为票据链对应的票据链网络,或者可以为文件链对应的文件链网络),该第一链网络中的共识节点(或者核心节点)可以统称为第一共识节点(例如,具体可以为票据链网络中的票据共识节点,或者可以为文件链网络中的文件共识节点)。又比如,共识网络300a中的每个节点(比如,共识节点12a、共识节点12b、共识节点12c和共识节点12d等核心节点)上所存储的区块链均为区块链12e,这里的区块链12e可以为上述区块链系统中的第二链(例如,具体可以为区块链电子票据系统中的应用合约链,或者可以为区块链电子文件系统中的应用合约链),且该第二链所对应的核心共识网络(即共识网络300a)可以为第二链网络(例如,具体可以为应用合约链对应的应用合约链网络),该第二链网络中的共识节点(或者核心节点)可以统称为第二共识节点(例如,具体可以为应用合约链网络中的应用共识节点)。
在上述区块链系统中,核心节点可以负责对应区块链所在的核心共识网络中的共识,也就是说核心节点可以为对应区块链所在核心共识网络中的共识节点。对于上述三个核心共识网络中的任意一个核心共识网络而言,将核心共识网络中的交易数据写入对应区块链账本(例如,分布式数据库)的具体过程可以为,用户客户端发送交易数据至某个业务节点,随后该交易数据以接力棒的方式在上述区块链网络内的业务网络中的业务节点之间传递,直到上述区块链网络内的相应核心共识网络中的共识节点(例如,共识网络200a中的共识节点11b)收到该交易数据,此时,共识节点(例如,共识网络200a中的共识节点11b)再将该交易数据打包进区块,以便于后续可以与其他共识节点之间进行共识,从而可以在共识通过后,将共识通过的区块写入自己所在的核心共识网络(例如,共识网络200a)的分布式数据库。
可选的,可以理解的是,本申请实施例还可以在共识通过后,通过自己所在核心共识网络(例如,共识网络200a)的存储层将携带该交易数据的区块和与该区块关联的其他多个区块并行写入分布式数据库,这样可以从根源上突破区块链的区块链结构的限制,进而可以有效地提升数据存储的存储效率。
其中,可以理解的是,在上述区块链系统中,可以在相应核心共识网络的区块链上部署智能合约,该智能合约在区块链系统中可以理解为是一种由各区块链节点(即各共识节点)执行的代码,通过该智能合约可以执行任意逻辑并得到结果。比如,用户可以通过用户客户端发起一个交易业务请求的方式,调用相应核心共识网络(例如,上述共识网络200a)的区块链(例如,上述区块链11e)上已经部署的智能合约。
具体的,业务网络中的业务节点可以将该交易业务请求发送至相应核心共识网络中的共识节点(例如,图1所示的共识节点11a),以通过相应核心共识网络的链入口对该发送交易业务请求的用户进行身份鉴权,且在身份鉴权成功时允许将该用户所发送的交易业务请求发送至相应核心共识网络中的其他共识节点(例如,图1所示的共识节点11b),以调用这些共识节点(例如,图1所示的共识节点11a和共识节点11b)中运行的智能合约执行该用户所请求的交易业务。可以理解,在区块链电子票据相关的业务场景下,这里的交易业务可以包括票据业务、与票据业务相关联的票据衍生业务;在区块链电子文件相关的业务场景下,这里的交易业务可以包括文件业务、与文件业务相关联的文件衍生业务。
应当理解,在上述核心共识网络(例如,上述共识网络200a)的区块链(例如,上述区块链11e)上可以部署一个或多个智能合约,这些智能合约可以通过合约调用地址、合约标识号(Identity document,ID)或合约名称来进行区分,而用户客户端发起的交易业务请求中,也可以携带智能合约的合约调用地址或者合约标识号或合约名称,以此指定需要运行的智能合约。而在上述区块链系统中,若用户客户端所指定的智能合约为需要跨链读取数据的智能合约(即跨链读取合约),则各个共识节点会通过该跨链读取合约所指定的链标识请求从对应区块链上进行数据的读取,最后各个共识节点会互相验证基于跨链读取到的信息执行交易后所得到的各交易执行结果是否一致(也就是进行共识),若一致则可以将交易执行结果存入各自的本地缓存和本地存储中,并可以将上述交易业务的交易执行结果返回至用户客户端。注意,这里的本地缓存为在存储层中创建的系统内存,这里的本地存储为在存储层中所创建的用于进行数据存储的硬盘空间。这样,当核心共识网络中的某个共识节点出现宕机(即down机)或者系统故障时,并不会因为系统内存中的数据消失而造成无法进行数据读取的现象,即该共识节点还可以通过在该存储层中创建的本地存储来进行数据的读取。
应当理解,在上述区块链系统中,任意一个共识网络(例如,共识网络100a、共识网络200a或者共识网络300a)中的任意两个区块链节点之间可以形成点对点网络,该点对点网络可以采用P2P协议,其中,该P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在分布式系统中,任何设备如服务器、终端等都可以加入而成为区块链节点,其中,每个区块链节点均可以包括硬件层、中间层、操作系统层和应用层。
其中,可以理解的是,本申请实施例可以通过上述目标链网络中的目标共识节点为接入该区块链网络的任意一个角色(例如,任意一个个人用户、任意一个企业、任意一个机构等实体对象)配置一个区块链节点。所以,在如图1所示的业务网络400a中,业务节点110a、业务节点110b、业务节点110c、业务节点110d、…、业务节点110n可以分别与需要接入该区块链网络中的相应角色之间存在一一对应关系。
可以理解的是,在上述共识网络100a被作为上述目标链网络时,位于该目标链网络中的共识节点(例如,上目标共识节点,该目标共识节点可以为图1所示的共识节点10a)可以为通过目标链网络入口而接入该目标链网络中的相应角色(或者相应对象)提供注册业务和授权业务,进而可以在该目标链网络中对需要接入上述区块链网络(例如,上述目标链网络、第一链网络或者第二链网络)中的相应角色(即相应对象)进行身份管理和权限管理。除此之外,位于该目标链网络中的目标共识节点还可以用于对上述区块链系统中的相关元数据信息进行数据管理,比如,在区块链电子票据系统中,其管理链网络中的管理共识节点可以管理更新管理链上的合约模板(应当理解,管理链上的合约模板具体可以包含部署在管理链上的智能合约的管理合约模板和部署在应用合约链上的智能合约的应用合约模板),管理更新记录在管理链上的票据模板,管理更新与该票据模板相关联的计税规则等,控制票据链所对应链入口处的访问流量、控制各链上参与共识的共识节点的数量等。又比如,在区块链电子文件系统中,其管理链网络中的管理共识节点可以管理更新记录在管理链上的文件模板,管理更新与该文件模板相关联的签发规则、验证规则等,控制文件链所对应链入口处的访问流量、控制各链上参与共识的共识节点的数量等。
比如,当开发者和业务参与方需要在应用合约链上部署某个衍生业务(例如票据衍生业务或文件衍生业务)对应的智能合约时,可以在通过应用合约链对应的链入口(即应用合约链入口)接入该应用合约链网络的情况下,进一步从管理链上跨链读取该衍生业务对应的应用合约模板,以在该应用合约链上基于读取到的应用合约模板部署该衍生业务对应的智能合约。这样,当后续业务参与方需要在该应用合约链上执行衍生业务时,则可以利用已经部署好的衍生业务对应的智能合约来执行相应衍生业务。
应当理解,在上述共识网络200a被作为上述区块链电子票据系统中的票据链网络时,位于票据链网络中的共识节点(例如,上述票据共识节点,该票据共识节点可以为图1所示的共识节点11b)可以用于提供票据业务,这里的票据业务可以包含但不限于电子票据开具业务、电子票据流转业务、电子票据红冲业务、电子票据归档业务等与电子票据相关的业务。可选的,在上述共识网络200a被作为上述区块链电子文件系统中的文件链网络时,位于文件链网络中的共识节点(例如,上述文件共识节点,该文件共识节点可以为图1所示的共识节点11b)可以用于提供文件业务,这里的文件业务可以包含但不限于电子文件开具业务、电子文件流转业务、电子文件修正业务、电子文件归档业务等与电子文件相关的业务,其中,该电子文件可以包括但不限于电子合同、电子公文、电子处方、电子证书等各类形式的电子文件。
此外,还可以理解的是,在上述共识网络300a被作为上述区块链电子票据系统中的应用合约链网络时,位于该应用合约链网络中的共识节点(例如,上述应用共识节点,该应用共识节点可以为图1所示的共识节点12b)可以用于提供与前述票据业务相关联的票据衍生业务(例如,信贷业务、进出亏业务、企业资质业务、征信业务、社交业务、赊购业务和退税业务、抽奖业务等)。可选的,在上述共识网络300a被作为上述区块链电子文件系统中的应用合约链网络时,位于该应用合约链网络中的共识节点(例如,上述应用共识节点,该应用共识节点可以为图1所示的共识节点12b)可以用于提供与前述文件业务相关联的文件衍生业务(例如,机构合作业务、企业资质业务、处方统计业务、资格审查业务、政务管理业务等)。
其中,可以理解的是,由于每个实体对象均可以对应一个区块链节点,所以,本申请实施例可以以实体对象为上述企业用户(即前述企业)为例,此时,与每个企业用户相关联的区块链节点可以为同一区块链节点(例如,上述图1所示的业务节点110c可以与多个企业用户所对应的用户终端进行数据交互)。比如,在上述区块链电子票据系统中,可以将每个企业用户所请求的票据业务(比如,电子票据开具业务、电子票据流转业务、电子票据红冲业务、电子票据归档业务等与电子票据相关的业务)统称为一笔交易业务。其中,在上述企业用户为请求通过票据链网络(例如,上述共识网络200a)进行开票的开票企业A时,可以通过图1所示的业务节点110c与上述共识网络200a中的共识节点(例如,共识节点11b)进行数据交互,以请求完成相应的交易;同理,开票企业B也可以通过图1所示的业务节点110c与上述共识网络200a中的共识节点(例如,共识节点11b)进行数据交互,以请求完成相应的交易;依此类推,开票企业C也可以通过图1所示的业务节点110c与上述共识网络200a中的共识节点(例如,共识节点11b)进行数据交互,以请求完成相应的交易。
为便于理解,本申请实施例可以以交易业务为票据业务(比如,电子票据开具业务)为例,当与某个实体对象(例如,开票企业A)相关联的业务节点接收到与交易业务相关联的交易业务请求时,可以将该实体对象所发起的交易业务请求转发给票据链网络(例如,上述共识网络200a)中的某个票据共识节点,以通过该票据共识节点对该实体对象所发起的交易业务请求进行合法性验证。这样,该票据共识节点可以在合法性验证通过时,将该实体对象所请求的交易业务(比如,上述票据业务)添加至交易池,以便于后续可以将与该交易业务(比如,上述票据业务)相关联的交易数据打包成区块,以在共识网络200a中的共识节点之间进行区块共识,从而可以在区块共识通过后,将该区块的块数据写入至本地缓存和本地存储,以便于后续可以基于上述分布式存储实现多个区块的块数据的并行存储。
可以理解的是,在一些特殊的业务场景下,上述描述的基于三链架构的区块链网络也不能完全满足业务形态需要,例如,对于一些会产生大量临时数据、不重要数据的局部业务,或者,一些用于处理某种特定数据的专用型业务或特殊业务,如果都集中在同一区块链(例如应用合约链)上运行则会对该区块链造成很大的负担,基于此,本申请实施例可支持用户在区块链多链架构中创建一个或多个业务子网络,这里对业务子网络的数量不做限定。以多链架构为上述三链架构为例,通过相关的子网协议可以在核心共识网络中搭建独立于目标链、第一链和第二链的业务子链。如图1所示,这里的业务子网络可以为图1所示的业务子网络500a,需要注意的是,该业务子网络500a可以为在已有的三个共识网络(即上述共识网络100a、共识网络200a和共识网络300a)不能完全满足业务需求的情况下,基于专用型业务或特殊业务等的需要所即时构建出来的网络,业务执行完成后也可以进行数据提取和销毁。
与上述共识网络类似,在如图1所示的业务子网络500a中,可以部署有多个共识节点,这里将不对部署在该业务子网络500a中的共识节点的数量进行限定。其中,该业务子网络500a可以通过复用已有共识网络(例如,上述共识网络200a和共识网络300a)中的多个共识节点进行快速节点搭建,例如,如图1所示,这里的多个共识节点具体可以包含上述共识网络200a中的共识节点11a、共识节点11b以及上述共识网络300a中的共识节点12c和共识节点12d。此外,如图1所示,对于运行在该业务子网络500a中的多个共识节点而言,共同维护的区块链具体为图1所示的区块链13e,需要说明的是,该区块链13e是不同于上述区块链10e、区块链11e和区块链12e的区块链。
其中,业务子网络500a中的每个节点(比如,共识节点11a、共识节点11b、共识节点12c和共识节点12d等核心节点)上所存储的区块链均为区块链13e,这里的区块链13e可以为上述区块链系统中的业务子链(例如,具体可以为区块链电子票据系统中的业务子链,或者可以为区块链电子文件系统中的业务子链),且该业务子链所对应的业务子网络(即业务子网络500a)可以为在获得上述目标链授权时所创建的业务子网络,该业务子网络中的共识节点(或者核心节点)可以统称为验证节点,且这里的验证节点可来源于上述第一链网络中的第一共识节点(如票据链网络中的票据共识节点)以及上述第二链网络中的第二共识节点(如应用合约链网络中的应用共识节点)。为便于区分,本申请实施例可以将从第一链网络中所获取到的共识节点统称为第一验证节点,类似的,可以将从第二链网络中所获取到的共识节点统称为第二验证节点。
可以理解,在上述区块链系统中,验证节点可以负责对应业务子链所在的业务子网络中的共识,也就是说验证节点可以为对应业务子链所在业务子网络中的共识节点,业务子网络可以理解为在区块链系统中由某个实体对象申请创建的核心共识网络,因此,与业务子网络相关的内容均可以参见上述对核心共识网络的相关阐述。例如,对于业务子网络而言,将业务子网络中的交易数据写入对应区块链账本(例如,分布式数据库)的具体过程可以参见上述描述的将核心共识网络中的交易数据写入对应区块链账本的具体过程,这里不再进行赘述。
类似的,本申请实施例也可以在上述业务子网络(例如,上述业务子网络500a)的业务子链(例如,上述区块链13e)上部署一个或多个智能合约,以便该业务子网络中的验证节点在获取到某个实体对象发送的交易业务请求时,可以调用部署的智能合约执行该实体对象所请求的交易业务。为便于理解和说明,本申请实施例可以将业务子网络中的验证节点所执行的交易业务(也可称为临时业务)统称为子链业务,该子链业务可以为会产生大量临时数据、不重要数据的局部业务,也可以为专门处理某类交易的专用型业务或者其他特殊业务;例如,在区块链电子票据相关的业务场景下,这里的子链业务可以为与前述票据业务或票据衍生业务相关联的临时业务(也可称为票据临时业务);在区块链电子文件相关的业务场景下,这里的子链业务可以为与前述文件业务或文件衍生相关联的临时业务(也可称为文件临时业务)。此外,本申请实施例可以将申请创建业务子网络来执行某个子链业务的实体对象(例如,个人用户、企业用户、机构等)统称为业务对象。
可以理解的是,位于上述目标链网络中的共识节点(例如,上目标共识节点,该目标共识节点可以为图1所示的共识节点10a)可以在该目标链网络中对需要接入业务子网络中的相应角色(即相应对象)进行身份管理和权限管理。此外,位于该目标链网络中的目标共识节点还可以用于对与业务子网络相关联的元数据信息进行数据管理,比如,在区块链电子票据系统中,其管理链网络中的管理共识节点可以管理更新管理链上的与业务子链相关联的合约模板(例如,部署在业务子链上的智能合约的子链合约模板)。
比如,当开发者和业务参与方需要在业务子链上部署某个子链业务(例如票据临时业务或文件临时业务)对应的智能合约时,可以在获得管理链授权接入业务子网络的情况下,进一步从管理链上跨链读取该子链业务对应的子链合约模板,以在该业务子链上基于读取到的子链合约模板部署该子链业务对应的智能合约。这样,当后续业务参与方需要在该业务子链上执行子链业务时,则可以利用已经部署好的子链业务对应的智能合约来执行相应子链业务。
此外,还可以理解的是,在上述业务子网络500a被作为上述区块链电子票据系统中的业务子网络时,位于该业务子网络中的验证节点(例如,该验证节点可以为图1所示的共识节点11a)可以用于提供与前述票据业务或票据衍生业务相关联的临时业务(例如,票据统计业务、税务审计业务、信贷审查业务、进出亏分析业务、企业资质比对业务、征信分析业务、社交业务、赊购分析业务和退税审查业务、中奖核对业务等)。可选的,在上述业务子网络500a被作为上述区块链电子文件系统中业务子网络时,位于该业务子网络中的验证节点(例如,该验证节点可以为图1所示的共识节点11a)可以用于提供与前述文件业务或文件衍生相关联的临时业务(例如,合作风险预测业务、企业资质审查业务、基于处方统计结果的药品采购业务、资格认证激励业务、文件敏感信息检测业务等)。此外,在验证节点执行相关临时业务后,可以将得到的临时业务执行结果写入业务子链。
为便于理解,进一步的,请参见图2,图2是本申请实施例提供的一种基于多区块链的区块链电子票据平台的场景示意图。该区块链电子票据平台可以为上述区块链电子票据系统中的具体业务平台,应当理解,在该区块链电子票据平台中,为降低在链上数据存储的混杂度,提出了一种基于区块链电子票据的多链体系,且该多链体系主要涉及图2所示的区块链电子票据三链网络。如图2所示,该区块链电子票据三链网络中部署有管理链(即上述目标链)、票据链(即上述第一链)和应用合约链(即上述第二链)。其中,可以理解的是,在以区块链作为区块链电子票据核心数据流转的业务场景中,可以通过管理链、票据链和应用合约链之间的相互协作,为整个区块链电子票据平台提供独立执行不同业务的功能特性,从而可以在三链相互协作的前提下,构造一个安全且高效的业务流系统。应当理解,这里以多链系统为三链体系为例,在该三链系统下,管理链、票据链和应用合约链均是独立搭建的,即用于维护该管理链的共识节点不同于用于维护该票据链的共识节点,且不同于用于维护该应用合约链的共识节点。
如图2所示,部署在区块链电子票据三链网络中的管理链独立于票据链和应用合约链,即这三条独立搭建的区块链之间是彼此相互独立的,但是这三条独立搭建的区块链之间可以通过跨链的方式进行数据交互,即这三链之间可以进行跨链交互。比如,参与维护如图2所示的应用合约链的共识节点(即上述第二共识节点)可以跨链读取票据链上的核心数据(比如,票据链上的电子票据中的票据信息)来执行相应的票据衍生业务(比如,可以通过从票据链上所读取到的票据信息来执行上述征信业务,以得到某个企业的企业征信信息)。
比如,这里的管理链可以用于为整个区块链电子票据平台提供管理功能特性,这里的票据链可以为整个区块链电子票据平台提供不同业务权限类型的票据业务的功能特性。应当理解,在本申请实施例中,为确保写入票据链中的电子票据的安全性和独立性,本申请实施例提出可以通过独立于管理链和票据链的另一区块链(即图2所示的应用合约链)来提供更加规范、灵活和功能完备的票据衍生业务,即这里的应用合约链则可以为整个区块链电子票据平台提供基于电子票据中核心数据来开展票据衍生业务的功能特性。
为便于理解,这里以管理链所在的核心共识网络(即上述管理链网络)为上述图1所示的共识网络100a为例,此时,参与维护该管理链的共识节点可以为上述管理共识节点。如图2所示,该管理链上部署有多个智能合约,这些智能合约可以运行在管理共识节点上。可以理解的是,这里的多个智能合约具体可以包含图2所示的对象权限管理合约、对象身份管理合约、元数据管理合约和内部管理合约。应当理解,该管理链上所部署的这些智能合约是由图2所示的内部参与方(即税务管理部门)分别通过自己链(即管理链)上部署的相应管理合约模板所确定的。
可以理解的是,前述税务管理部门可以通过该部署在管理链网络中的管理共识节点行使管理职责。比如,这里的管理职责具体可以包含对政务部门内部的信息(比如,税务管理部门内部人员的信息)进行管理、对整体业务的业务逻辑规则(例如,应用合约链上所运行的用于执行衍生业务的业务逻辑的衍生业务合约)进行管理、对整体业务的元数据信息(例如,三链体系下的各链入口处的访问流量)进行管理、对整体业务的参与者(比如,个人用户、企业用户、税务业务参与方等实体对象)进行身份管理和权限管理等。应当理解,在整体业务所对应的区块链网络中,由该管理共识节点所维护的管理链是相对更稳定、数据规模最小、但安全性最高的区块链。
此外,为便于理解,这里以图2所示的票据链所在的核心共识网络(即上述票据链网络)为上述图1所示的共识网络200a为例,此时,参与维护该票据链的共识节点可以为上述第一共识节点(这里也可称为票据共识节点)。如图2所示,该票据链上部署有多个智能合约,这些智能合约可以运行在第一共识节点上。具体的,可以理解的是,这里的多个智能合约具体可以包含图2所示的电子票据开具合约、电子票据流转合约、电子票据红冲合约、电子票据归档合约。同理,应当理解,该票据链上所部署的这些智能合约是由图2所示的内部参与方(例如,与电子票据数据中心相关联的税务部门)通过管理链上部署的相应票据业务合约模板所确定的。
可以理解的是,该部署在票据链网络中的第一共识节点可以通过票据链维护电子票据在全生命周期内的业务逻辑,比如,可以通过该票据链管理所有开具的电子票据的全生命周期。比如,这里的电子票据的全生命周期包含电子票据的开具、电子票据的流转和电子票据的报销等。应当理解,在整体业务所对应的区块链网络中,由该第一共识节点所维护的票据链具有高性能、低延迟的特点。
同理,为便于理解,这里以应用合约链所在的核心共识网络(即上述应用合约链网络)为上述图1所示的共识网络300a为例,此时,参与维护该应用合约链的共识节点可以为上述第二共识节点(这里也可称为应用共识节点)。如图2所示,该应用合约链上部署有多个智能合约,这些智能合约具体可以运行在第二共识节点上。具体的,可以理解的是,这里的多个智能合约具体可以包含图2所示的虚拟机兼容合约、开放合约部署合约、衍生业务合约。
可以理解的是,该部署在应用合约链网络中的第二共识节点可以通过应用合约链承载可变化的票据业务所对应的票据衍生业务,比如,这里的票据衍生业务可以具体可以包含上述征信业务、上述资质识别业务等。应当理解,在整体业务所对应的区块链网络中,由该第二共识节点所维护的应用合约链,可以支持图2所示的政务协作部门和联盟链伙伴(即图2所示的业务关联部门)可以利用跨链读取到的管理上的应用合约模板来开发与票据衍生业务相关的智能合约(例如,图2所示的衍生业务合约),并可以经过税务管理部门审核后将该衍生业务合约部署在应用合约链上。应当理解,部署在应用合约链上的智能合约可以通过虚拟机兼容合约实现智能合约的灵活升级和变化,应当理解,在整体业务所对应的区块链网络中,该第二共识节点可以进行跨链交互,比如,可以从票据链上读取上述核心数据来执行衍生业务。这意味着由该第一共识节点所维护的应用合约链,相较于管理链和票据链而言,具有最高的开放度,且支持复杂的智能合约逻辑,参与方较多且不断动态变化,性能相对低于票据链。
其中,可以理解的是,在图2所示的区块链电子票据三链网络中,管理链所采用的共识算法,不同于票据链所采用的共识算法,也不同于应用合约链所采用的共识算法。
具体的,1.1)与管理链相关联的共识算法为一种即时确定性共识算法,比如,这里的即时确定性共识算法可以为PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识算法,通过该PBFT共识算法可以立即确定某个待上链的提议区块的状态。应当理解,该管理链为上述管理链网络中的区块链,在该管理链网络中的共识节点(即上述管理共识节点)可以由图2所示的税务管理部门参与进行管理。
应当理解,与该管理链相关联的内部参与方可以为图2所示的税务管理部门,比如,该税务管理部门在作为内部参与方参接入该管理链时,可以通过管理链上的内部管理合约对该税务管理部门的一些内部状态进行管理,比如,可以对该税务管理部门中的各人员进行管理,比如,可以在税务管理部门的这些人员中配置特定的税务管理人员、税务开发人员、税务审计人员等。此外,该税务管理部门在作为内部参与方参接入该管理链时,还可以通过管理链上的内部管理合约对该三链体系中的一些参数进行管理,比如,通过该内部管理合约可以对图2所示的票据链入口处的访问流量所对应的访问流量参数进行限制,例如,可以通过分时访问机制控制票据链入口处的某些特定时间段内的访问流量不大于访问流量阈值。又比如,该税务管理部门在作为内部参与方参接入该管理链时,还可以通过管理链上的内部管理合约对参与共识的各链上的共识节点的数量所对应的节点数量参数进行限定。
1.2)与票据链相关联的共识算法为另一种即时确定性共识算法,比如,这里的即时确定性共识算法可以为TBFT(Tower Byzantine Fault Tolerance,塔式拜占庭容错)共识算法,该TBFT共识算法是一种拜占庭容错算法,可以在拜占庭节点数(即票据链网络中的作恶节点数)小于票据链网络的节点总数1/3的情况下,保证整个票据链网络系统的安全运行。应当理解,处于票据链网络中的共识节点可以由前述税务管理部门参与进行管理,比如,税务管理部门中的特定税务人员可以通过上述管理链中的内部管理合约控制该票据链网络中的共识节点的数量。又比如,税务管理部门中的特定税务人员所对应的税局终端可以参与构成该票据链网络。
应当理解,上述TBFT共识算法与PBFT共识算法的最大区别在于:PBFT共识算法有一个固定的leader节点(即主节点)用于打包交易池中的交易,当leader节点故障的时候会使用view-change子协议(即一种主节点切换子协议)更换leader节点;而在TBFT共识算法中,leader节点是基于轮换机制而轮换的,比如,在当前节点被作为leader节点时,每提交X个区块(X的值可以配置),则会自动将该leader节点轮换成下一个节点。这意味着在该票据链对应的票据链网络中的共识节点可以用于连续出块。
1.3)与应用合约链相关联的共识算法为又一种即时确定性共识算法,比如,这里的即时确定性共识算法可以为PoS(proof-of-stake,权益证明)共识算法,通过该权益证明共识算法可以维护该应用合约链所在应用合约链网络的网络安全性,且通过该权益证明共识算法可以立即确定某个待上链的提议区块的状态。可以理解的是,在该应用合约链网络中的共识节点可以由图2所示的税务管理部门和政务协作部门以及大型参与机构(即前述联盟链中的大型企业,该大型企业即为前述图2所示的业务关联部门)等共同参与进行管理。比如,税务管理部门中的税务人员(比如,图2所示的税务业务参与方)可以通过应用合约链网络中的共识节点跨链读取前述票据链上所写入的电子票据的票据信息,以通过跨链读取到的票据信息执行与前述票据业务相关联的票据衍生业务。比如,可以通过跨链读取到的票据信息对请求开票的开票企业进行资质识别或者征信识别,以得到该开票企业的资质数据或者征信数据。应当理解,如图2所示,这里的税务业务参与方在通过图2所示的应用合约链入口接入应用合约链网络时,可以从图2所示的票据链上读取基于票据衍生业务所请求的电子票据中的核心数据,以利用读取到的核心数据在该应用合约链上开展相应的票据衍生业务。
应当理解,在本申请实施例中,无需将票据链上所产生的大量的电子票据直接跨链转移至应用合约链,而是将票据链上所产生的这些电子票据中的部分授权可见的票据信息(即前述核心数据)跨链转移至应用合约链,这样可以从根源上确保票据链上所记录的这些电子票据的隐私性和安全性。
由此可见,对于请求接入上述应用合约链中的税务业务参与方而言,可以根据所请求的票据衍生业务的不同,从票据链上跨链读取到不同的核心数据(即可以从上述电子票据中获取到不同数据内容的票据信息)。
应当理解,针对该区块链电子票据三链网络中的智能合约而言,存在以下区别:
2.1)应当理解,如图2所示的管理链上可支持特定语言智能合约引擎,上述管理共识节点通过该特定语言智能合约引擎可以在管理链上部署特定语言智能合约,比如,可以在管理链上部署上述图2所示的对象权限管理合约、对象身份管理合约、元数据管理合约和内部管理合约等。应当理解,这些智能合约可以由税务管理部门中的特定税务管理人员开发和管理。
2.2)如图2所示的票据链上内置有特定票据业务逻辑的智能合约,这些智能合约(例如,上述图2所示的电子票据开具合约、电子票据流转合约、电子票据红冲合约、电子票据归档合约)可以随着票据业务的更新而进行升级。比如,本申请实施例可以通过从管理链上所读取到的元数据信息更新电子票据开具合约中的票据业务逻辑,进而可以根据更新后的电子票据开具合约来更新处理上述票据业务。这意味着该票据链不支持独立的智能合约引擎,自然也就不支持在该票据链上部署与票据业务无关的其他合约。这样做的好处是让该票据链仅运行与电子票据相关的业务逻辑,且不受其他智能合约的影响,从而可以使该票据链的运行更加独立稳定,更抗攻击。
2.3)该应用合约链上支持多语言、图灵完备面向开发者的智能合约,比如,如图2所示,开发者在通过应用合约链入口接入该应用合约链时,可以通过虚拟机兼容合约兼容主流的EVM虚拟机,以便于可以在兼容的虚拟机上部署运行各种新的业务合约,比如,可以在应用合约链上部署与票据衍生业务(例如,上述抽奖业务)相关联的衍生业务合约。又比如,可以在应用合约链上部署与另一票据衍生业务(例如,上述退税业务)相关联的衍生应用合约。
应当理解,如图2所示,在区块链电子票据三链网络中,与管理链相关联的公开网络参与方可以为图2所示的个人用户和企业用户。同理,如图2所示,与票据链相关联的公开网络参与方可以为图2所示的各地电子票据数据流系统。这里的各地电子票据数据流系统具体包含各地方电子票据业务开具系统(例如,各地方税局系统),电子票据开票服务商,大型企业财税相关系统等。同理,如图2所示,与应用合约链相关联的公开网络参与方可以为图2所示的税务业务参与方和开发者。
具体的,3.1)与管理链相关联的链入口可以为图2所示的管理链入口。当图2所示的个人用户(例如,用户A)和企业用户(例如,企业B)等作为公开网络参与方时,可以通过该管理链入口接入管理链,进而可以通过该管理链进行身份注册和身份授权等业务。3.2)与票据链相关联的链入口可以为图2所示的票据链入口。当图2所示的各地方电子票据数据流系统(例如,大型企业用户)等作为公开网络参与方时,可以通过该票据链入口接入票据链,进而可以通过该票据链执行电子票据开具业务、电子票据流转业务、电子票据红冲业务和电子票据归档业务。3.3)与应用合约链相关联的链入口可以为图2所示的应用合约链入口。当图2所示的税务业务参与方和开发者等作为公开网络参与方时,可以通过该应用合约链入口接入应用合约链,进而可以通过在应用合约链上部署衍生业务合约,以通过部署的衍生业务合约执行与电子票据相关的票据衍生业务。应当理解,图2所示的开发者还可以在接入应用合约链的情况下,在该应用合约链上部署其他票据衍生业务(或者探索业务)所对应的衍生业务合约,这里将不对部署在应用合约链上的衍生业务合约的合约数量进行限定。
其中,可以理解的是,图2所示的管理链入口具体可以为税务管理部门入口,通过该税务管理部门入口可以对需要接入管理链的个人、法人以及实体等进行身份识别和业务引导。
其中,可以理解的是,图2所示的票据链入口具体可以为电子票据业务入口,通过该电子票据业务入口可以接收某个实体对象(例如,第一实体对象,该第一实体对象可以为上述企业B)所请求开具的电子票据的交易业务数据(也可以称之为交易数据)。这样,在上述第一共识节点通过该电子票据业务入口接收到前述企业B提交的交易业务数据时,还可以通过该电子票据业务入口校验该交易业务数据的数据发送方(即作为第一实体对象的企业B)的接入身份和接入权限是否满足管理链中身份权限合约状态要求,进而可以在校验通过时,确定作为第一实体对象的企业B为授权对象,进而可以从管理链上跨链读取前述第一业务关联信息确定该作为授权对象的企业B的业务权限。应当理解,通过第一业务关联信息可以进一步判断作为授权对象的企业B的业务权限是否满足管理链中对象权限管理合约的状态要求。
比如,上述第一共识节点通过该电子票据业务入口可以判断数据发送方(即企业B)的接入身份和接入权限是否满足管理链中的对象身份管理合约和内部管理合约的合约状态要求,进而可以在确定满足管理链中的对象身份管理合约和内部管理合约的合约状态要求时,确定完成对需要接入该票据链的数据发送方(即前述企业B)的身份鉴权。由此可见,上述图2所示的票据链入口处存储有从管理链同步来的各个授权对象的注册数据信息,这里的注册数据信息可以包含但不限于对象接入身份注册信息和对象接入权限注册信息。比如,这里的对象接入身份信息可以用于识别当前请求接入该票据链的第一实体对象(即前述企业B)是否为授权对象。这里的对象接入权限注册信息包含由管理共识节点通过内部管理合约为该票据链的电子票据业务入口所配置的请求累计阈值(例如,最大并发请求累积量)。上述第一业务关联信息则可以用于表征作为授权对象的该第一实体对象(即前述企业B)具体具备访问票据链上的哪些票据业务合约的权限。
其中,可以理解的是,图2所示的应用合约链入口具体可以为税务衍生业务入口,通过该税务衍生业务入口可以接收某个实体对象(例如,第二实体对象,该第二实体对象可以为图2所示的税务业务参与方)所请求参与的与票据业务相关联的票据衍生业务。应当理解,在图2所示的税务业务参与方和开发者可以在获得税务管理部门发放的授权对象的业务参与许可凭证后,可以通过该应用合约链入口对第二实体对象(例如,税务业务参与方或者开发者)提交的业务参与许可凭证进行验证,进而可以在验证成功时允许该第二实体对象接入该应用合约链,以在该应用合约链上执行与前述票据业务相关联的票据衍生业务。
其中,如图2所示,参与维护管理链的内部参与方可以为图2所示的税务管理部门,这里的税务管理部门主要用于在管理链上进行内部状态参数的配置与管理,还可以用于对上述元数据信息(例如,税务元数据)进行变更上链(如可以更新电子票据模板,更新计税规则等),以及可以对于该管理链上所维护的各类业务参与方的身份和权限进行管理(如冻结企业开票资质,限制企业开票额度等)。
其中,如图2所示,参与维护票据链的内部参与方可以为图2所示的电子票据数据中心,这里的电子票据数据中心具体可以为电子发票数据中心,该电子票据数据中心(比如,电子发票数据中心)可以用于对票据链上所记录的海量的账本数据(例如,基于上述实时票据业务流所产生的电子票据流等)进行链下备份、统计、数据分析和审查等工作。具体的,通过该电子票据数据中心可以统计分时开票数量,进而可以基于统计到的分时开票数量对风险票据(例如,风险发票)、风险企业进行判定,还可以对相关金融经济数据进行数据分析等。
其中,如图2所示,参与维护应用合约链的内部参与方可以为图2所示的政务协作部门和业务关联部门。应当理解,参与维护应用合约链的内部参与方除了税务管理部门之外,系统联盟链中的其他部门(即前述政务协作部门)和参与方(即前述业务关联部门)均可以在接入该应用合约链的情况下,进一步通过该应用合约链上的衍生业务合约执行相应的票据衍生业务。可以理解的是,图2所示的政务协作部门和业务关联部门等作为税务业务参与方,接入应用合约链的好处是可以在支持完备的智能合约声明周期中灵活运行各类可扩展的票据衍生业务,以确保业务变化的灵活性,同时不需要直接接触上述票据链上的电子票据的核心数据,从而保证了票据链上的数据隐私和核心数据安全。这意味着本申请实施例所涉及的第二共识节点可以对票据链上针对当前票据衍生业务所部分授权可见的票据链数据进行读取,比如,可以从票据链上跨链读取与当前票据衍生业务相关的核心数据(这里的核心数据可以为上述电子票据流所涉及的各电子票据中的票据信息,对于电子票据为电子发票而言,这里的票据数据具体可以为部分授权可见的发票数据),以通过读取到的核心数据来确保上述第二实体对象所请求的票据衍生业务,可以在该应用合约链上进行有效的开展。
其中,可以理解的是,在图2所示的区块链电子票据三链网络中,均可以内置相应的智能合约。
其中,4.1)对于管理链上内置的智能合约而言,如图2所示,内置在管理链上的对象身份管理合约具体可以为用户管理合约,通过该用户管理合约可以管理整个三链体系下的接入者(比如,公开网络参与方)和参与者(比如,内部参与方)的身份。应当理解,这里的接入者和参与者具体可以包含税务管理人员(简称管理员)、政务协作部门、地方税局、开票服务商、报销服务商、税务审查部门等。此外,内置在管理链上的对象权限管理合约具体可以为企业身份管理合约,通过该企业身份管理合约可以对某些企业的业务权限和税务状态等进行管理。同理,内置在管理链上的元数据管理合约具体可以为税务元数据管理合约,通过该税务元数据管理合约可以对税务规则等元数据信息进行管理,如可以集中管理三链体系下的合约模块,计税逻辑,最新政策规则等。以此类推,内置在管理链上的内部管理合约则可以用于对税务管理部门的一些内部状态进行管理,并可以对三链体系下的各链上的一些内部参数进行管理,如,可以通过该内部管理合约对上述票据链入口(比如,电子发票业务入口)处的访问流量参数进行限制,以及对三链体系下的共识节点数量参数进行限制等。
其中,4.2)对于票据链上内置的智能合约而言,如图2所示,内置在票据链上的智能合约可以包含与电子票据生命周期相关联的票据业务合约。这里的票据业务合约具体可以包含图2所示的用于提供电子票据开票业务的电子票据开具合约,用于提供电子票据流转业务的电子票据流转合约、用于提供电子票据红冲业务的电子票据红冲合约以及用于提供电子票据归档业务的电子票据归档合约。
其中,4.3)对于应用合约链上内置的智能合约而言,如图2所示,内置在票据链上的智能合约可以包含由税务衍生业务参与方(即衍生业务对象,例如,图2所示的税务业务参与方)参与部署的各类合约(例如,图2所示的虚拟机兼容合约、税务应用合约和衍生业务合约等)。比如,这里的衍生业务合约具体可以为基于电子票据的征信业务合约,通过该征信业务合约可以分析得到某个企业的征信数据。又比如,这里的衍生业务合约具体还可以是为鼓励开票所部署的链上抽奖业务合约和人才激励合约以及退税业务合约等。
应当理解,对于上述图2所示的管理链而言,主要用于处理数据量较小、状态较恒定的管理性业务流,整个管理链的开放性相对较低,可以用于对一些税务数据进行内部管理。而对于上述图2所示的票据链而言,可以用于处理一些数据量长期处于高频请求状态的实时票据业务流,该整个票据链的开放性相对较高,可以允许与电子票据本身生命周期中的相关权威机构参与相应的票据业务,比如,可以允许与代理服务商对应的共识节点为当前请求开票的某个用户开具电子票据。此外,对于图2所示的应用合约链而言,数据量的大小可以无需限定、业务变化的频率波动相对较大,主要是可以通过该应用合约链处理各类合作业务、票据衍生业务、探索性业务等。应当理解,该应用合约链具有最高的开放性,可以运行由管理链授权的参与者在该应用合约链上部署智能合约、运行探索性的票据衍生业务等。应当理解,在本申请实施例中,考虑到应用合约链具有较高的开放性和业务变更的灵活性,所以,内置在应用合约链上智能合约在执行时可以有更多的合约安全限制。比如,可以对合约执行步数进行限制(例如,对于上述图2所示的衍生业务合约而言,可以限定当前实体对象(即上述第二实体对象)具体能够访问衍生业务合约中哪些合约方法),并可以对访问该衍生业务合约所需要消耗的存储资源数据等进行限制(即应用合约上的智能合约的调用需要消耗一定数量的存储资源数据)。
其中,可以理解的是,本申请实施例所涉及的三链体系下的共识节点可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
需要说明的是,本申请实施例中的共识节点在跨链获取实体对象(例如,上述个人用户或者企业用户)的注册数据信息、业务参与许可凭证、电子票据中的票据信息,或者电子处方中的处方信息、电子证书中的证书信息等数据时,可以显示提示界面或者弹窗,该提示界面或者弹窗用于提示实体对象当前正在搜集注册数据信息、业务参与许可凭证、电子票据中的票据信息等数据,仅仅在获取到实体对象对该提示界面或者弹窗发出确认操作后,开始执行数据获取的相关的步骤,否则结束。
此外,可以理解的是,在本申请的具体实施方式中,可能涉及到用户、企业、机构等实体对象的业务数据(例如,用户的开票信息、征信信息、退税信息等,企业的进出亏、企业资质等信息,用户或企业的合同信息、证书信息、处方信息等),当本申请以上实施例运用到具体产品或技术中时,需要获得用户、企业、机构等实体对象的许可或同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
需要说明的是,本申请提供的方法还可以应用于基于多区块链的区块链电子文件平台,该区块链电子文件平台可以为上述区块链电子文件系统中的具体业务平台,应当理解,在该区块链电子文件平台中,为降低在链上数据存储的混杂度,同样可以提出一种基于区块链电子文件的多链体系,且该多链体系主要涉及区块链电子文件三链网络,该区块链电子文件三链网络的具体结构可以参考图2所示的区块链电子票据三链网络,例如,该区块链电子文件三链网络中同样可以部署有管理链(即上述目标链)、文件链(即上述第一链)和应用合约链(即上述第二链)。在以区块链作为区块链电子文件核心数据流转的业务场景中,可以通过管理链、文件链和应用合约链之间的相互协作,为整个区块链电子文件平台提供独立执行不同业务的功能特性,其具体的功能特性可以参见上述对区块链电子票据三链网络的阐述,这里不再进行赘述。
比如,参与维护该应用合约链的共识节点(即上述第二共识节点)可以跨链读取管理链上的业务关联信息(例如,业务关联信息A)来进行业务权限的确认,还可以跨链读取文件链上的核心数据(比如,文件链上的电子处方中的处方信息)来执行相应的文件衍生业务(比如,可以通过从文件链上所读取到的处方信息来执行上述处方统计业务,以得到某个医院的用药信息)。
为便于理解,进一步的,请参见图3,图3是本申请实施例提供的一种区块链电子票据场景下的交互示意图。该交互过程可以发生在上述图2所示的区块链电子票据平台中,应当理解,在该区块链电子票据平台中,为满足业务形态需要,提出了一种在区块链多链架构中创建业务子网络以及与业务子网络进行交互的子网协议,且该子网协议指示了业务子链的创建和运行方法。如图3所示,在区块链电子票据场景下,可以通过管理链(即上述目标链)授权,通过复用票据链(即上述第一链)和应用合约链(即上述第二链)的验证者(即共识节点)进行快速节点搭建,还可以提供业务子链与票据链和应用合约链的资产状态跨链能力。下面将对创建和运行业务子链(例如,子网X对应的业务子链)的主要参与方和它们各自对应的功能进行说明。可以理解,在区块链电子文件场景下的各参与方的交互过程与此类似,因此不再进行赘述。
具体的,(1)管理链:该链上部署有子网管理合约,业务对象在启动一个新的业务子网络之前,需要从税务管理部门获得授权后,才可以向管理链申请创建业务子网络(例如,网络标识为subnetX的业务子网络,可简称子网X),且可以将相关创世区块信息写入子网X对应的业务子链中。
其中,本申请实施例可以将业务对象对应的用户终端称为业务终端,该业务终端可以包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)、智能车载等可用于申请创建业务子网络的智能终端。
(2)子网创建服务器(也可称为subnet创建服务):在向管理链获得授权后,业务对象可以向子网创建服务器请求创建子网X,子网创建服务器由税务管理部门运营,且可以向管理链进行子网X的授权验证,验证成功后,子网创建服务器会根据子网业务需求,在验证者节点网络(包括票据链网络和应用合约链网络)中有条件地随机选择票据链验证者(即票据共识节点)、应用合约链验证者(即应用共识节点)以及通用验证者(即通用共识节点,通常由业务对象或者外部机构加入构成),组成验证者子网的网络(即业务子网络,例如子网X)。当业务子网络中的验证节点启动后,业务子网络中的验证节点即开始子网共识,例如执行与票据业务相关联的临时业务(比如,统计电子票据的数量)。
其中,上述子网创建服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
(3)票据链:管理票据资产的全生命周期和状态,部署有票据资产合约和第一票据跨链桥合约,可以和票据资产跨链服务(也可称为票据数据跨链服务)进行票据资产的跨链交互。
(4)应用合约链:管理电子票据和税务衍生业务合约相关的数据(即通用资产,例如征信信息、退税信息等),部署有第一通用跨链桥合约(也可称为应用链资产通用跨链桥合约),可以和通用资产跨链服务(也可称为应用链数据跨链服务)进行衍生业务相关的通用资产的跨链交互。
(5)票据资产跨链服务(即第一跨链中继):用于票据链和业务子链之间的票据资产跨链转移,只有票据链验证者有权限可以访问票据资产跨链服务。因此如果对应的业务子链需要进行票据票资产跨链后进行相关联的业务,则需要在创建业务子网络时指定需要有票据链验证者参与。
(6)通用资产跨链服务(即第二跨链中继):用于应用合约链中的一些通用数据和状态与业务子链之间进行跨链转移。只有应用合约链验证者可以访问通用资产跨链服务。因此,如果对应的业务子链需要进行应用合约链上的相关通用资产和状态跨链后进行相关联的业务,则需要在创建业务子网络时指定需要有应用合约链验证者参与。
可以理解,在本申请实施例中,业务对象需要创建一个业务子链时,只需要向管理链注册子网的基本信息和相关权限信息(如是否需要票据跨链等),而不需要自行提供业务子网络的验证者节点(可简称验证者,即共识节点)。系统的子网创建服务器会根据用户需要(即业务对象提交的子网注册配置信息),选择当前在票据链网络以及应用合约链网络中存在的验证者节点,为该业务对象组建业务子网络。
上述可知,由于复用了票据链和应用合约链相关的验证者节点,这些验证者节点本身也有实时同步票据链和应用合约链的链上账本数据,因此通过数据跨链服务,可以很便捷地完成票据链和应用合约链到业务子链之间的数据跨链。另外,本申请实施例可以为业务对象提供便捷的子链使用方式,也省去了额外的验证者节点资源开销。
图3中的数据跨链服务(包括票据资产跨链服务和通用资产跨链服务)完成了票据链和应用合约链中的相关资产和状态数据到业务子链之间的跨链转移。其中,使用数据跨链功能前,首先需要在创建业务子链时将相关的跨链权限申请提交到管理链中,此外,跨链权限也会写入到业务子链的创世区块信息中,需要注意的是,该跨链权限在整个业务子链的生命周期中是不可更改的。可以理解,数据跨链服务只有在验证了权限之后才会为业务子链提供跨链服务。
其中,在执行数据跨链转移时,数据跨链服务需要与业务子链的创世区块中已经部署好的资产跨链桥合约(包括第二票据跨链桥合约和第二通用跨链桥合约),以及票据链上的第一票据跨链桥合约,应用合约链上的第一通用跨链桥合约进行交互。需要注意的是,第二票据跨链桥合约和第二通用跨链桥合约在业务子链中无法自主更新。
可以理解,本申请实施例中的业务子链的优势点在于:首先,可以简化其启动流程,业务对象注册后可直接复用票据链和应用合约链对应的共识节点,省去了业务对象自行提供验证节点的困难以及避免了不安全性。其次,提供了有效的跨链服务和跨链协议,业务子链可以在安全授权下,与票据链和应用合约链上的业务数据进行跨链交互,使业务对象可以便捷地在业务子链中运行子链业务(例如,发票税务衍生业务)。
由此可见,业务子网络可以让业务对象在应用合约链之外更加独立的拥有自己的独立业务子链,独立的业务子链可以为业务对象提供更高独立性能、数据独立隔离和隐私性更高的服务。同时,对于会产生大量临时数据、不重要数据的临时业务,业务子链可以作为临时业务链,其运行的大量账本数据不会侵占应用合约链的主链空间,也能够为业务对象和管理系统节省了大量成本。
为便于理解,进一步的,请参见图4,图4是本申请实施例提供的一种多区块链架构中子链业务监测的场景示意图。该多区块链架构具体可以为包含目标链、第一链以及第二链的三链架构,例如,该多区块链架构可以为上述区块链电子票据三链架构(包含管理链、票据链和应用合约链),也可以为上述区块链电子文件三链架构(包含管理链、文件链和应用合约链),本申请实施例对此不做限定。图4中的业务对象可以为具有子网创建需求的任意实体对象,该业务对象的业务终端可以为该业务对象对应的业务节点(例如,上述图1所示的业务网络400a中的业务节点),也可以为与该业务节点相关联的终端设备,这里不做限定。此外,图4中的共识节点40可以为目标共识节点,该目标共识节点可以为目标链对应的目标链网络中的任意一个共识节点(例如,上述图1所示的共识网络100a中的共识节点10a)。
可以理解,业务对象可以根据业务需求向目标链上的子网管理合约申请创建一个或多个业务子网络,这里对业务子网络的具体数量不做限定。其中,每个业务子网络中的验证节点均可以来源于第一链对应的第一链网络中的共识节点(即第一共识节点,例如,上述图1所示的共识网络200a中的共识节点)以及第二链对应的第二链网络中的共识节点(即第二共识节点,上述图1所示的共识网络300a中的共识节点),本申请实施例对每个业务子网络中的验证节点的数量不做限定。可以理解的是,同一个业务子网络中的多个验证节点可用于共同维护一条业务子链,不同的业务子链可用于运行业务对象所请求的不同子链业务。如图4所示,多条业务子链具体可以包括业务子链1、业务子链2、…、业务子链N,这里的每条业务子链均为独立于上述目标链、第一链以及第二链的区块链,且不同的业务子链之间彼此独立运行。其中,业务子链1对应的业务子网络可以包含多个验证节点,例如验证节点42a,该验证节点42a可用于通过业务子链1上部署的子链业务合约1执行业务对象所请求的子链业务A;业务子链2对应的业务子网络可以包含多个验证节点,例如验证节点42b,该验证节点42b可用于通过业务子链2上部署的子链业务合约2执行业务对象所请求的子链业务B;业务子链N对应的业务子网络可以包含多个验证节点,例如验证节点42n,该验证节点42n可用于通过业务子链N上部署的子链业务合约N执行业务对象所请求的子链业务N。可以理解,图4中的验证节点42a、验证节点42b和验证节点42n可以是上述第一共识节点,也可以是上述第二共识节点,这里不做限定。此外,第一链上部署有第一资源合约(例如,票据资产合约),通过第一资源合约可以执行相应的交易业务(例如,前述票据业务);第二链上部署有第二资源合约(例如,衍生业务合约),通过第二资源合约可以执行相应的交易业务(例如,前述票据衍生业务)。可以理解,每个业务子网络中的验证节点均可以基于从第一链和第二链上跨链转移得到的相关资源(如可以为与子链业务相关联的电子票据或该电子票据中部分授权可见的票据信息,也可以为与子链业务相关联的电子文件或该电子文件中部分授权可见的文件信息(例如,电子证书中的证书信息);或者,可以为与子链业务相关联的通用票据关联资产(例如,征信信息、税务信息等)或该通用票据关联资产中部分授权可见的资产关联信息,也可以为与子链业务相关联的通用文件关联资产(例如,资质信息、处方统计结果等)或该通用文件关联资产中部分授权可见的文件关联信息)来执行对应的子链业务。
可以理解的是,在多区块链架构中,通过相关的子网协议可以为区块链系统创建多个业务子链,为了保障每条业务子链的有序执行,本申请实施例提供了一个对于每条业务子链进行监测的协议框架。其中,在创建业务子网络后,目标链网络中的目标共识节点(如上述共识节点40)可以通过目标链上部署的子链监测控制合约对子网业务权限进行管理(基于跨链服务功能),且子链业务启动后可以有多个监测节点(即Warden,也可称为监测员)对该子链业务进行监测,这里的监测节点可用于通过传递性投票的方式确认对应业务子链的链高度以及反馈业务风险。
如图4所示,本申请实施例可通过与目标链相关联的监测节点集群(也可称为监测服务集群)中的监测节点来对上述业务子链1~业务子链N进行监测。在该监测节点集群中可以部署有多个监测节点,这里的多个监测节点具体可以包含图4所示的监测节点41a、监测节点41b、监测节点41c、…、监测节点41m。需要注意的是,这里将不对监测节点集群中的监测节点的数量进行限定。其中,每个监测节点均可以为独立的监测管理机构,可以灵活定制自身的监测逻辑来监测其对应想要监测的业务子链,并可获得该业务子链上的全部数据(例如相关的业务执行结果、对应子链业务合约中的参数信息等,比如与电子票据相关的开票参数),因此,监测节点还可理解为全量SPV(Simplified Payment Verification,简化交易验证)节点。在本申请实施例中,一个监测节点可以同时监测一条或多条业务子链,相应的,一条业务子链也可以同时被多个监测节点所监测,实际应用中可以根据业务需要配置监测节点与业务子链之间的对应关系,这里不做限定。例如,图4所示的监测节点41a可以对业务子链1和业务子链2进行监测;而监测节点41b可以对业务子链1和业务子链N进行监测。
其中,可以理解的是,本申请实施例中的监测节点可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,这里对监测节点所采用的具体形式不做限定。
需要说明的是,监测节点在对业务子链执行监测逻辑之前,需要先在目标链上的子链监测控制合约中注册自身的监测身份,以便后续目标链可以对其身份的投票权限进行识别。为便于理解,本申请实施例可以将上述多个业务子链中的任意一个业务子链称为目标业务子链(例如,图4所示的业务子链1),相应的,该目标业务子链对应的业务子网络可称为目标业务子网络(例如,前述业务子链1对应的业务子网络),通过目标业务子网络所执行的子链业务可称为目标业务(如上述子链业务A,该子链业务A可以为前述票据临时业务或文件临时业务),即目标业务子网络是由目标共识节点基于业务对象所请求的目标业务所构建得到的。类似的,可以将在子链监测控制合约中针对该目标业务子链成功进行身份注册的多个监测节点统称为注册节点,这样,每个注册节点均与目标业务子链相关联。
为便于理解,下面将以目标业务子链为上述业务子链1为例,对确认目标业务子链的链高度的过程进行阐述。假设有多个监测节点(如监测节点41a、监测节点41b和监测节点41c)对业务子链1进行监测,这多个监测节点均可以基于各自的监测逻辑对业务子链1进行监测投票处理(例如对业务子链1的链高度进行投票确认),从而可以得到各监测节点针对业务子链1的链高度投票信息,例如,监测节点41a针对业务子链1的链高度投票信息为链高度投票信息1,监测节点41b针对业务子链1的链高度投票信息为链高度投票信息2,监测节点41c针对业务子链1的链高度投票信息为链高度投票信息3。可以理解,在共识节点40获取到链高度投票信息1、链高度投票信息2以及链高度投票信息3时,可以先通过目标链上的子链监测控制合约识别相应的监测节点(即上述监测节点41a、监测节点41b和监测节点41c)是否为已经注册过的注册节点,根据识别结果再进行后续的计算。
以链高度投票信息1为例进行说明,共识节点40可以通过该子链监测控制合约识别对应的监测节点41a是否为在子链监测控制合约中已经针对业务子链1进行过身份注册的某个注册节点,为便于区分,本申请实施例可以将该注册节点称为目标注册节点,可以理解,该目标注册节点可以为前述在子链监测控制合约中针对目标业务子链进行身份注册的多个注册节点中的任意一个注册节点。进一步,在确定该监测节点41a为目标注册节点后,可以基于该目标注册节点的节点注册身份确定链高度投票信息1的投票类型。同理,共识节点40也可以确定上述链高度投票信息2和链高度投票信息3的投票类型。需要说明的是,在本申请实施例中,所有注册节点在子链监测控制合约中所注册的节点注册身份可以分为两类,即第一类型节点注册身份和第二类型节点注册身份,其中,第一类型节点注册身份的身份等级高于第二类型节点注册身份的身份等级。相应的,在上述子链监测控制合约中注册有第一类型节点注册身份的监测节点可以称为第一类监测节点,这里的第一类监测节点可理解为一票否决型监测节点,其基于第一类型节点注册身份所确定的链高度投票信息的投票类型可称为第一投票类型;同理,在上述子链监测控制合约中注册有第二类型节点注册身份的监测节点可以称为第二类监测节点,这里的第二类监测节点可理解为普通型监测节点,其基于第二类型节点注册身份所确定的链高度投票信息的投票类型可称为第二投票类型。可以理解,目标共识节点所获取到的每个链高度投票信息的投票类型会影响到最终计算出的目标业务子链的目标链高度。
需要注意的是,当一个监测节点在子链监测控制合约中进行身份注册时,可以针对其想要监测的每条业务子链独立注册相应的节点注册身份,对不同的业务子链既可以注册相同类型的节点注册身份,也可以注册不同类型的节点注册身份,本申请实施例对此不做限定。例如,上述监测节点41a可以针对业务子链1注册第一类型节点注册身份,且该监测节点41a可以针对业务子链2注册第二类型节点注册身份。可以理解,在对同一条业务子链进行监测的多个监测节点中,可以只存在一种类型的监测节点(例如,均为第一类监测节点或者均为第二类监测节点),也可以存在不同类型的监测节点(即同时存在第一类监测节点和第二类监测节点),本申请实施例对监测节点的类型不进行限定。
进一步地,共识节点40可以基于上述链高度投票信息1~链高度投票信息3、这3个链高度投票信息中每个链高度投票信息的投票类型、以及子链监测控制合约,确定业务子链1的目标链高度(例如,链高度k,k为正整数)。其中,目标链高度是指目标共识节点当前所确认的目标业务子链的链高度。可以理解的是,在目标业务子网络中,随着目标业务的执行,相应的验证节点会不断产生新的区块并添加至目标业务子链上;而目标业务子链上的每个区块均具有各自的区块高度,这里的区块高度可理解为区块的标示符,用来丈量目标业务子链中某一个区块到第一个区块(即目标业务子链的创世区块)之间的距离,通过区块高度可以准确地了解到某一区块在目标业务子链上的位置,相当于给区块定位了一个坐标。例如,假设上述业务子链1中有五个区块,则业务子链1中的第一个区块的区块高度为0,第二个区块的区块高度为1……以此类推,第五个区块的区块高度为4,此时,对于一个准备添加至该业务子链中的新区块,对应的区块高度就为5。基于此,在本申请实施例中,可以将一个业务子链中的区块所对应的区块高度统称为该业务子链的链高度,例如,仍以上述业务子链1为例,假设某一时刻业务子链1的链高度为4(即当前业务子链1包含有5个区块),若此时验证节点42a又将一个新的区块添加到业务子链1上,则业务子链1的链高度将累加到5。也就是说,业务子链的链高度也会随着新区块上链持续累加,相应的,监测节点和目标共识节点可以对该业务子链的任一链高度进行高度确认。其中,本申请实施例采用传递性投票的方式确认业务子链的链高度,换言之,在目标共识节点确认了目标业务子链的目标链高度时,即表示确认了该目标链高度之前的全部链高度,例如,假设上述共识节点40当前确认的业务子链1的链高度为k(如k=4),则业务对象可以信赖业务子链1上k及k之前的链高度相关联的业务执行结果的正确性和可靠性。
进一步地,共识节点40可以通过子链监测控制合约生成业务子链1的目标链高度(例如,上述链高度k)对应的高度确认信息,并可以通过目标跨链中继将该高度确认信息发送至验证节点42a,该验证节点42a用于将该高度确认信息所对应的目标链高度写入业务子链1上的子链监测合约1,其中,该子链监测合约1用于指示验证节点42a基于该目标链高度确定执行业务对象所请求的子链业务A后的链高度,也就是说,验证节点42a可以在已经被确认的业务子链1的目标链高度上,继续调用子链业务合约1来执行子链业务A,并可以基于得到的业务执行结果累加出块,生成的新区块可添加到业务子链1上,从而得到执行该子链业务A后的链高度。需要注意的是,本申请实施例中的业务子网络本质是共识网络,因此在对某个区块进行上链处理时,需要在该业务子网络中的所有验证节点之间对该区块进行共识,只有共识通过的区块才能添加到对应的业务子链上。
其中,上述目标跨链中继可用于隔离目标业务子网络和目标链网络,且提供跨链服务功能。该目标跨链中继可以为独立的中继服务器,也可以为多个中继服务器构成的中继服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。此外,核心共识网络中的其他不同共识网络之间也可以通过相关的跨链中继进行数据跨链交互,例如,第一链网络和业务子网络之间可通过第一跨链中继进行数据跨链交互;又例如,第二链网络和业务子网络之间可通过第二跨链中继进行数据跨链交互;再例如,第一链网络和第二链网络之间可通过第三跨链中继进行数据跨链交互。
可以理解的是,对图4中的其他业务子链(如上述业务子链2、业务子链N)的链高度进行高度确认的具体过程可以参见上述对业务子链1的链高度进行高度确认的过程,这里不再进行赘述。
此外,本申请实施例中的监测节点还可以在检测到业务子链上存在业务风险时,通过对风险高度投反对票的方式向目标链反馈业务风险。
由此可见,本申请实施例提供了一种在三链平台中对于子链业务的监测协议,通过该监测协议可以对任意一个业务子链(如上述业务子链1)进行灵活监测,既不会影响业务子链的独立运行,同时可以起到对其子链业务的监测控制作用。
其中,对业务子链的链高度进行高度确认的具体过程和对业务子链上存在的业务风险进行反馈并处理的具体过程,可以参见如下图5-图8所对应的实施例。
进一步的,请参见图5,图5是本申请实施例提供的一种多区块链数据处理方法的流程示意图。如图5所示,该方法可以由上述目标链网络中的目标共识节点执行,比如,该目标共识节点可以为上述图1所示的共识网络100a中的任意一个共识节点。该方法具体可以包括以下步骤S101-步骤S104:
步骤S101,获取与目标链相关联的监测节点针对目标业务子链的链高度投票信息;
可以理解的是,本申请实施例中的多区块链可以包含目标链和目标业务子链;目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络,且目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的,目标业务子网络具体的构建过程可以参见上述图3所对应实施例中的相关描述,这里不再进行赘述。业务对象所请求的目标业务可以为前述票据临时业务(例如,票据统计业务、税务审计业务、信贷审查业务、进出亏分析业务、企业资质比对业务、征信分析业务、社交业务、赊购分析业务和退税审查业务、中奖核对业务等)或文件临时业务(例如,合作风险预测业务、企业资质审查业务、基于处方统计结果的药品采购业务、资格认证激励业务、文件敏感信息检测业务等)。
其中,上述目标链上部署有用于对目标业务子链进行控制的子链监测控制合约,该子链监测控制合约可以是目标共识节点基于目标链上的管理合约模板所部署的针对目标业务子链的智能合约,通过该子链监测控制合约可以实现目标链对目标业务子链的监测、管理和控制。可以理解,当某个监测节点希望对目标业务子链进行监测时,需要在该子链监测控制合约中进行身份注册,从而成为一个在该子链监测控制合约中针对目标业务子链进行身份注册的注册节点,且可在身份注册成功时为其配置目标链授予的投票权限,而具备投票权限的监测节点则可以在对目标业务子链进行监测的过程中,对目标业务子链的链高度进行投票,从而得到该监测节点针对目标业务子链的链高度投票信息。此外,该子链监测控制合约中可包含针对上述目标业务子链进行身份注册的目标注册节点,该目标注册节点可以为在该子链监测控制合约中针对目标业务子链进行身份注册的多个注册节点中的任意一个,即目标业务子链可以被多个已经进行身份注册的监测节点同时监测,本申请实施例对监测节点的数量不进行限定。
可以理解的是,目标共识节点可以主动获取所有与目标链相关联的监测节点针对目标业务子链的链高度投票信息,例如,目标共识节点可以配置一个投票信息收集时间间隔(例如,设置为5分钟),从而根据该投票信息收集时间间隔收集相关监测节点针对目标业务子链的链高度投票信息。该投票信息收集时间间隔是指目标共识节点前后两次收集相应链高度投票信息时的收集时间戳之间的时间间隔。例如,若目标共识节点在第一收集时间戳(如时间戳T1)时收集了监测节点生成的链高度投票信息A,则目标共识节点可以在第二收集时间戳(如时间戳T2)时再去收集监测节点生成的链高度投票信息B,这里的第二收集时间戳为第一收集时间戳的下一收集时间戳,且第二收集时间戳与第一收集时间戳之间的时间间隔等于上述投票信息收集时间间隔。实际应用中可以根据业务需求来配置目标共识节点的投票信息收集时间间隔,本申请实施例对此不做限定。可选的,目标共识节点还可以对与目标链相关联的监测节点进行实时探测,并可以在探测到监测节点生成针对目标业务子链的链高度投票信息时,收集其探测到的链高度投票信息,这样,在监测节点每次生成相应的链高度投票信息时,目标共识节点都可以即时获取。可选的,还可以由监测节点主动向目标共识节点发送其针对目标业务子链的链高度投票信息,即监测节点每一次生成相应的链高度投票信息时,都会立即发送给目标共识节点进行处理。本申请实施例对目标共识节点获取相关链高度投票信息的方式不进行限定。
步骤S102,在通过目标链上的子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型;
可以理解,在目标共识节点获取到上述链高度投票信息时,可以通过目标链上的子链监测控制合约对获取到的链高度投票信息进行识别,从而确定出该链高度投票信息的投票类型,即对获取到的链高度投票信息进行分类,以确定其中是否存在具有第一投票类型的链高度投票信息和具有第二投票类型的链高度投票信息。
具体的,目标共识节点获取到的链高度投票信息可包含监测节点针对目标业务子链的第一类高度投票信息,这里的第一类高度投票信息是指投票赞成信息,即第一类高度投票信息是在监测节点对目标业务子链的链高度进行投票确认时所产生的链高度投票信息。例如,假设监测节点W对业务子链X进行监测投票,且在一次投票时对业务子链X的链高度k进行投票确认(即对链高度k投赞成票),则相应得到的链高度投票信息即为第一类高度投票信息(或者投票赞成信息)。可以理解,这里的第一类高度投票信息可包含监测节点的节点标识(如监测节点的网络地址、节点标识号或节点名称等)、监测节点的公钥证书、监测节点针对目标业务子链的链高度进行投票时的投票确认高度、以及监测节点的签名信息(也可称为第一签名信息);其中,监测节点的签名信息是由监测节点通过监测节点的私钥信息对投票确认高度进行签名后所得到的。也就是说,在监测节点针对目标业务子链的链高度进行投票时,可以获取该监测节点所投票确认的链高度(如上述链高度k),为便于理解和区分,本申请实施例可以将监测节点针对目标业务子链所投票确认的链高度统称为投票确认高度;进而该监测节点可以通过其配置的私钥信息对该投票确认高度进行签名,从而得到监测节点的签名信息,并可以基于得到的投票确认高度、该监测节点的签名信息、以及该监测节点的节点标识和该监测节点的公钥证书生成该监测节点对应的第一类高度投票信息。
可以理解,上述子链监测控制合约中包含有与目标业务子链相关联的注册节点的节点注册配置信息,该节点注册配置信息可以为注册节点在子链监测控制合约中进行身份注册后所得到的与该注册节点相关的配置信息。这里的节点注册配置信息具体可包含注册节点的节点标识(如注册节点的网络地址、节点标识号或节点名称等)以及注册节点的公钥证书,还可以包含注册节点针对目标业务子链所注册的身份(即节点注册身份,如第一类型节点注册身份或第二类型节点注册身份)、该注册节点所监测的目标业务子链的链标识(如目标业务子链的链标识号或子链名称等)等信息。其中,注册节点的公钥证书是由目标共识节点调用子链监测控制合约对注册节点提交的注册节点信息进行身份注册后所得到的;这里的注册节点信息可以包括但不限于注册节点的节点标识、针对目标业务子链申请注册的节点注册身份以及其想要监测的目标业务子链的链标识等信息。应当理解,在目标共识节点成功为请求注册相应身份的监测节点配置对应的公钥证书的情况下,可以将该请求注册相应身份的监测节点作为注册节点,并可将为作为注册节点的监测节点所配置的公钥证书写入目标链(例如,管理链)。
此外,应当理解,目标共识节点在将为该作为注册节点的监测节点所配置的公钥证书写入目标链之后,还可以将为该作为注册节点的监测节点所同步配置的私钥信息返回给该监测节点,以使该监测节点可以通过获取到的私钥信息对自己针对目标业务子链所投票确认的投票确认高度进行签名,以得到该监测节点的签名信息。
在本申请实施例中,上述注册节点的数量可以为多个,这里对注册节点的数量不做限定。基于此,目标共识节点确定上述链高度投票信息的投票类型的具体过程可以为:目标共识节点可以从上述第一类高度投票信息中获取监测节点的节点标识,进而可以在上述注册节点的节点标识中查找与该监测节点的节点标识相同的目标节点标识,其中,该目标节点标识是指多个注册节点中的目标注册节点的节点标识;可以理解,若目标共识节点在上述注册节点的节点标识中查找到该目标节点标识,则可进一步从上述注册节点的公钥证书中获取该目标节点标识所对应的目标注册节点的公钥证书,此时可以将获取到的目标注册节点的公钥证书作为目标公钥证书;类似的,可以将第一类高度投票信息中包含的监测节点的公钥证书作为待处理公钥证书,进而可以基于待处理公钥证书以及目标公钥证书对监测节点的签名信息进行签名验证,以得到监测节点的签名验证结果。进一步地,在该监测节点的签名验证结果指示签名验证成功时,可以确定该监测节点为目标注册节点,随后目标共识节点可以基于该目标注册节点的节点注册身份确定第一类高度投票信息的投票类型。
可选的,可以理解,若目标共识节点在上述注册节点的节点标识中未查找到目标节点标识,则表示监测节点为非法节点,即该监测节点未在上述子链监测控制合约中进行相应的身份注册。
为便于理解,这里以上述图4中的监测节点41a为例,假设监测节点41a针对业务子链1的链高度投票信息1为第一类高度投票信息,且链高度投票信息1中包含有监测节点41a的节点标识411a、监测节点41a的公钥证书412a、监测节点41a针对业务子链1的链高度进行投票时的投票确认高度413a、以及监测节点41a的签名信息414a;而子链监测控制合约中包含与业务子链1相关联的4个注册节点(如注册节点1、注册节点2、注册节点3以及注册节点4)的节点注册配置信息,该节点注册配置信息可包含:注册节点1对应的节点标识1a以及公钥证书1b,注册节点2对应的节点标识2a以及公钥证书2b,注册节点3对应的节点标识3a以及公钥证书3b,注册节点4对应的节点标识4a以及公钥证书4b。则共识节点40可以在节点标识1a、节点标识2a、节点标识3a以及节点标识4a中查找与节点标识411a相同的节点标识,假设查找到节点标识1a与节点标识411a相同,则节点标识1a可作为目标节点标识,相应的,节点标识1a所指示的注册节点1的公钥证书1b即可作为目标公钥证书,监测节点41a的公钥证书412a即可作为待处理公钥证书,进而共识节点40可以基于公钥证书1b和公钥证书412a对监测节点41a的签名信息414a进行签名验证,且在该签名信息414a验证成功时,可以确定该监测节点41a为注册节点1(即目标注册节点)。
其中,应当理解,本申请实施例还可以结合待处理公钥证书中的证书数据信息(例如,证书的版本信息、证书的哈希值以及与该证书的哈希值相关联的根证书哈希值等)来对上述监测节点的签名信息进行签名验证,以确保用于进行签名验证的公钥证书(即前述待处理公钥证书)中的公钥信息的可靠性。
具体的,目标共识节点可以将待处理公钥证书(如上述公钥证书412a)中的证书数据信息作为待处理证书信息,且可以将目标公钥证书(如上述公钥证书1b)中的证书数据信息作为目标证书信息;进一步地,目标共识节点可以将待处理证书信息与目标证书信息进行比对,得到比对结果,进而可以在该比对结果指示待处理证书信息与目标证书信息一致时,基于待处理公钥证书中的公钥信息对上述监测节点的签名信息进行签名验证,并可将签名验证成功时的验证结果作为监测节点的签名验证结果。
可选的,可以理解,在上述比对结果指示待处理证书信息与目标证书信息不一致时,需要用从目标链上所读取到的目标注册节点的公钥证书(即目标公钥证书)对前述待处理公钥证书进行证书更新处理,进而可以通过更新处理后的待处理公钥证书中的公钥信息对监测节点的签名信息进行签名验证,以确保目标链中投票出块方案的顺利执行。此外,本申请实施例还可以前述验证待处理公钥证书的有效性,例如,当检测到该待处理公钥证书的使用时长已经超过配置的证书有效期(即待处理公钥证书已失效)时,可以用从目标链上读取到的目标公钥证书,对监测节点所使用的公钥证书进行证书更新处理。
其中,应当理解,本申请实施例可支持监测节点针对目标业务子链申请注册两种类型的节点注册身份中的任意一种。具体的,上述节点注册配置信息中包含注册节点针对目标业务子链所注册的第一类型节点注册身份或第二类型节点注册身份;那么,目标共识节点可以在该节点注册配置信息中查找前述目标节点标识所对应的目标注册节点的节点注册身份,且可将查找到的目标注册节点的节点注册身份作为目标节点注册身份;其中,可选的,在该目标节点注册身份为第一类型节点注册身份时,目标共识节点可以基于第一类型节点注册身份确定上述第一类高度投票信息的投票类型为第一投票类型;或者,可选的,在该目标节点注册身份为第二类型节点注册身份时,目标共识节点可以基于第二类型节点注册身份确定第一类高度投票信息的投票类型为第二投票类型。例如,当上述共识节点40识别到监测节点42a针对业务子链1所注册的节点注册身份为第一类型节点注册身份时,其针对业务子链1的链高度投票信息1的投票类型即为第一投票类型。
可以理解,在实际应用中,当一个监测节点同时监测不同的业务子链时,可以针对不同的业务子链独立注册相应的身份,且在身份注册成功时,目标共识节点可以针对不同的业务子链为该监测节点配置不同的公钥证书以及对应的私钥信息。例如,监测节点W可以针对业务子链X1注册第一类型节点注册身份,此时目标共识节点可以针对业务子链X1为监测节点W配置公钥证书Y1和私钥信息Z1;此外,监测节点W还可以针对业务子链X2注册第二类型节点注册身份,此时目标共识节点可以针对业务子链X2为监测节点W配置公钥证书Y2和私钥信息Z2。这样,在监测节点W向其监测的业务子链(如业务子链X1)请求进行数据同步时,该业务子链也可以通过对接收到的数据同步请求中的签名信息进行签名验证,以判断该监测节点W是否可以获取该业务子链上的全部数据。
步骤S103,基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度;
应当理解,由于每个监测节点都会根据自身的监测逻辑独立地对目标业务子链进行监测投票处理,因此在同一时刻不同监测节点针对目标业务子链进行投票确认的链高度可能不完全相同,则目标共识节点可以基于由不同监测节点所确定的链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,计算出目标业务子链的目标链高度,并将其写入目标链。
可以理解,在一种实施方式中,上述监测节点可以包括第一类监测节点(或者一票否决型监测节点)和第二类监测节点(或者普通型监测节点),这里的第一类监测节点是指在子链监测控制合约中注册有第一类型节点注册身份的监测节点;第二类监测节点则是指在子链监测控制合约中注册有第二类型节点注册身份的监测节点。其中,第一类型节点注册身份的身份等级高于第二类型节点注册身份的身份等级,因此,注册有不同节点注册身份的监测节点所对应的投票效果不同。相应的,此时目标共识节点获取到的链高度投票信息可包含前述第一类监测节点和第二类监测节点针对目标业务子链的第一类高度投票信息(即投票赞成信息);可以理解,该第一类高度投票信息可包含第一类监测节点基于第一类型节点注册身份所确定的具有第一投票类型的第一链高度投票信息、以及第二类监测节点基于第二类型节点注册身份所确定的具有第二投票类型的第二链高度投票信息。
基于此,本申请实施例可以将上述第一链高度投票信息中包含的第一类监测节点针对目标业务子链的链高度进行投票时的投票确认高度作为第一投票确认高度,且可以将第二链高度投票信息中包含的第二类监测节点针对目标业务子链的链高度进行投票时的投票确认高度作为第二投票确认高度;进而目标共识节点可以基于第一投票确认高度,调用子链监测控制合约确定针对目标业务子链的参照投票高度阈值,随后可以基于该参照投票高度阈值、第一投票确认高度、以及第二投票确认高度确定目标业务子链的目标链高度。
应当理解,监测节点注册第一类型节点注册身份的意义在于,在目标共识节点进行高度确认的过程中,可以基于注册有第一类型节点注册身份的第一类监测节点针对目标业务子链所确定的第一投票确认高度,先确定一个参照投票高度阈值,那么目标共识节点在本轮所最终确认的目标业务子链的目标链高度将不会高于该参照投票高度阈值,从而实现了第一类监测节点“一票否决”的投票效果;而注册有第二类型节点注册身份的第二类监测节点则不具备类似的“一票否决”能力,因此本申请实施例可以实现不同类型监测节点的差异化投票效果,从而可以提高监测逻辑的灵活性。
应当理解,本申请实施例中的监测节点的数量可以为多个(例如M个,M为大于2的正整数),例如,假设M个监测节点中包含M1个第一类监测节点和M2个第二类监测节点,每个监测节点对应于一个针对目标业务子链的投票确认高度,因此,相应的,第一投票确认高度的数量为M1个,第二投票确认高度的数量为M2个,其中,M1和M2均为正整数,且M=M1+M2。此时目标共识节点对目标业务子链进行高度确认的具体过程可以为:目标共识节点可以调用子链监测控制合约中的高度确认方法,将上述M1个第一投票确认高度中具有最小高度的第一投票确认高度作为目标业务子链的参照投票高度阈值(例如,m,m为正整数);进一步,目标共识节点可以在上述M1个第一投票确认高度以及M2个第二投票确认高度中获取小于或等于该参照投票高度阈值的投票确认高度,并可以将获取到的投票确认高度作为候选投票高度,同时可以将该候选投票高度中具有最大高度的投票确认高度作为目标投票确认高度(例如,k,k为正整数);随后,目标共识节点可以将上述M1个第一投票确认高度以及M2个第二投票确认高度中大于或等于该目标投票确认高度的投票确认高度作为待处理高度;可以理解,当通过上述高度确认方法检测到该待处理高度的数量大于设定的投票数量阈值时,目标共识节点可以将上述目标投票确认高度作为本次确认的目标业务子链的目标链高度。其中,这里的投票数量阈值大于或等于(M1+M2)/2,本申请实施例对投票数量阈值的具体取值不做限定。
也就是说,如果多个监测节点中存在一票否决型监测节点,且该一票否决型监测节点针对目标业务子链的链高度进行投票确认的投票确认高度为m(即参照投票高度阈值),则目标共识节点本次针对目标业务子链所确认的目标链高度不会高于m;进一步,在多个监测节点所投票确认的投票确认高度中找到最大值k,且在k满足不大于前述m的前提下,还要求有多于投票数量阈值的监测节点(如一半以上的监测节点,包括一票否决型监测节点和普通型监测节点),对于目标业务子链的投票确认高度>=k。
例如,假设对业务子链X进行监测的监测节点有4个,分别为监测节点C1、监测节点C2、监测节点C3以及监测节点C4,其中,监测节点C1和监测节点C2为第一类监测节点(即上述M1=2),监测节点C3和监测节点C4为第二类监测节点(即上述M2=2),且监测节点C1针对业务子链X的投票确认高度为105,监测节点C2针对业务子链X的投票确认高度为106,监测节点C3针对业务子链X的投票确认高度为104,监测节点C4针对业务子链X的投票确认高度为107,则可以通过子链监测控制合约中的高度确认方法确定出此时业务子链X的参照投票高度阈值为105(即上述m=105);进而可以在上述4个投票确认高度中获取小于或等于105的投票确认高度作为候选投票高度,可以理解,此时的候选投票高度包括104和105,则可以这两个候选投票高度中的最大高度作为目标投票确认高度(即上述k=105);随后,通过子链监测控制合约中的高度确认方法可以在上述4个投票确认高度中获取大于或等于105的投票确认高度作为待处理高度,则此时待处理高度包括105、106和107,可知待处理高度的数量为3;那么,在投票数量阈值被设置为监测节点总数的一半时(即投票数量阈值为2),可以确定大于或等于105的待处理高度的数量大于该投票数量阈值,从而可以确定本次所确认的业务子链X的链高度为105。
可选的,在另一种实施方式中,上述M个监测节点可以只包含一种类型的监测节点。例如,在上述M个监测节点均为第一类监测节点(或者一票否决型监测节点)时,相应的,第一投票确认高度的数量为M个,则目标共识节点可以调用子链监测控制合约中的高度确认方法,将M个第一投票确认高度中具有最小高度的第一投票确认高度作为目标业务子链的目标链高度。又例如,在上述M个监测节点均为第二类监测节点(或者普通型监测节点)时,相应的,第二投票确认高度的数量为M个,则目标共识节点可以调用子链监测控制合约中的高度确认方法,将M个第二投票确认高度中具有最小高度的第二投票确认高度作为目标业务子链的目标链高度。
步骤S104,通过子链监测控制合约生成目标链高度对应的高度确认信息,将高度确认信息发送至目标业务子网络中的验证节点,以使验证节点将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约。
应当理解,在获取到目标业务子链的目标链高度后,目标共识节点可以将相关链高度投票信息和目标链高度放入相应的交易中,并提交执行子链监测控制合约,交易执行成功后,目标业务子链上已被确认的链高度即为该目标链高度。
具体的,目标共识节点可以基于上述链高度投票信息和目标链高度构造高度确认交易,例如,可以按照与目标链相关联的交易格式将该链高度投票信息和目标链高度封装为高度确认交易。进一步的,在满足与目标链相关联的交易打包条件时,目标共识节点可以将该高度确认交易打包至目标链的目标区块中,并将包含该高度确认交易的目标区块提交到目标链上;随后,目标共识节点可以调用目标链上的子链监测控制合约执行该目标区块中的高度确认交易,以得到目标链高度对应的高度确认信息。最终,目标共识节点可以通过目标跨链中继将该高度确认信息发送至目标业务子网络中的验证节点,以使该验证节点将该高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约,该子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度。其中,上述目标跨链中继可用于隔离目标业务子网络和目标链网络,且可以提供目标业务子网络和目标链网络之间的跨链服务。可以理解,该目标跨链中继在接收到目标共识节点发送的高度确认信息时,可以根据自身配置的跨链数据格式,将从高度确认信息中提取到的内容(如上述目标链高度)封装为具有该跨链数据格式的跨链消息,再将携带有目标链高度的跨链消息转发给目标业务子网络中的验证节点。
其中,可以理解的是,由于目标业务子链是业务对象在目标链上的子网管理合约中申请之后所创建的,且目标业务子链的创世区块由目标链进行管理,该创世区块中包含有子链监测合约,因此在目标业务子链启动时就可通过目标业务子链的创世区块内置有该子链监测合约,从而可以保证目标业务子链必须受到目标链上的子链监测控制合约的状态管理和远程控制。
其中,可以理解的是,监测节点每一次针对目标业务子链的链高度投票信息都会被目标共识节点处理,但不一定会提交到目标链上,也就是说,目标共识节点可以对监测节点产生的链高度投票信息进行收集,并根据得到的链高度投票信息计算出目标业务子链的目标链高度,但只有在满足设定的交易打包条件时,目标共识节点才会将相关链高度投票信息和对应的目标链高度一起提交到目标链上。这里的交易打包条件可以由目标链进行配置,例如,在目标链上运行有某种特定的交易业务(比如,对第一链、第二链或不同于目标业务子链的其他业务子链进行相关配置的配置业务)时,或者,在目标链上周期性出空块时,可以认为满足上述交易打包条件,此时目标共识节点可以将上述高度确认交易打包至目标区块并提交到目标链上。
基于此,可以理解,在本申请实施例中,可以认为目标共识节点对目标业务子链的高度确认并非是立即确认的,而是存在一个异步时间,根据目标链中的配置,目标业务子链可以比目标链上所确认的目标链高度(如链高度k)还多出H个区块,即在目标链对目标业务子链上的链高度k进行确认时,目标业务子链可以继续执行业务对象所请求的目标业务,从而在链高度k的基础上继续累加出H个区块,也就是说,目标业务子网络中的验证节点可以基于目标链所确认了的目标业务子链的目标链高度,确定执行目标业务后的链高度。
需要注意的是,上述目标区块是指待添加至目标链的区块,因此,目标共识节点在生成包含高度确认交易的目标区块后,可将该目标区块发送至目标链网络中的剩余目标共识节点,以使剩余目标共识节点对该目标区块进行区块校验,得到目标区块对应的区块校验结果(包括执行目标区块中的高度确认交易,得到高度确认交易对应的交易执行结果),应当理解,这里的剩余目标共识节点具体是指该目标链网络中除目标共识节点之外所剩余的共识节点。进一步的,目标共识节点可以接收剩余目标共识节点返回的区块校验结果,若该区块校验结果指示区块校验成功(比如得到的所有交易执行结果均一致),则可以将该目标区块写入目标链,此时,目标共识节点可以调用目标链上的子链监测控制合约来执行目标区块中的高度确认交易,从而得到目标链高度对应的高度确认信息,该高度确认信息中包含有上述目标链高度。
此外,可以理解,监测节点在发现目标业务子链上存在业务风险时,可以对相应的风险高度投反对票,该反对票会被立即提交到目标链上进行处理。具体的,假设上述链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息,这里的第二类高度投票信息是指投票反对信息,该第二类高度投票信息是监测节点在检测到目标业务子链上存在业务风险时,对该业务风险所处的链高度(或风险高度)进行投票反对时所产生的链高度投票信息。例如,假设监测节点W对业务子链X进行监测投票,且在监测过程中发现业务子链X的链高度k上存在业务风险,可以对链高度k进行投票反对(即对链高度k投反对票),则相应得到的链高度投票信息即为第二类高度投票信息(或者投票反对信息)。其中,上述业务风险可以指目标业务子链中的业务资源数据所存在的风险或错误,这里的业务资源数据可以包括但不限于从第一链或第二链上跨链转移来的与目标业务相关联的资源数据、与部署在目标业务子链上的智能合约(如子链监测合约、子链业务合约等)相关联的合约参数和合约状态、执行目标业务后所得到的相关业务执行结果、交易数据和读写数据集等。例如,在电子票据相关的业务场景下,目标业务子链上的业务风险可以指:与子链业务相关联的电子票据中存在敏感信息,或者该电子票据中的票据信息存在错误(例如税号出错或抬头信息出错);某个开票企业在一定时间段内所开具的电子票据的数量达到了开票数量阈值;用于对电子票据数量进行统计的票据统计合约中的某些合约参数出现错误,或者执行票据统计业务所得到的票据统计结果出错等。
其中,上述第二类高度投票信息可包含监测节点针对目标业务子链的链高度(或者风险高度)进行投票反对时的投票反对高度,且第二类高度投票信息处于监测节点基于风险事务所确定的第一风险处理交易中,该风险事务是监测节点基于投票反对高度所生成的,换言之,监测节点在检测到业务风险后,可以将业务风险所在的链高度作为投票反对高度,并可基于该投票反对高度生成风险事务,随后可基于该风险事务确定用于发送至目标共识节点的第一风险处理交易,可以理解,该第一风险处理交易可用于指示相应的风险事务、投票反对高度以及具体的业务风险。例如,在电子票据相关的业务场景下,当监测节点发现目标业务子链上的某张电子票据中的税号存在错误时,可以将该电子票据所在的区块对应的区块高度作为投票反对高度,并通过生成相应的风险事务对该投票反对高度以及出错的电子票据的税号进行记录。
进一步的,在目标共识节点获取到监测节点发送的第一风险处理交易时,可以将第一风险处理交易所指示的风险事务写入子链监测控制合约,同时可以将目标业务子链上大于上述投票反对高度的链高度均确定为无效链高度,且可生成与风险事务相关联的子链锁定信息。也就是说,目标链可以通过子链监测控制合约记录第一风险处理交易所指示的风险事务,且生成与该风险事务相关联的子链锁定信息。随后,目标共识节点可以通过目标跨链中继将该子链锁定信息发送至目标业务子网络中的验证节点;可以理解,目标跨链中继可以基于该子链锁定信息的内容生成一个跨链事件,再将携带有该子链锁定信息的跨链事件转发给验证节点。
相应的,验证节点在接收到该子链锁定信息时,停止执行与风险事务相关联的风险业务(例如,与出错的电子票据相关的票据统计业务),且在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,可以基于该第二风险处理交易对风险业务进行风险消除处理(例如清除存在风险或错误的业务资源数据、回滚、停止相关用户或对象的业务权限(如开票权限)等)。此外,上述子链锁定信息还用于指示目标业务子网络中的验证节点将目标业务子链的业务状态设置为锁定状态,此时,处于锁定状态的目标业务子链停止执行交易上链,且停止执行与多区块链所包含的第一链(如前述票据链)以及第二链(如前述应用合约链)之间的跨链交互,也就是说,目标业务子链在被锁定时无法生成新的区块,也无法接受第一链或者第二链的数据跨链请求,具体来说即目标业务子链在被锁定时,相关的业务状态无法跨链转移到第一链或者第二链中去使用,所需的相关跨链资产(例如票据资产)也无法转移回目标业务子链。其中,这里的第一链以及第二链均为不同于目标业务子链的区块链。
其中,上述业务管理对象是指可对目标业务子链上的业务风险进行管理的实体对象(例如,向目标链申请对目标业务子链上的业务风险进行管理的个人用户、企业用户或机构),其具有针对目标业务子链的管理员账户。可以理解,业务管理对象的权限高于普通业务对象的权限,也就是说,在出现上述风险事务后,目标业务子链进入锁定状态,此时只有该业务管理对象基于目标业务子链上存在的业务风险所生成的第二风险处理交易可以被提交到目标业务子链上,除此之外的其他业务交易则不能提交到目标业务子链上(具体可通过目标业务子链上的子链监测合约拒绝其他业务交易上链)。
进一步,在上述风险业务处理成功时,业务管理对象可以向目标共识节点发送用于请求解除风险事务的风险解除交易,目标共识节点可以调用子链监测控制合约执行风险解除交易,从而得到用于解除风险事务的风险解除信息,并可通过目标跨链中继将该风险解除信息发送至目标业务子网络中的验证节点,以使验证节点将上述投票反对高度(如链高度k)作为目标业务子链的目标链高度,同时可以将目标业务子链的业务状态由锁定状态恢复为解锁状态,此时目标业务子链可以恢复执行交易上链,即可以恢复正常业务交易的上链执行。此外,监测节点在探测到目标业务子链上存在上述风险解除信息时,可认为上述风险事务所指示的投票反对高度(如链高度k)以及在该投票反对高度之前的链高度上的业务风险已经被处理,则可以从目标链高度的下一链高度(如链高度k+1)所对应的区块开始进行监测投票处理(即从链高度k+1开始继续执行监测逻辑以及投票)。由此可见,通过上述投票反对和风险处理流程,相关部门(如税务管理部门)可以严格又灵活地完成风险处理,处理成功后区块链系统业务可自动恢复。
需要注意的是,上述第二类高度投票信息也会包含有监测节点的签名信息(也可称为第二签名信息),该监测节点的签名信息是由监测节点通过监测节点的私钥信息对投票反对高度进行签名后所得到的,因此,目标共识节点在获取到第二类高度投票信息时,也需要先对其中的签名信息进行签名验证,且在签名验证成功时,再进行后续的相关风险处理。此处的验签过程与上述目标共识节点对第一类高度投票信息中的签名信息的验签过程类似,这里不再进行赘述。
可以理解,本申请实施例采用了异步投票确认机制,即目标链对于针对目标业务子链的第一类高度投票信息(或者投票赞成信息)不是立即确认的,而是在子链监测控制合约中配置有一个异步时间,这样可以保证监测节点和目标共识节点不需要和目标业务子链完全实时同步,从而可以保证对目标业务子链的监测确认不会影响目标业务子链的实时业务性能;而目标链对于针对目标业务子链的第二类高度投票信息(或者投票反对信息)会立即提交处理,这样可以保证业务风险被快速处理,从而提升区块链系统的风险处理效率,且可以最大限度地维持目标业务子链的正常运行(即减少目标业务子链进入锁定状态的时间)。
可以理解,本申请实施例采用传递性投票的方式来对目标业务子链的链高度进行投票确认,对于监测节点而言,不需要对目标业务子链上的每个链高度都进行投票,例如,假设上述图4中的监测节点41a针对业务子链1进行监测投票,监测节点41a在第一投票时间戳(如时间戳T3)时,针对业务子链1进行投票确认的链高度(可称为第一时间确认高度)为100,而在第二投票时间戳(如时间戳T4)时,针对业务子链1进行投票确认的链高度(可称为第二时间确认高度)为105,则表示监测节点41a确认了101-105之间的全部链高度,即确认了这些链高度所对应的区块相关的业务资源数据(如区块中的交易数据、业务执行结果等)。其中,第二投票时间戳为第一投票时间戳的下一投票时间戳,且第二投票时间戳与第一投票时间戳之间的时间间隔为监测节点41a所配置的投票时间间隔(例如,1分钟),也就是说,监测节点41a可以基于其配置的投票时间间隔对业务子链1的某些链高度进行投票。相应的,对于目标共识节点而言,当其确认了目标业务子链上的某一链高度(例如,链高度100)时,则表示目标共识节点确认了该链高度之前的全部链高度(即链高度100之前的链高度)。由此可见,监测节点可以根据其配置的投票时间间隔一次性确认多个业务子链(如目标业务子链)的连续多个区块,因此可以避免在目标链上出现频繁的高度确认交易,从而提升高度确认效率。
基于此,上述业务对象或与相关业务(如票据业务或票据衍生业务)相关联的外部业务方在跨链查询目标业务子链上的业务资源数据时,可以根据是否需要被监测确认的需求,向目标链查询并验证其需要查询的业务资源数据所在的链高度是否是目标业务子链已经被确认的链高度。具体的,业务对象可以通过业务终端向目标共识节点发送子链数据查询请求(可称为第一子链数据查询请求),目标共识节点在获取到该子链数据查询请求时,可以通过子链监测控制合约(具体可以为子链监测控制合约中的高度读取方法)读取目标业务子链的目标链高度,且可以将子链数据查询请求所指示的待验证链高度与读取到的目标链高度进行比较,以得到对应的比较结果。可以理解,在该比较结果指示待验证链高度小于或等于目标链高度时,目标共识节点可以生成上述子链数据查询请求对应的子链查询响应信息,并将子链查询响应信息返回给业务终端。其中,子链查询响应信息用于指示业务对象所查询的待验证链高度为目标业务子链上已确认的链高度,这样,业务对象可以信赖该待验证链高度上相关业务执行结果的正确性和可靠性,因此可以通过业务终端向目标业务子链请求获取该待验证链高度上的某些业务资源数据(例如相关电子票据中某些授权可见的票据信息)。反之,当上述比较结果指示待验证链高度大于目标链高度,则表示业务对象所查询的待验证链高度为目标业务子链上未被确认的链高度,有存在业务风险的可能性,此时目标共识节点可以向业务终端发送子链查询失败信息,用于指示上述待验证链高度为目标业务子链上未被确认的链高度。
可选的,目标共识节点在接收到上述子链数据查询请求时,也可以将从目标链上读取到的目标业务子链的目标链高度直接返回给业务终端,由业务终端对目标链高度和待验证链高度进行比较。
可选的,监测节点上也可以同步备份目标链每次所确认的链高度(如上述目标链高度),因此,业务对象也可以通过业务终端向监测节点发送第二子链数据查询请求,以向监测节点查询并验证其需要查询的业务资源数据所在的链高度是否是目标业务子链已经被确认的链高度,其中,监测节点执行的验证过程与上述目标共识节点执行的验证过程类似,这里不再进行赘述。
需要注意的是,在目标业务执行完毕后,目标业务子网络下线关停,相关的监测节点也会退出对目标业务子链的监测。
上述可知,本申请实施例提供了一种多区块链架构中的业务子链监测方案,对于在多区块链架构中创建的任意一个业务子链(如上述目标业务子链),需要对该业务子链进行监测的监测节点可以作为对应的注册节点(如上述目标注册节点)在子链监测控制合约中进行身份注册,且可以灵活定制自身针对该业务子链的监测逻辑。同时,可以通过目标链上部署的子链监测控制合约以及监测节点所定制的监测逻辑,在多区块链架构中实现对任意业务子链的灵活监测。此外,由于目标链和监测节点均独立于业务子链,且采用异步投票确认机制对业务子链进行监测确认,因此相关子链业务仍可以在业务子链上有序执行,而不影响业务子链的独立运行和实时业务性能。此外,本申请实施例采用的传递性投票的实现方案可以有效地支持监测节点完成批量确认,减少目标链上的高度确认交易,从而提高整个区块链系统的性能,并节省存储空间。
进一步的,请参见图6,图6是本申请实施例提供的一种多区块链数据处理方法的流程示意图。如图6所示,该方法可以由目标业务子网络中的验证节点执行,比如,该验证节点可以为上述图1所示的业务子网络500a中的任意一个验证节点。该方法具体可以包括以下步骤S201-步骤S202:
步骤S201,接收目标共识节点发送的目标业务子链的目标链高度所对应的高度确认信息;
可以理解,在目标业务子网络启动后,该目标业务子网络中的验证节点可以通过部署在目标业务子链上的子链业务合约执行业务对象所请求的目标业务,从而可以基于得到的业务执行结果不断生成新的区块并添加到目标业务子链中。在此过程中,与目标链相关联的监测节点可以基于其监测逻辑对目标业务子链进行监测,具体可通过传递性投票的方式确认目标业务子链的链高度以及及时反馈业务风险。
可以理解,目标业务子网络中的验证节点可以通过目标跨链中继接收上述目标共识节点发送的高度确认信息,该高度确认信息可用于指示目标业务子链的目标链高度。其中,该高度确认信息是由目标共识节点通过目标链上部署的用于对目标业务子链进行控制的子链监测控制合约所生成的;目标业务子链的目标链高度是目标共识节点基于获取到的与目标链相关联的监测节点针对目标业务子链的链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约所确定的;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;链高度投票信息的投票类型是在目标共识节点通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份所确定的。其中,目标共识节点生成高度确认信息的具体过程可以参见上述图5所对应的实施例,这里不再进行赘述。
步骤S202,将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约,基于目标链高度确定执行业务对象所请求的目标业务后的链高度。
具体的,验证节点可以将上述高度确认信息所对应的目标链高度写入子链监测合约,可以理解,该子链监测合约是在目标业务子链启动时,通过从目标链上获取到的目标业务子链的创世区块所部署的智能合约,从而可以保证目标业务子链会受到目标链上的子链监测控制合约的监测和控制。此外,验证节点可以获取从目标链上同步来的缓冲高度,可选的,验证节点可以在接收到该高度确认信息时,向目标链请求同步相应的缓冲高度;或者,该缓冲高度可以包含在高度确认信息中下发给验证节点;又或者,在该缓冲高度未调整更新的情况下,验证节点可以在本地缓存中获取之前所存储的缓冲高度。随后,验证节点可以将该缓冲高度与目标链高度的高度之和作为出块高度阈值,例如,在缓冲高度为F(F为正整数),目标链高度为k时,相应的出块高度阈值等于(F+k)。
进一步,验证节点可以调用目标业务子链上的子链业务合约执行业务对象所请求的目标业务,以得到目标业务执行结果,进而可基于目标业务执行结果生成具有目标区块高度的提议区块,并可对该提议区块进行上链处理,可以理解,目标业务子网络中的所有验证节点均需要对该提议区块进行区块共识,且在区块共识通过时才可以将该提议区块添加至目标业务子链。此时,验证节点可以基于目标区块高度和出块高度阈值确定执行目标业务后的链高度,其中,目标区块高度大于目标链高度且小于或等于出块高度阈值。例如,以业务子链X为例,假设其对应的缓冲高度设置为F,当前确认的目标链高度为k,则在业务子链X已经确认链高度k的情况下,业务子链X仍可以在链高度k上继续累加出块到(F+k)的链高度。而当业务子链X的链高度达到(F+k)(即出块高度阈值)后,如果目标链上仍未对k以后的链高度进行确认,则业务子链X上的子链监测合约会拒绝其他任何交易上链,直到业务子链X上更多链高度被确认。
具体的,本申请实施例可以将目标业务子链(如上述业务子链X)上位于目标链高度(如链高度k)之后的链高度作为待确认链高度;可以理解,在待确认链高度达到出块高度阈值(如F+k),且未获取到目标共识节点针对待确认链高度的更新高度确认信息时,验证节点可以通过目标业务子链上的子链监测合约将目标业务子链的业务状态设置为锁定状态,此时,处于锁定状态的目标业务子链停止执行交易上链;可选的,若验证节点获取到了目标共识节点针对待确认链高度发送的更新高度确认信息,则可以将更新高度确认信息所对应的待确认链高度写入子链监测合约,且将目标业务子链的业务状态由锁定状态恢复为解锁状态,此时目标业务子链可以继续执行目标业务,并可以在上述更新高度确认信息所对应的链高度上继续累加出块。可选的,可以理解,上述更新高度确认信息所确认的链高度还可以为目标链高度之后的任意链高度,例如可以为位于目标链高度和出块高度阈值之间的链高度,也可以为大于出块高度阈值的链高度。
其中,可以理解,上述缓冲高度可以由目标链配置,一般为了业务无缝衔接,缓冲高度的数值会设置得比较大,且可以根据业务量情况动态调整,本申请实施例对缓冲高度的具体取值不做限定。通过设置缓冲高度可以实现异步投票确认机制,从而保证监测节点和目标共识节点不需要和业务子链完全实时同步,这样,即使目标链还未对业务子链上的某些链高度进行确认,短时间内也不会影响业务子链的实时业务性能。
此外,在监测节点发现目标业务子链上存在业务风险时,验证节点也可以与目标共识节点共同进行相关的风险处理。具体的,假设上述链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息;该第二类高度投票信息是监测节点在检测到目标业务子链上存在业务风险时所确定的,第二类高度投票信息可包含监测节点针对目标业务子链的链高度进行投票时的投票反对高度,且第二类高度投票信息处于监测节点基于风险事务所确定的第一风险处理交易中;这里的风险事务是监测节点基于投票反对高度所生成的。基于此,在验证节点接收到目标共识节点发送的子链锁定信息时,可以基于子链锁定信息停止执行与上述风险事务相关联的风险业务,且可以将目标业务子链的业务状态设置为锁定状态,此时,处于锁定状态的目标业务子链停止执行交易上链,且停止执行与多区块链所包含的第一链以及第二链之间的跨链交互;其中,第一链以及第二链均为不同于目标业务子链的区块链;上述子链锁定信息是由目标共识节点将第一风险处理交易所指示的风险事务写入子链监测控制合约后所得到的。
进一步地,在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,验证节点可以基于第二风险处理交易对风险业务进行风险消除处理(例如清除存在风险或错误的业务资源数据、回滚、停止相关用户或对象的业务权限等),并可在风险业务处理成功时,向业务管理对象返回风险成功处理信息。这里的风险成功处理信息用于指示业务管理对象在风险业务处理成功时向目标共识节点发送风险解除交易,其中,该风险解除交易用于指示目标共识节点通过子链监测控制合约生成用于解除风险事务的风险解除信息。进一步地,验证节点可以接收目标共识节点返回的风险解除信息,并可以基于风险解除信息将上述投票反对高度作为目标业务子链的目标链高度,同时可以将目标业务子链的业务状态由锁定状态恢复为解锁状态。其中,目标共识节点所执行的相关风险处理过程可以参见上述图5所对应实施例中的步骤S104,这里不再进行赘述。
上述可知,本申请实施例可以通过目标链上的子链监测控制合约以及监测节点所定制的监测逻辑,在多区块链架构中实现对任意业务子链的灵活监测。此外,由于目标链和监测节点均独立于业务子链,且采用异步投票确认机制对业务子链进行监测确认,因此相关子链业务仍可以在业务子链上有序执行,即本申请实施例提供的业务子链监测方案不影响业务子链的独立运行。
进一步的,请参见图7,图7是本申请实施例提供的一种多区块链数据处理方法的流程示意图。如图7所示,该方法可以由与上述目标链相关联的监测节点执行,比如,该监测节点可以为上述图4所示的监测节点集群中的任意一个监测节点。该方法具体可以包括以下步骤S301-步骤S303:
步骤S301,获取监测节点针对目标业务子链的链高度进行投票时的链高度投票信息;
可以理解,当监测节点希望监测目标业务子链时,需要在目标链上部署的子链监测控制合约中进行身份注册,具体的,监测节点可以向目标共识节点发送用于请求对目标业务子链进行监测的子链监测请求,该子链监测请求中可以包含该监测节点的注册节点信息(如监测节点的节点标识、针对目标业务子链申请注册的节点注册身份、想要监测的目标业务子链的链标识、针对目标业务子链的监测逻辑等)。在目标共识节点接收到该子链监测请求时,可以获取该子链监测请求中的注册节点信息,并可以调用目标链上的子链监测控制合约对该监测节点提交的注册节点信息进行身份注册,在注册成功后,目标共识节点可以为该监测节点配置相应的公钥证书,且注册成功的监测节点会作为注册节点被记录在子链监测控制合约中。
进一步,监测节点在向目标链上部署的子链监测控制合约进行身份注册后,可以基于其监测逻辑对目标业务子链进行监测投票处理,从而可以得到针对目标业务子链的链高度进行投票时的链高度投票信息。其中,子链监测控制合约用于对目标业务子链进行控制,且子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点。
其中,可以理解,监测节点可以灵活定制自己的监测逻辑,该监测逻辑可以包含监测节点针对目标业务子链配置的投票时间间隔、具体的投票确认方式和业务风险处理方式等,这里将不对监测逻辑的具体内容进行限定。监测节点基于其监测逻辑对目标业务子链进行监测投票处理的具体过程可以为:在获取到目标业务子链上的待确认区块时,基于监测节点配置的监测逻辑对该待确认区块进行区块验证,得到区块验证结果;可以理解,可选的,当区块验证结果指示区块验证成功时,可以将该待确认区块对应的区块高度作为监测节点本次的投票确认高度,即监测节点对该待确认区块对应的区块高度投赞成票;反之,可选的,当区块验证结果指示区块验证失败(即检测到待确认区块中存在业务风险)时,可以将该待确认区块对应的区块高度作为监测节点本次的投票反对高度,即监测节点对该待确认区块对应的区块高度投反对票。随后,监测节点可以将上述投票确认高度或者投票反对高度作为监测节点针对待确认区块的投票结果,且可以基于监测节点的私钥信息对该投票结果进行签名,以得到监测节点的签名信息,进而可以基于得到的投票结果和签名信息生成针对目标业务子链的链高度投票信息。
其中,可以理解,为了获取到上述待确认区块,监测节点可以向目标业务子网络中的验证节点发送数据同步请求,该数据同步请求用于指示验证节点将待确认区块发送给监测节点。在这个过程中会涉及到验证节点对该数据同步请求的验证,例如,对其携带的监测节点的签名信息进行验签,验签成功时才会将待确认区块返回给监测节点。可以理解,这里的待确认区块是指目标链没有确认过的区块,例如,该待确认区块具体可以为当前目标业务子链上具有最大区块高度的区块。
其中,对上述待确认区块进行区块验证,可包括对相关出块节点(即生成该待确认区块的验证节点)身份的验证,以及对该待确认区块内容的验证,如对该待确认区块中的默克尔树根的验证、对该待确认区块中与前述默克尔树根相关联的交易数据的验证、对该待确认区块的区块头中的父区块哈希值的验证等,还可以包含对该待确认区块的冲突检测、风险检测等。
可以理解,监测节点不需要对目标业务子链上的每个链高度都进行投票,而是可以采用传递性投票的方式来对目标业务子链的链高度进行投票确认,这样监测节点可以实现批量确认,从而提升高度确认效率。
此外,在检测到上述待确认区块中存在业务风险时,监测节点可以基于对应的投票反对高度生成风险事务,并可以基于该风险事务向目标共识节点发送第一风险处理交易,最终可以通过目标共识节点和验证节点处理该业务风险,其具体过程可以参见上述图5所对应实施例中的步骤S104,这里不再进行赘述。
步骤S302,将链高度投票信息发送至目标共识节点,以使目标共识节点在通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型,且在基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约确定目标业务子链的目标链高度时,通过子链监测控制合约生成目标链高度对应的高度确认信息;高度确认信息用于发送至目标业务子网络中的验证节点;验证节点用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度;
可以理解,监测节点可以将获取到的链高度投票信息发送至目标共识节点,以便目标共识节点可以根据该链高度投票信息确定目标业务子链的目标链高度,其具体过程可以参见上述图5所对应的实施例,这里不再进行赘述。
步骤S303,从子链监测合约中获取目标链高度,基于目标链高度对目标业务子链进行监测投票处理。
可以理解,在验证节点将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约后,监测节点可以向验证节点发送链高度获取请求,该链高度获取请求用于指示验证节点将从子链监测合约中获取到的目标链高度返回给监测节点,进而监测节点可以在已被确认的目标链高度的基础上继续对目标业务子链进行监测投票处理。
可以理解,监测节点加入和退出等生命周期均在目标链中被完整管理,且监测节点可以自由选择其要监测的子链业务,以及灵活定制自己的监测逻辑,而不要求对子链账本数据进行严格同步,只需要实现投票接口即可以加入监测服务集群中,并且根据具体监测角色的不同可区分一票否决型监测节点和普通型监测节点。此外,本申请实施例所采用的异步投票确认机制保证了监测确认不会影响业务子链的实时业务性能,同时,传递性投票的实现方案可以有效地支持监测节点完成批量确认,减少目标链上的高度确认交易,以提高整个区块链系统的性能,并节省存储空间。此外,采用本申请实施例中提供的投票反对和风险处理流程,相关部门可以严格又灵活地完成风险处理,处理后区块链系统业务自动恢复。
进一步的,请参见图8,图8是本申请实施例提供的一种多区块链数据处理方法的交互流程示意图。如图8所示,该方法可以由上述监测节点、目标链网络中的目标共识节点以及目标业务子网络中的验证节点共同执行。该方法具体可以包括以下步骤:
步骤S401,监测节点向目标共识节点发送针对目标业务子链的子链监测请求;子链监测请求中包含监测节点的注册节点信息;
步骤S402,目标共识节点在接收到子链监测请求时,调用目标链上的子链监测控制合约对监测节点提交的注册节点信息进行身份注册,且在身份注册成功时,将监测节点作为针对目标业务子链进行身份注册的目标注册节点,在子链监测控制合约中添加目标注册节点;
步骤S403,在身份注册成功后,监测节点对目标业务子链进行监测投票处理,且向目标共识节点发送针对目标业务子链的链高度投票信息;
步骤S404,在接收到链高度投票信息时,目标共识节点通过目标链上的子链监测控制合约确定监测节点为目标注册节点;
步骤S405,若链高度投票信息包含监测节点针对目标业务子链的第一类高度投票信息,则目标共识节点基于目标注册节点的节点注册身份确定第一类高度投票信息的投票类型;
步骤S406,目标共识节点基于第一类高度投票信息、第一类高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度;
步骤S407,目标共识节点通过子链监测控制合约生成目标链高度对应的高度确认信息,将高度确认信息发送至验证节点;
步骤S408,验证节点将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约,且基于目标链高度确定执行业务对象所请求的目标业务后的链高度;
步骤S409,若链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息,则监测节点基于第二类高度投票信息中的投票反对高度生成风险事务,且基于风险事务向目标共识节点发送第一风险处理交易;
步骤S410,目标共识节点将第一风险处理交易所指示的风险事务写入子链监测控制合约,生成与风险事务相关联的子链锁定信息,且将子链锁定信息发送至验证节点;
步骤S411,验证节点在接收到子链锁定信息时,停止执行与风险事务相关联的风险业务,将目标业务子链的业务状态设置为锁定状态;
步骤S412,验证节点在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于第二风险处理交易对风险业务进行风险消除处理,向业务管理对象返回风险成功处理信息;
步骤S413,目标共识节点获取业务管理对象在风险业务处理成功时所发送的风险解除交易时,调用子链监测控制合约执行风险解除交易,得到用于解除风险事务的风险解除信息,将风险解除信息发送至验证节点;
步骤S414,验证节点在接收到目标共识节点返回的风险解除信息时,基于风险解除信息将投票反对高度作为目标业务子链的目标链高度,且将目标业务子链的业务状态由锁定状态恢复为解锁状态;
步骤S415,监测节点在探测到目标业务子链上存在风险解除信息时,从目标链高度的下一链高度所对应的区块开始进行监测投票处理。
可以理解,上述步骤S405-步骤S408与步骤S409-步骤S415之间为并列关系,本申请实施例对这两个部分执行的先后顺序不做限定。其中,上述步骤S401-步骤S415的具体实现过程可以参见上述图5-图7所对应的实施例,这里不再进行赘述。另外,对采用相同方法所得到的有益效果描述,也不再进行赘述。
可以理解的是,当区块链被用于政务机构(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,可以采用“业务网络—核心共识网络”这一分层区块链结构,为便于理解,可以参见上述图2所示的区块链电子票据三链网络的网络结构。
在区块链电子票据场景下,业务层、路由代理层以及核心共识网络层组成了整个完整区块链业务体系。其中,业务层处于见证网络(即业务网络)中,该业务层中的业务节点可以包括电子税局对应的终端设备、企业用户对应的终端设备以及消费用户对应的终端设备。其中,电子税局可以是指税局专网中的地方税局,企业用户可以为公有云中的开票服务商、报销服务商或者零售企业(例如,KA企业,即大型零售客户和重点零售客户企业)等,消费用户可以为私有云中的支付服务商、流转服务商或者零售企业等。其中,该业务网络中的业务节点主要用于执行交易业务,不参与记账共识。可以理解的是,在不同业务对象通过对应的业务节点请求执行不同的交易业务时,各业务对象会接入到对应的核心共识网络中,以便后续可以在相应的区块链上执行相关的交易业务(例如,在票据链上执行票据业务)。
其中,路由代理层中的N个中继节点(即路由节点)可以用于对业务层和核心共识网络层进行网络隔离。其中,每个中继节点可以具有点对点服务(即P2P服务)、路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在P2P网络中的服务,基于一类特定的网络协议,P2P网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点具有的基本功能,可以用于节点之间的通信。与证书缓存相关联的证书,可以指公钥证书体系(PKI,Public Key Infrastructure),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(CA,Certificate Authority)。认证服务可以用于验证接收到的数据的数据格式、节点合法性等。可以理解的是,在本申请实施例中,中继节点可以将业务节点生成的交易数据转发至共识节点。
其中,核心共识网络层中的共识节点(即记账节点)可以为税务专网中的可信节点。可以理解的是,每个共识节点均具有打包出块的能力,即可以对中继节点发送的交易数据进行打包出块,以成功写入核心共识网络层中的区块链中。
其中,上述核心共识网络层可以包括管理链网络、票据链网络、应用合约链网络,基于此,核心共识网络层中的区块链可以为包含管理链、票据链以及应用合约链的多区块链。可以理解的是,业务对象可以将通过与业务终端相关联的业务节点,向核心共识网络层中的管理共识节点申请执行目标业务(如上述票据临时业务)的权限,其中,该管理共识节点为核心共识网络层包含的管理链网络中的共识节点。进一步,在业务对象获得授权后,可以向管理链申请在上述核心共识网络层中创建目标业务子网络(例如,业务子网络A),且该目标业务子网络由来源于票据链网络的第一验证节点和来源于应用合约链网络的第二验证节点组成。后续通过该目标业务子网络与票据链网络、应用合约链网络之间的跨链交互,可以获取与上述目标业务相关联的资源来执行该目标业务。
可以理解,在上述目标业务子网络启动后,可以有与管理链相关联的多个监测节点对该目标业务子网络对应的目标业务子链进行监测,例如,通过传递性投票的方式确认该目标业务子链的链高度,以及在检测到该目标业务子链上存在业务风险时进行相应的风险反馈,具体实现方式可以参见上述图5-图8所对应的实施例,这里不再进行赘述。由此可见,本申请实施例可以在多区块链架构中实现对业务子链的灵活监测,且不影响业务子链的独立运行。
请参见图9,是本申请实施例提供的一种多区块链数据处理装置的结构示意图。该多区块链可以包含目标链和目标业务子链,这里的目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络,且目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的。如图9所示,多区块链数据处理装置1可应用于目标共识节点中,该目标共识节点可以为目标链网络(例如,上述共识网络100a)中的任意一个区块链节点,例如,该目标共识节点可以为上述图1所对应实施例中的共识节点10a。应当理解,该多区块链数据处理装置1可以是运行于区块链节点(比如,前述共识节点10a)的一个计算机程序(包括程序代码),例如该多区块链数据处理装置1为一个应用软件;可以理解的是,该多区块链数据处理装置1可以用于执行本申请实施例提供的多区块链数据处理方法中的相应步骤。如图9所示,该多区块链数据处理装置1可以包括:信息获取模块11、类型确定模块12、高度确定模块13、信息发送模块14、风险处理模块15、风险解除模块16、数据查询模块17、查询响应模块18;
信息获取模块11,用于获取与目标链相关联的监测节点针对目标业务子链的链高度投票信息;目标链上部署有用于对目标业务子链进行控制的子链监测控制合约;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;
类型确定模块12,用于在通过目标链上的子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型;
在一种实施方式中,链高度投票信息包含监测节点针对目标业务子链的第一类高度投票信息;第一类高度投票信息包含监测节点的节点标识、监测节点的公钥证书、监测节点针对目标业务子链的链高度进行投票时的投票确认高度、以及监测节点的签名信息;监测节点的签名信息是由监测节点通过监测节点的私钥信息对投票确认高度进行签名后所得到的;子链监测控制合约中包含与目标业务子链相关联的注册节点的节点注册配置信息;节点注册配置信息中包含注册节点的节点标识以及注册节点的公钥证书;注册节点的公钥证书是由目标共识节点调用子链监测控制合约对注册节点提交的注册节点信息进行身份注册后所得到的;
类型确定模块12可以包括:证书查找单元121、签名验证单元122、节点确定单元123、类型确定单元124;
证书查找单元121,用于从第一类高度投票信息中获取监测节点的节点标识,在注册节点的节点标识中查找与监测节点的节点标识相同的目标节点标识,且在查找到目标节点标识时,从注册节点的公钥证书中获取目标节点标识对应的目标注册节点的公钥证书,且将获取到的目标注册节点的公钥证书作为目标公钥证书;
签名验证单元122,用于将第一类高度投票信息中包含的监测节点的公钥证书作为待处理公钥证书,基于待处理公钥证书以及目标公钥证书对监测节点的签名信息进行签名验证,得到监测节点的签名验证结果;
其中,签名验证单元122可以包括:证书比对子单元1221、签名验证子单元1222;
证书比对子单元1221,用于将待处理公钥证书中的证书数据信息作为待处理证书信息,且将目标公钥证书中的证书数据信息作为目标证书信息;将待处理证书信息与目标证书信息进行比对,得到比对结果;
签名验证子单元1222,用于在比对结果指示待处理证书信息与目标证书信息一致时,基于待处理公钥证书中的公钥信息对监测节点的签名信息进行签名验证,并将签名验证成功时的验证结果作为监测节点的签名验证结果。
其中,证书比对子单元1221、签名验证子单元1222的具体实现方式,可以参见上述图5所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
节点确定单元123,用于在监测节点的签名验证结果指示签名验证成功时,确定监测节点为目标注册节点;
类型确定单元124,用于基于目标注册节点的节点注册身份确定第一类高度投票信息的投票类型。
在一种实施方式中,节点注册配置信息中包含注册节点针对目标业务子链所注册的第一类型节点注册身份或第二类型节点注册身份;
类型确定单元124可以包括:身份查找子单元1241、第一类型确定子单元1242、第二类型确定子单元1243;
身份查找子单元1241,用于在节点注册配置信息中查找目标节点标识对应的目标注册节点的节点注册身份,且将查找到的目标注册节点的节点注册身份作为目标节点注册身份;
第一类型确定子单元1242,用于在目标节点注册身份为第一类型节点注册身份时,基于第一类型节点注册身份确定第一类高度投票信息的投票类型为第一投票类型;
第二类型确定子单元1243,用于在目标节点注册身份为第二类型节点注册身份时,基于第二类型节点注册身份确定第一类高度投票信息的投票类型为第二投票类型。
其中,身份查找子单元1241、第一类型确定子单元1242、第二类型确定子单元1243的具体实现方式,可以参见上述图5所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
其中,证书查找单元121、签名验证单元122、节点确定单元123、类型确定单元124的具体实现方式,可以参见上述图5所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
高度确定模块13,用于基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约,确定目标业务子链的目标链高度;
在一种实施方式中,监测节点包括第一类监测节点和第二类监测节点;第一类监测节点为在子链监测控制合约中注册有第一类型节点注册身份的监测节点;第二类监测节点为在子链监测控制合约中注册有第二类型节点注册身份的监测节点;第一类型节点注册身份的身份等级高于第二类型节点注册身份的身份等级;链高度投票信息包含第一类监测节点和第二类监测节点针对目标业务子链的第一类高度投票信息;第一类高度投票信息包含第一类监测节点基于第一类型节点注册身份所确定的具有第一投票类型的第一链高度投票信息、以及第二类监测节点基于第二类型节点注册身份所确定的具有第二投票类型的第二链高度投票信息;
高度确定模块13可以包括:高度获取单元131、高度确定单元132;
高度获取单元131,用于将第一链高度投票信息中包含的第一类监测节点针对目标业务子链的链高度进行投票时的投票确认高度作为第一投票确认高度,且将第二链高度投票信息中包含的第二类监测节点针对目标业务子链的链高度进行投票时的投票确认高度作为第二投票确认高度;
高度确定单元132,用于基于第一投票确认高度,调用子链监测控制合约确定针对目标业务子链的参照投票高度阈值,且基于参照投票高度阈值、第一投票确认高度、以及第二投票确认高度确定目标业务子链的目标链高度。
其中,当第一类监测节点的数量为M1个时,第一投票确认高度的数量为M1个,M1为正整数;当第二类监测节点的数量为M2个时,第二投票确认高度的数量为M2个,M2为正整数;
高度确定单元132可以包括:第一高度确定子单元1321、第二高度确定子单元1322、第三高度确定子单元1323;
第一高度确定子单元1321,用于调用子链监测控制合约中的高度确认方法,将M1个第一投票确认高度中具有最小高度的第一投票确认高度作为目标业务子链的参照投票高度阈值;
第二高度确定子单元1322,用于在M1个第一投票确认高度以及M2个第二投票确认高度中获取小于或等于参照投票高度阈值的投票确认高度,将获取到的投票确认高度作为候选投票高度,且将候选投票高度中具有最大高度的投票确认高度作为目标投票确认高度;
第三高度确定子单元1323,用于将M1个第一投票确认高度以及M2个第二投票确认高度中大于或等于目标投票确认高度的投票确认高度作为待处理高度,当通过高度确认方法检测到待处理高度的数量大于投票数量阈值时,将目标投票确认高度作为目标业务子链的目标链高度;投票数量阈值大于或等于(M1+M2)/2。
其中,第一高度确定子单元1321、第二高度确定子单元1322、第三高度确定子单元1323的具体实现方式,可以参见上述图5所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,高度获取单元131、高度确定单元132的具体实现方式,可以参见上述图5所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
信息发送模块14,用于通过子链监测控制合约生成目标链高度对应的高度确认信息,将高度确认信息发送至目标业务子网络中的验证节点,以使验证节点将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度;
其中,信息发送模块14可以包括:交易打包单元141、交易执行单元142、信息发送单元143;
交易打包单元141,用于基于链高度投票信息和目标链高度构造高度确认交易,在满足与目标链相关联的交易打包条件时,将高度确认交易打包至目标链的目标区块中,将包含高度确认交易的目标区块提交到目标链上;
交易执行单元142,用于调用目标链上的子链监测控制合约执行目标区块中的高度确认交易,得到目标链高度对应的高度确认信息;
信息发送单元143,用于通过目标跨链中继将高度确认信息发送至目标业务子网络中的验证节点;目标跨链中继用于隔离目标业务子网络和目标链网络。
其中,交易打包单元141、交易执行单元142、信息发送单元143的具体实现方式,可以参见上述图5所对应实施例中对步骤S104的描述,这里将不再继续进行赘述。
在一种实施方式中,链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息;第二类高度投票信息是监测节点在检测到目标业务子链上存在业务风险时所确定的;第二类高度投票信息包含监测节点针对目标业务子链的链高度进行投票时的投票反对高度;第二类高度投票信息处于监测节点基于风险事务所确定的第一风险处理交易中;风险事务是监测节点基于投票反对高度所生成的;
风险处理模块15,用于在获取到监测节点发送的第一风险处理交易时,将第一风险处理交易所指示的风险事务写入子链监测控制合约,将目标业务子链上大于投票反对高度的链高度确定为无效链高度,且生成与风险事务相关联的子链锁定信息;将子链锁定信息发送至目标业务子网络中的验证节点,以使验证节点停止执行与风险事务相关联的风险业务,且在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于第二风险处理交易对风险业务进行风险消除处理;子链锁定信息还用于指示验证节点将目标业务子链的业务状态设置为锁定状态,处于锁定状态的目标业务子链停止执行交易上链,且停止执行与多区块链所包含的第一链以及第二链之间的跨链交互;第一链以及第二链均为不同于目标业务子链的区块链;
风险解除模块16,用于获取业务管理对象在风险业务处理成功时所发送的风险解除交易时,调用子链监测控制合约执行风险解除交易,得到用于解除风险事务的风险解除信息,将风险解除信息发送至验证节点,以使验证节点将投票反对高度作为目标业务子链的目标链高度,且将目标业务子链的业务状态由锁定状态恢复为解锁状态;监测节点用于在探测到目标业务子链上存在风险解除信息时,从目标链高度的下一链高度所对应的区块开始进行监测投票处理;
数据查询模块17,用于在获取到业务对象通过业务终端所发送的子链数据查询请求时,通过子链监测控制合约读取目标业务子链的目标链高度,将子链数据查询请求所指示的待验证链高度与读取到的目标链高度进行比较,得到比较结果;
查询响应模块18,用于在比较结果指示待验证链高度小于或等于目标链高度时,生成子链数据查询请求对应的子链查询响应信息,将子链查询响应信息返回给业务终端;子链查询响应信息用于指示业务对象所查询的待验证链高度为目标业务子链上已确认的链高度。
其中,信息获取模块11、类型确定模块12、高度确定模块13、信息发送模块14、风险处理模块15、风险解除模块16、数据查询模块17、查询响应模块18的具体实现方式,可以参见上述图5所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。应当理解,对采用相同方法所得到的有益效果描述,也不再进行赘述。
请参见图10,是本申请实施例提供的一种多区块链数据处理装置的结构示意图。该多区块链可以包含目标链和目标业务子链,这里的目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络,且目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的。如图10所示,多区块链数据处理装置2可应用于验证节点中,该验证节点可以为目标业务子网络(例如,上述业务子网络500a)中的任意一个区块链节点,例如,该验证节点可以为上述图1所对应实施例中的共识节点11a。应当理解,该多区块链数据处理装置2可以是运行于区块链节点(比如,前述共识节点11a)的一个计算机程序(包括程序代码),例如该多区块链数据处理装置2为一个应用软件;可以理解的是,该多区块链数据处理装置2可以用于执行本申请实施例提供的多区块链数据处理方法中的相应步骤。如图10所示,该多区块链数据处理装置2可以包括:信息接收模块21、高度写入模块22、第一锁定模块23、子链解锁模块24、第二锁定模块25、风险消除模块26、风险解除模块27;
信息接收模块21,用于接收目标共识节点发送的目标业务子链的目标链高度所对应的高度确认信息;高度确认信息是由目标共识节点通过目标链上部署的用于对目标业务子链进行控制的子链监测控制合约所生成的;目标业务子链的目标链高度是目标共识节点基于获取到的与目标链相关联的监测节点针对目标业务子链的链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约所确定的;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;链高度投票信息的投票类型是在目标共识节点通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份所确定的;
高度写入模块22,用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约,基于目标链高度确定执行业务对象所请求的目标业务后的链高度。
其中,高度写入模块22可以包括:阈值确定单元221、业务执行单元222;
阈值确定单元221,用于将高度确认信息所对应的目标链高度写入子链监测合约,获取从目标链上同步来的缓冲高度,将缓冲高度与目标链高度的高度之和作为出块高度阈值;
业务执行单元222,用于调用目标业务子链上的子链业务合约执行业务对象所请求的目标业务,得到目标业务执行结果,基于目标业务执行结果生成具有目标区块高度的提议区块,且基于目标区块高度和出块高度阈值确定执行目标业务后的链高度;目标区块高度大于目标链高度且小于或等于出块高度阈值。
其中,阈值确定单元221、业务执行单元222的具体实现方式,可以参见上述图6所对应实施例中对步骤S202的描述,这里将不再继续进行赘述。
第一锁定模块23,用于将目标业务子链上位于目标链高度之后的链高度作为待确认链高度;在待确认链高度达到出块高度阈值,且未获取到目标共识节点针对待确认链高度的更新高度确认信息时,通过子链监测合约将目标业务子链的业务状态设置为锁定状态;处于锁定状态的目标业务子链停止执行交易上链;
子链解锁模块24,用于在获取到目标共识节点针对待确认链高度发送的更新高度确认信息时,将更新高度确认信息所对应的待确认链高度写入子链监测合约,且将目标业务子链的业务状态由锁定状态恢复为解锁状态;
在一种实施方式中,链高度投票信息包含监测节点针对目标业务子链的第二类高度投票信息;第二类高度投票信息是监测节点在检测到目标业务子链上存在业务风险时所确定的;第二类高度投票信息包含监测节点针对目标业务子链的链高度进行投票时的投票反对高度;第二类高度投票信息处于监测节点基于风险事务所确定的第一风险处理交易中;风险事务是监测节点基于投票反对高度所生成的;
第二锁定模块25,用于在接收到目标共识节点发送的子链锁定信息时,基于子链锁定信息停止执行与风险事务相关联的风险业务,且将目标业务子链的业务状态设置为锁定状态;处于锁定状态的目标业务子链停止执行交易上链,且停止执行与多区块链所包含的第一链以及第二链之间的跨链交互;第一链以及第二链均为不同于目标业务子链的区块链;子链锁定信息是由目标共识节点将第一风险处理交易所指示的风险事务写入子链监测控制合约后所得到的;
风险消除模块26,用于在接收到与目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于第二风险处理交易对风险业务进行风险消除处理,向业务管理对象返回风险成功处理信息;风险成功处理信息用于指示业务管理对象在风险业务处理成功时向目标共识节点发送风险解除交易;风险解除交易用于指示目标共识节点通过子链监测控制合约生成用于解除风险事务的风险解除信息;
风险解除模块27,用于接收目标共识节点返回的风险解除信息,基于风险解除信息将投票反对高度作为目标业务子链的目标链高度,且将目标业务子链的业务状态由锁定状态恢复为解锁状态。
其中,信息接收模块21、高度写入模块22、第一锁定模块23、子链解锁模块24、第二锁定模块25、风险消除模块26、风险解除模块27的具体实现方式,可以参见上述图6所对应实施例中对步骤S201-步骤S202的描述,这里将不再继续进行赘述。应当理解,对采用相同方法所得到的有益效果描述,也不再进行赘述。
请参见图11,是本申请实施例提供的一种多区块链数据处理装置的结构示意图。该多区块链可以包含目标链和目标业务子链,这里的目标链对应的目标链网络独立于目标业务子链对应的目标业务子网络,且目标业务子网络是由目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的。如图11所示,多区块链数据处理装置3可应用于监测节点中,该监测节点可以为与目标链相关联的监测节点集群(例如,上述图4所示的监测节点集群)中的任意一个监测节点,例如,该监测节点可以为上述图4所对应实施例中的监测节点41a。应当理解,该多区块链数据处理装置3可以是运行于监测节点(比如,前述监测节点41a)的一个计算机程序(包括程序代码),例如该多区块链数据处理装置3为一个应用软件;可以理解的是,该多区块链数据处理装置3可以用于执行本申请实施例提供的多区块链数据处理方法中的相应步骤。如图11所示,该多区块链数据处理装置3可以包括:投票获取模块31、投票发送模块32、高度获取模块33;
投票获取模块31,用于获取监测节点针对目标业务子链的链高度进行投票时的链高度投票信息;目标链上部署有用于对目标业务子链进行控制的子链监测控制合约;子链监测控制合约中包含针对目标业务子链进行身份注册的目标注册节点;
投票发送模块32,用于将链高度投票信息发送至目标共识节点,以使目标共识节点在通过子链监测控制合约确定监测节点为目标注册节点时,基于目标注册节点的节点注册身份确定链高度投票信息的投票类型,且在基于链高度投票信息、链高度投票信息的投票类型、以及子链监测控制合约确定目标业务子链的目标链高度时,通过子链监测控制合约生成目标链高度对应的高度确认信息;高度确认信息用于发送至目标业务子网络中的验证节点;验证节点用于将高度确认信息所对应的目标链高度写入目标业务子链上的子链监测合约;子链监测合约用于指示验证节点基于目标链高度确定执行业务对象所请求的目标业务后的链高度;
高度获取模块33,用于从子链监测合约中获取目标链高度,基于目标链高度对目标业务子链进行监测投票处理。
其中,投票获取模块31、投票发送模块32、高度获取模块33的具体实现方式,可以参见上述图7所对应实施例中对步骤S301-步骤S303的描述,这里将不再继续进行赘述。应当理解,对采用相同方法所得到的有益效果描述,也不再进行赘述。
请参见图12,是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图5、图6、图7、图8任一个所对应实施例中对该多区块链数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的多区块链数据处理装置1、多区块链数据处理装置2以及多区块链数据处理装置3所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图5、图6、图7、图8任一个所对应实施例中对多区块链数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的多区块链数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图5、图6、图7、图8任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图13,图13是本申请实施例提供的一种多区块链数据处理系统的结构示意图。该多区块链数据处理系统4可以包含数据处理装置1a、数据处理装置2a和数据处理装置3a。其中,数据处理装置1a可以为上述图9所对应实施例中的多区块链数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图4所对应实施例中的共识节点40,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图10所对应实施例中的多区块链数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图4对应实施例中的验证节点42a,因此,这里将不再进行赘述。其中,数据处理装置3a可以为上述图11所对应实施例中的多区块链数据处理装置3,可以理解的是,该数据处理装置3a可以集成在上述图4对应实施例中的监测节点41a,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的多区块链数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (20)
1.一种多区块链数据处理方法,其特征在于,所述多区块链包含目标链和目标业务子链;所述目标链对应的目标链网络独立于所述目标业务子链对应的目标业务子网络;所述目标业务子网络是由所述目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;所述方法由所述目标共识节点执行,所述方法包括:
获取与所述目标链相关联的监测节点针对所述目标业务子链的链高度投票信息;所述目标链上部署有用于对所述目标业务子链进行控制的子链监测控制合约;所述子链监测控制合约中包含针对所述目标业务子链进行身份注册的目标注册节点;
在通过所述目标链上的所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份确定所述链高度投票信息的投票类型;
基于所述链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约,确定所述目标业务子链的目标链高度;
通过所述子链监测控制合约生成所述目标链高度对应的高度确认信息,将所述高度确认信息发送至所述目标业务子网络中的验证节点,以使所述验证节点将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约;所述子链监测合约用于指示所述验证节点基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度。
2.根据权利要求1所述的方法,其特征在于,所述链高度投票信息包含所述监测节点针对所述目标业务子链的第一类高度投票信息;所述第一类高度投票信息包含所述监测节点的节点标识、所述监测节点的公钥证书、所述监测节点针对所述目标业务子链的链高度进行投票时的投票确认高度、以及所述监测节点的签名信息;所述监测节点的签名信息是由所述监测节点通过所述监测节点的私钥信息对所述投票确认高度进行签名后所得到的;所述子链监测控制合约中包含与所述目标业务子链相关联的注册节点的节点注册配置信息;所述节点注册配置信息中包含所述注册节点的节点标识以及所述注册节点的公钥证书;所述注册节点的公钥证书是由所述目标共识节点调用所述子链监测控制合约对所述注册节点提交的注册节点信息进行身份注册后所得到的;
所述在通过所述目标链上的所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份确定所述链高度投票信息的投票类型,包括:
从所述第一类高度投票信息中获取所述监测节点的节点标识,在所述注册节点的节点标识中查找与所述监测节点的节点标识相同的目标节点标识,且在查找到所述目标节点标识时,从所述注册节点的公钥证书中获取所述目标节点标识对应的所述目标注册节点的公钥证书,且将获取到的所述目标注册节点的公钥证书作为目标公钥证书;
将所述第一类高度投票信息中包含的所述监测节点的公钥证书作为待处理公钥证书,基于所述待处理公钥证书以及所述目标公钥证书对所述监测节点的签名信息进行签名验证,得到所述监测节点的签名验证结果;
在所述监测节点的签名验证结果指示签名验证成功时,确定所述监测节点为所述目标注册节点;
基于所述目标注册节点的节点注册身份确定所述第一类高度投票信息的投票类型。
3.根据权利要求2所述的方法,其特征在于,所述基于所述待处理公钥证书以及所述目标公钥证书对所述监测节点的签名信息进行签名验证,得到所述监测节点的签名验证结果,包括:
将所述待处理公钥证书中的证书数据信息作为待处理证书信息,且将所述目标公钥证书中的证书数据信息作为目标证书信息;
将所述待处理证书信息与所述目标证书信息进行比对,得到比对结果;
在所述比对结果指示所述待处理证书信息与所述目标证书信息一致时,基于所述待处理公钥证书中的公钥信息对所述监测节点的签名信息进行签名验证,并将签名验证成功时的验证结果作为所述监测节点的签名验证结果。
4.根据权利要求2所述的方法,其特征在于,所述节点注册配置信息中包含所述注册节点针对所述目标业务子链所注册的第一类型节点注册身份或第二类型节点注册身份;
所述基于所述目标注册节点的节点注册身份确定所述第一类高度投票信息的投票类型,包括:
在所述节点注册配置信息中查找所述目标节点标识对应的所述目标注册节点的节点注册身份,且将查找到的所述目标注册节点的节点注册身份作为目标节点注册身份;
在所述目标节点注册身份为所述第一类型节点注册身份时,基于所述第一类型节点注册身份确定所述第一类高度投票信息的投票类型为第一投票类型;
在所述目标节点注册身份为所述第二类型节点注册身份时,基于所述第二类型节点注册身份确定所述第一类高度投票信息的投票类型为第二投票类型。
5.根据权利要求1所述的方法,其特征在于,所述监测节点包括第一类监测节点和第二类监测节点;所述第一类监测节点为在所述子链监测控制合约中注册有第一类型节点注册身份的监测节点;所述第二类监测节点为在所述子链监测控制合约中注册有第二类型节点注册身份的监测节点;所述第一类型节点注册身份的身份等级高于所述第二类型节点注册身份的身份等级;所述链高度投票信息包含所述第一类监测节点和所述第二类监测节点针对所述目标业务子链的第一类高度投票信息;所述第一类高度投票信息包含所述第一类监测节点基于所述第一类型节点注册身份所确定的具有第一投票类型的第一链高度投票信息、以及所述第二类监测节点基于所述第二类型节点注册身份所确定的具有第二投票类型的第二链高度投票信息;
所述基于所述链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约,确定所述目标业务子链的目标链高度,包括:
将所述第一链高度投票信息中包含的所述第一类监测节点针对所述目标业务子链的链高度进行投票时的投票确认高度作为第一投票确认高度,且将所述第二链高度投票信息中包含的所述第二类监测节点针对所述目标业务子链的链高度进行投票时的投票确认高度作为第二投票确认高度;
基于所述第一投票确认高度,调用所述子链监测控制合约确定针对所述目标业务子链的参照投票高度阈值,且基于所述参照投票高度阈值、所述第一投票确认高度、以及所述第二投票确认高度确定所述目标业务子链的目标链高度。
6.根据权利要求5所述的方法,其特征在于,当所述第一类监测节点的数量为M1个时,所述第一投票确认高度的数量为M1个,M1为正整数;当所述第二类监测节点的数量为M2个时,所述第二投票确认高度的数量为M2个,M2为正整数;
所述基于所述第一投票确认高度,调用所述子链监测控制合约确定针对所述目标业务子链的参照投票高度阈值,且基于所述参照投票高度阈值、所述第一投票确认高度、以及所述第二投票确认高度确定所述目标业务子链的目标链高度,包括:
调用所述子链监测控制合约中的高度确认方法,将M1个第一投票确认高度中具有最小高度的第一投票确认高度作为所述目标业务子链的参照投票高度阈值;
在所述M1个第一投票确认高度以及M2个第二投票确认高度中获取小于或等于所述参照投票高度阈值的投票确认高度,将获取到的投票确认高度作为候选投票高度,且将所述候选投票高度中具有最大高度的投票确认高度作为目标投票确认高度;
将所述M1个第一投票确认高度以及所述M2个第二投票确认高度中大于或等于所述目标投票确认高度的投票确认高度作为待处理高度,当通过所述高度确认方法检测到所述待处理高度的数量大于投票数量阈值时,将所述目标投票确认高度作为所述目标业务子链的目标链高度;所述投票数量阈值大于或等于(M1+M2)/2。
7.根据权利要求1所述的方法,其特征在于,所述通过所述子链监测控制合约生成所述目标链高度对应的高度确认信息,将所述高度确认信息发送至所述目标业务子网络中的验证节点,包括:
基于所述链高度投票信息和所述目标链高度构造高度确认交易,在满足与所述目标链相关联的交易打包条件时,将所述高度确认交易打包至所述目标链的目标区块中,将包含所述高度确认交易的所述目标区块提交到所述目标链上;
调用所述目标链上的所述子链监测控制合约执行所述目标区块中的所述高度确认交易,得到所述目标链高度对应的高度确认信息;
通过目标跨链中继将所述高度确认信息发送至所述目标业务子网络中的验证节点;所述目标跨链中继用于隔离所述目标业务子网络和所述目标链网络。
8.根据权利要求1所述的方法,其特征在于,所述链高度投票信息包含所述监测节点针对所述目标业务子链的第二类高度投票信息;所述第二类高度投票信息是所述监测节点在检测到所述目标业务子链上存在业务风险时所确定的;所述第二类高度投票信息包含所述监测节点针对所述目标业务子链的链高度进行投票时的投票反对高度;所述第二类高度投票信息处于所述监测节点基于风险事务所确定的第一风险处理交易中;所述风险事务是所述监测节点基于所述投票反对高度所生成的;所述方法还包括:
在获取到所述监测节点发送的所述第一风险处理交易时,将所述第一风险处理交易所指示的所述风险事务写入所述子链监测控制合约,将所述目标业务子链上大于所述投票反对高度的链高度确定为无效链高度,且生成与所述风险事务相关联的子链锁定信息;
将所述子链锁定信息发送至所述目标业务子网络中的验证节点,以使所述验证节点停止执行与所述风险事务相关联的风险业务,且在接收到与所述目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于所述第二风险处理交易对所述风险业务进行风险消除处理;所述子链锁定信息还用于指示所述验证节点将所述目标业务子链的业务状态设置为锁定状态,处于所述锁定状态的所述目标业务子链停止执行交易上链,且停止执行与所述多区块链所包含的第一链以及第二链之间的跨链交互;所述第一链以及所述第二链均为不同于所述目标业务子链的区块链;
获取所述业务管理对象在所述风险业务处理成功时所发送的风险解除交易时,调用所述子链监测控制合约执行所述风险解除交易,得到用于解除所述风险事务的风险解除信息,将所述风险解除信息发送至所述验证节点,以使所述验证节点将所述投票反对高度作为所述目标业务子链的目标链高度,且将所述目标业务子链的业务状态由所述锁定状态恢复为解锁状态;所述监测节点用于在探测到所述目标业务子链上存在所述风险解除信息时,从所述目标链高度的下一链高度所对应的区块开始进行监测投票处理。
9.根据权利要求1所述的方法,其特征在于,还包括:
在获取到所述业务对象通过业务终端所发送的子链数据查询请求时,通过所述子链监测控制合约读取所述目标业务子链的所述目标链高度,将所述子链数据查询请求所指示的待验证链高度与读取到的所述目标链高度进行比较,得到比较结果;
在所述比较结果指示所述待验证链高度小于或等于所述目标链高度时,生成所述子链数据查询请求对应的子链查询响应信息,将所述子链查询响应信息返回给所述业务终端;所述子链查询响应信息用于指示所述业务对象所查询的所述待验证链高度为所述目标业务子链上已确认的链高度。
10.一种多区块链数据处理方法,其特征在于,所述多区块链包含目标链和目标业务子链;所述目标链对应的目标链网络独立于所述目标业务子链对应的目标业务子网络;所述目标业务子网络是由所述目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;所述方法由所述目标业务子网络中的验证节点执行,所述方法包括:
接收所述目标共识节点发送的所述目标业务子链的目标链高度所对应的高度确认信息;所述高度确认信息是由所述目标共识节点通过所述目标链上部署的用于对所述目标业务子链进行控制的子链监测控制合约所生成的;所述目标业务子链的目标链高度是所述目标共识节点基于获取到的与所述目标链相关联的监测节点针对所述目标业务子链的链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约所确定的;所述子链监测控制合约中包含针对所述目标业务子链进行身份注册的目标注册节点;所述链高度投票信息的投票类型是在所述目标共识节点通过所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份所确定的;
将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约,基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度。
11.根据权利要求10所述的方法,其特征在于,所述将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约,基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度,包括:
将所述高度确认信息所对应的所述目标链高度写入所述子链监测合约,获取从所述目标链上同步来的缓冲高度,将所述缓冲高度与所述目标链高度的高度之和作为出块高度阈值;
调用所述目标业务子链上的子链业务合约执行所述业务对象所请求的所述目标业务,得到目标业务执行结果,基于所述目标业务执行结果生成具有目标区块高度的提议区块,且基于所述目标区块高度和所述出块高度阈值确定执行所述目标业务后的链高度;所述目标区块高度大于所述目标链高度且小于或等于所述出块高度阈值。
12.根据权利要求11所述的方法,其特征在于,还包括:
将所述目标业务子链上位于所述目标链高度之后的链高度作为待确认链高度;
在所述待确认链高度达到所述出块高度阈值,且未获取到所述目标共识节点针对所述待确认链高度的更新高度确认信息时,通过所述子链监测合约将所述目标业务子链的业务状态设置为锁定状态;处于所述锁定状态的所述目标业务子链停止执行交易上链;
在获取到所述目标共识节点针对所述待确认链高度发送的所述更新高度确认信息时,将所述更新高度确认信息所对应的所述待确认链高度写入所述子链监测合约,且将所述目标业务子链的业务状态由所述锁定状态恢复为解锁状态。
13.根据权利要求10所述的方法,其特征在于,所述链高度投票信息包含所述监测节点针对所述目标业务子链的第二类高度投票信息;所述第二类高度投票信息是所述监测节点在检测到所述目标业务子链上存在业务风险时所确定的;所述第二类高度投票信息包含所述监测节点针对所述目标业务子链的链高度进行投票时的投票反对高度;所述第二类高度投票信息处于所述监测节点基于风险事务所确定的第一风险处理交易中;所述风险事务是所述监测节点基于所述投票反对高度所生成的;所述方法还包括:
在接收到所述目标共识节点发送的子链锁定信息时,基于所述子链锁定信息停止执行与所述风险事务相关联的风险业务,且将所述目标业务子链的业务状态设置为锁定状态;处于所述锁定状态的所述目标业务子链停止执行交易上链,且停止执行与所述多区块链所包含的第一链以及第二链之间的跨链交互;所述第一链以及所述第二链均为不同于所述目标业务子链的区块链;所述子链锁定信息是由所述目标共识节点将所述第一风险处理交易所指示的所述风险事务写入所述子链监测控制合约后所得到的;
在接收到与所述目标业务子网络相关联的业务管理对象所提交的第二风险处理交易时,基于所述第二风险处理交易对所述风险业务进行风险消除处理,向所述业务管理对象返回风险成功处理信息;所述风险成功处理信息用于指示所述业务管理对象在所述风险业务处理成功时向所述目标共识节点发送风险解除交易;所述风险解除交易用于指示所述目标共识节点通过所述子链监测控制合约生成用于解除所述风险事务的风险解除信息;
接收所述目标共识节点返回的所述风险解除信息,基于所述风险解除信息将所述投票反对高度作为所述目标业务子链的目标链高度,且将所述目标业务子链的业务状态由所述锁定状态恢复为解锁状态。
14.一种多区块链数据处理方法,其特征在于,所述多区块链包含目标链和目标业务子链;所述目标链对应的目标链网络独立于所述目标业务子链对应的目标业务子网络;所述目标业务子网络是由所述目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;所述方法由与所述目标链相关联的监测节点执行,所述方法包括:
获取所述监测节点针对所述目标业务子链的链高度进行投票时的链高度投票信息;所述目标链上部署有用于对所述目标业务子链进行控制的子链监测控制合约;所述子链监测控制合约中包含针对所述目标业务子链进行身份注册的目标注册节点;
将所述链高度投票信息发送至所述目标共识节点,以使所述目标共识节点在通过所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份确定所述链高度投票信息的投票类型,且在基于所述链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约确定所述目标业务子链的目标链高度时,通过所述子链监测控制合约生成所述目标链高度对应的高度确认信息;所述高度确认信息用于发送至所述目标业务子网络中的验证节点;所述验证节点用于将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约;所述子链监测合约用于指示所述验证节点基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度;
从所述子链监测合约中获取所述目标链高度,基于所述目标链高度对所述目标业务子链进行监测投票处理。
15.一种多区块链数据处理装置,其特征在于,所述多区块链包含目标链和目标业务子链;所述目标链对应的目标链网络独立于所述目标业务子链对应的目标业务子网络;所述目标业务子网络是由所述目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;所述装置运行在所述目标共识节点上,所述装置包括:
信息获取模块,用于获取与所述目标链相关联的监测节点针对所述目标业务子链的链高度投票信息;所述目标链上部署有用于对所述目标业务子链进行控制的子链监测控制合约;所述子链监测控制合约中包含针对所述目标业务子链进行身份注册的目标注册节点;
类型确定模块,用于在通过所述目标链上的所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份确定所述链高度投票信息的投票类型;
高度确定模块,用于基于所述链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约,确定所述目标业务子链的目标链高度;
信息发送模块,用于通过所述子链监测控制合约生成所述目标链高度对应的高度确认信息,将所述高度确认信息发送至所述目标业务子网络中的验证节点,以使所述验证节点将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约;所述子链监测合约用于指示所述验证节点基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度。
16.一种多区块链数据处理装置,其特征在于,所述多区块链包含目标链和目标业务子链;所述目标链对应的目标链网络独立于所述目标业务子链对应的目标业务子网络;所述目标业务子网络是由所述目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;所述装置运行在所述目标业务子网络中的验证节点上,所述装置包括:
信息接收模块,用于接收所述目标共识节点发送的所述目标业务子链的目标链高度所对应的高度确认信息;所述高度确认信息是由所述目标共识节点通过所述目标链上部署的用于对所述目标业务子链进行控制的子链监测控制合约所生成的;所述目标业务子链的目标链高度是所述目标共识节点基于获取到的与所述目标链相关联的监测节点针对所述目标业务子链的链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约所确定的;所述子链监测控制合约中包含针对所述目标业务子链进行身份注册的目标注册节点;所述链高度投票信息的投票类型是在所述目标共识节点通过所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份所确定的;
高度写入模块,用于将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约,基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度。
17.一种多区块链数据处理装置,其特征在于,所述多区块链包含目标链和目标业务子链;所述目标链对应的目标链网络独立于所述目标业务子链对应的目标业务子网络;所述目标业务子网络是由所述目标链网络中的目标共识节点基于业务对象所请求的目标业务所构建得到的;所述装置运行在与所述目标链相关联的监测节点上,所述装置包括:
投票获取模块,用于获取所述监测节点针对所述目标业务子链的链高度进行投票时的链高度投票信息;所述目标链上部署有用于对所述目标业务子链进行控制的子链监测控制合约;所述子链监测控制合约中包含针对所述目标业务子链进行身份注册的目标注册节点;
投票发送模块,用于将所述链高度投票信息发送至所述目标共识节点,以使所述目标共识节点在通过所述子链监测控制合约确定所述监测节点为所述目标注册节点时,基于所述目标注册节点的节点注册身份确定所述链高度投票信息的投票类型,且在基于所述链高度投票信息、所述链高度投票信息的投票类型、以及所述子链监测控制合约确定所述目标业务子链的目标链高度时,通过所述子链监测控制合约生成所述目标链高度对应的高度确认信息;所述高度确认信息用于发送至所述目标业务子网络中的验证节点;所述验证节点用于将所述高度确认信息所对应的所述目标链高度写入所述目标业务子链上的子链监测合约;所述子链监测合约用于指示所述验证节点基于所述目标链高度确定执行所述业务对象所请求的所述目标业务后的链高度;
高度获取模块,用于从所述子链监测合约中获取所述目标链高度,基于所述目标链高度对所述目标业务子链进行监测投票处理。
18.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-14任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使具有所述处理器的计算机设备执行权利要求1-14任一项所述的方法。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,该计算机指令适于由处理器读取并执行,以使具有所述处理器的计算机设备执行权利要求1-14任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211411454.9A CN118041839A (zh) | 2022-11-11 | 2022-11-11 | 一种多区块链数据处理方法、装置、设备、介质及产品 |
PCT/CN2023/124071 WO2024099023A1 (zh) | 2022-11-11 | 2023-10-11 | 多区块链数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211411454.9A CN118041839A (zh) | 2022-11-11 | 2022-11-11 | 一种多区块链数据处理方法、装置、设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118041839A true CN118041839A (zh) | 2024-05-14 |
Family
ID=90990207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211411454.9A Pending CN118041839A (zh) | 2022-11-11 | 2022-11-11 | 一种多区块链数据处理方法、装置、设备、介质及产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118041839A (zh) |
WO (1) | WO2024099023A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165945B (zh) * | 2018-09-07 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
CN113421097B (zh) * | 2021-08-23 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-11-11 CN CN202211411454.9A patent/CN118041839A/zh active Pending
-
2023
- 2023-10-11 WO PCT/CN2023/124071 patent/WO2024099023A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024099023A1 (zh) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431903B (zh) | 一种跨链中继方法、装置以及计算机可读存储介质 | |
CN112632629B (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
US12118097B2 (en) | Systems and methods for virtual distributed ledger networks | |
CN114363352B (zh) | 基于区块链的物联网系统跨链交互方法 | |
CN109544982B (zh) | 停车信息共享方法及共享系统 | |
CN104168333A (zh) | Proxzone服务平台的工作方法 | |
KR102139551B1 (ko) | 유언장을 관리하는 서버 및 방법 | |
US11838406B2 (en) | Systems and methods for control-data plane partitioning in virtual distributed ledger networks | |
WO2021234464A2 (en) | Systems and methods for device detection and registration | |
CN111340628A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN115277122A (zh) | 基于区块链的跨境数据流动与监管系统 | |
US20240137208A1 (en) | Asset transferring method and apparatus based on multiple blockchains, device, medium, and product | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
US20240137231A1 (en) | Multi-blockchain-based cross-chain processing method and apparatus, device, system, and medium | |
CN117951217A (zh) | 基于多区块链的跨链配置方法、装置、设备、系统及介质 | |
CN117938867A (zh) | 一种多区块链数据处理方法、装置、设备、介质及产品 | |
CN118041839A (zh) | 一种多区块链数据处理方法、装置、设备、介质及产品 | |
WO2024078109A1 (zh) | 多区块链数据处理方法、装置、设备、系统以及介质 | |
CN116708463B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
EP4375850A1 (en) | Multi-blockchain data processing method and apparatus, and device, system and medium | |
WO2024093593A1 (zh) | 基于多区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN117992534A (zh) | 基于多区块链的数据跨链方法、相关设备、介质及产品 | |
CN116760632B (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN112231367B (zh) | 基于人工智能的业务处理方法、装置及电子设备 | |
US20240257085A1 (en) | Token Account Payment Computing System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |