CN113987566B - 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 - Google Patents
基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113987566B CN113987566B CN202111192928.0A CN202111192928A CN113987566B CN 113987566 B CN113987566 B CN 113987566B CN 202111192928 A CN202111192928 A CN 202111192928A CN 113987566 B CN113987566 B CN 113987566B
- Authority
- CN
- China
- Prior art keywords
- data
- chain
- link
- cross
- service sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000004744 fabric Substances 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012795 verification Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 4
- 238000004132 cross linking Methods 0.000 claims 1
- 230000008520 organization Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本说明书一个或多个实施例提供一种基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质,基于Hyperledger Fabric的区块链系统包括第一业务子链、第二业务子链和桥接链;该方法应用于与服务提供方对应的客户端:从第一业务子链中获取与数据需求方对应的需求数据的数据原文和数据摘要;将包括数据摘要的跨链消息头发布至桥接链进行存证;基于包括数据原文的跨链消息体构造存证交易;将存证交易发布至第二业务子链,触发第二业务子链中的Peer节点响应于存证交易,将跨链消息头从桥接链跨链拷贝至第二业务子链,并基于跨链消息头对跨链消息体进行校验,在校验通过后,将需求数据在第二业务子链中进行存证,以使与数据需求方对应的客户端从第二业务子链中获取需求数据。
Description
技术领域
本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及一种基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质。
背景技术
相关技术中,在基于Hyperledger Fabric的区块链系统中,通常会根据实际参与业务的组织进行通道划分,将参与同一项业务的组织加入到同一个通道。然而,对于某一个通道而言,该通道中存证的数据对该通道中的所有组织都是可见的,因此,数据隐私的保护粒度较粗,数据的安全性较低。
发明内容
本说明书提出一种基于Hyperledger Fabric的内部桥接跨链方法,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述方法应用于与所述服务提供方对应的客户端,包括:
获取与所述数据需求方对应的需求数据的数据标识;
从所述第一业务子链中获取与所述数据标识对应的所述需求数据的数据原文和数据摘要;
将基于所述数据摘要构造的跨链消息头发布至所述桥接链进行存证;
针对基于所述数据原文构造的跨链消息体,基于所述跨链消息体构造存证交易;
将所述存证交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述存证交易,将所述跨链消息头从所述桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,在所述跨链消息体校验通过后,将所述跨链消息体中的所述需求数据发布至所述第二业务子链进行存证,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
本说明书还提出一种基于Hyperledger Fabric的内部桥接跨链方法,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述方法应用于与所述服务提供方对应的客户端,包括:
获取与所述数据需求方对应的需求数据的数据标识;
基于所述数据标识构造构造第一跨链拷贝交易;
将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述第一业务子链跨链拷贝至所述桥接链;
基于所述数据标识构造构造第二跨链拷贝交易;
将所述第二跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第二跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
本说明书还提出一种基于Hyperledger Fabric的内部桥接跨链装置,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述装置应用于与所述服务提供方对应的客户端,包括:
第一获取模块,用于获取与所述数据需求方对应的需求数据的数据标识;
第二获取模块,用于从所述第一业务子链中获取与所述数据标识对应的所述需求数据的数据原文和数据摘要;
第一存证模块,用于将基于所述数据摘要构造的跨链消息头发布至所述桥接链进行存证;
构造模块,用于针对基于所述数据原文构造的跨链消息体,基于所述跨链消息体构造存证交易;
第二存证模块,用于将所述存证交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述存证交易,将所述跨链消息头从所述桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,在所述跨链消息体校验通过后,将所述跨链消息体中的所述需求数据发布至所述第二业务子链进行存证,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
本说明书还提出一种基于Hyperledger Fabric的内部桥接跨链装置,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述装置应用于与所述服务提供方对应的客户端,包括:
获取模块,用于获取与所述数据需求方对应的需求数据的数据标识;
第一构造模块,用于基于所述数据标识构造构造第一跨链拷贝交易;
第一跨链模块,用于将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将与所述数据标识对应的所述需求数据,将所述第一业务子链中的与所述数据标识对应的所述需求数据,从所述第一业务子链跨链拷贝至所述桥接链;
第二构造模块,用于基于所述数据标识构造构造第二跨链拷贝交易;
第二跨链模块,用于将所述第二跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第二跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
本说明书还提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
本说明书还提出一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
在上述技术方案中,可以在基于Hyperledger Fabric的区块链系统中,将数据提供方和数据需求方放置在不同的业务子链中,并且通过跨链拷贝的方式,将与数据需求方对应的需求数据,从数据提供方所在的业务子链中跨链拷贝至数据需求方所在的业务子链,从而可以实现数据的按需共享,而无需将全部数据都提供给数据需求方,因此,可以更好地控制数据隐私,细化数据隐私的保护粒度,提高数据的安全性。此外,在新的数据需求方加入该区块链系统时,只需要为新的数据需求方创建新的业务子链即可,而无需对数据提供方所在的业务子链进行更新。此外,在利用桥接链进行跨链拷贝时,可以仅将需求数据的数据摘要在桥接链上进行存证,从而可以节省与桥接链对应的存储资源,适用于需求数据量较大的场景。
附图说明
图1是基于Hyperledger Fabric的区块链系统的网络环境的示意图;
图2是基于Hyperledger Fabric的区块链系统中的交易执行流程的示意图;
图3是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的区块链系统的网络环境的示意图;
图4是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的内部桥接跨链方法的流程图;
图5是本说明书一示例性实施例示出的另一种基于Hyperledger Fabric的内部桥接跨链方法的流程图;
图6是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的内部桥接跨链装置所在电子设备的硬件结构图;
图7是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的内部桥接跨链装置的框图;
图8是本说明书一示例性实施例示出的另一种基于Hyperledger Fabric的内部桥接跨链装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链与联盟链的结合、联盟链与公有链的结合等。
其中,去中心化程度最高的是公有链。加入公有链的参与方(也可以称为区块链中的节点)可以读取链上的数据记录、参与交易、竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以视为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则介于公有链以及私有链之间,可以实现“部分去中心化”。联盟链中各个节点通常有与之对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链的运行。
在区块链中,节点是逻辑上的通信实体;不同类型的多个区块链节点可以运行在同一个物理服务器上,也可以运行在不同的物理服务器上。
对于联盟链而言,基于Hyperledger Fabric的区块链系统是联盟链系统的一种实现方式。
在基于Hyperledger Fabric的区块链系统中,主要可以包括以下三种类型的区块链节点:客户端;Orderer(排序服务)节点;以及,Peer节点。
其中,客户端可以与某一个Peer节点或者某一个排序服务节点建立连接,以通过该Peer节点或者该排序服务节点接入对应的区块链网络;客户端可以向作为Endorser(背书)节点的Peer节点提交交易提案(transaction proposal),在获取到背书节点针对该交易提案的背书结果后,可以构造对应的交易,并向排序服务节点提交该交易。
在实际应用中,客户端也可以与多个Peer节点建立连接,以通过各个Peer节点分别接入对应的区块链网络。
排序服务节点可以接收客户端提交的交易,并对未打包的交易进行排序,生成对应的区块,后续可以将该区块广播给Peer节点。
需要说明的是,排序服务节点的广播可以保证同一条链上的节点接收到相同的数据,并且接收到的数据具有相同的逻辑顺序。
Peer节点根据所承担的功能可以分为Committer(记账)节点、背书节点和Leader(主)节点。
具体地,记账节点负责维护区块链账本(ledger)和链码(chaincode,也可以称为智能合约);记账节点可以定期地获取由排序服务节点生成的区块,并在对这些区块中的交易进行验证后,将这些区块在区块链中进行存证。背书节点可以模拟执行交易提案,并对该交易提案的模拟执行结果进行签名,以完成针对该交易提案的背书。主节点可以与排序服务节点进行通信,从排序服务节点获取最新的区块,从而使这些区块可以在Peer节点之间进行同步。
需要说明的是,所有Peer节点都可以作为记账节点。也即,对于某一个Peer节点而言,该Peer节点可以既作为背书节点,又作为记账节点;或者,该Peer节点可以既作为主节点,又作为记账节点。
在基于Hyperledger Fabric的区块链系统中,通常可以基于组织对区块链节点进行区分。也即,基于Hyperledger Fabric的区块链系统的参与方可以是组织。
具体地,每个组织中都可以有承担不同功能的Peer节点(具体可以包括多个记账节点、多个背书节点和一个主节点);不同的组织可以共用同一个排序服务节点或者同一个排序服务节点集群。
在实际应用中,上述组织可以是现实世界中的一个公司、一个企业或者一个协会。
基于Hyperledger Fabric的区块链系统的数据存储结构,通常可以被设计成多账本体系。为了对不同的区块链账本进行数据隔离,可以在逻辑上将基于HyperledgerFabric的区块链系统划分为不同的通道(channel)。
其中,上述通道可以由区块链账本、链码、组织和排序服务节点定义;每个通道中都可以有一套完全独立的区块链账本,并且可以有一套完全独立的链码;不同的通道可以共用同一个排序服务节点;同一个组织可以通过该组织中的不同的Peer节点,加入不同的通道;每个交易都是在某一个通道中被独立执行的。
因此,在基于Hyperledger Fabric的区块链系统中,可以将一个通道视为一条区块链。也即,基于Hyperledger Fabric的区块链系统可以包括多条区块链。
需要说明的是,加入到同一个通道中的Peer节点可以维护相同的区块链账本,并且不能访问由加入到其他通道中的Peer节点维护的区块链账本。同一个Peer节点可以加入不同的通道;该Peer节点可以维护与各个通道分别对应的区块链账本,但是,该Peer节点维护的多个区块链账户之间数据隔离。
参考图1,图1是基于Hyperledger Fabric的区块链系统的网络环境的示意图。
如图1所示,在上述基于Hyperledger Fabric的区块链系统中,可以包括三个组织,分别为组织1、组织2和组织3,还可以包括两个通道,分别为通道A和通道B。
其中,组织1和组织2属于通道A,组织2和组织3属于通道B;每个组织中都可以有主节点、背书节点和记账节点等Peer节点,此外还可以有与背书节点建立连接的客户端;各个组织中的Peer节点,以及所有组织共用的排序服务节点,一起组成了基于HyperledgerFabric的区块链系统。
参考图2,图2是基于Hyperledger Fabric的区块链系统中的交易执行流程的示意图。
如图2所示,在上述基于Hyperledger Fabric的区块链系统中,客户端可以构造交易提案(该交易提案可以包括本次交易需要调用的链码的标识、方法和参数信息等),并根据背书策略选择背书节点,将该交易提案提交给该背书节点。
上述背书节点在接收到上述交易提案后,可以模拟执行上述链码中的业务逻辑,并对模拟执行结果进行签名,后续可以将签名后的模拟执行结果返回给上述客户端。
上述客户端在接收到上述签名后的模拟执行结果后,可以先对签名进行验证,并在验证通过后,构造与上述交易提案对应的交易(具体可以将该交易提案和上述签名后的模拟执行结果打包成交易),后续可以将该交易提交给排序服务节点。
上述排序服务节点可以按照同一个通道中的交易的接收时间顺序,对该通道中的未打包的交易进行排序,生成包含这些交易的区块(具体可以将这些交易打包进区块),后续可以将该区块广播给该通道中的不同组织中的主节点,由于所有Peer节点都是记账节点,因此,该主节点接收到的该区块可以在该通道中的所有Peer节点之间进行同步;此时,该通道中的Peer节点可以执行该区块中的上述交易。
参考图3,图3是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的区块链系统的示意图。结合图3,参考图4,图4是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的内部桥接跨链方法的流程图。
在上述基于Hyperledger Fabric的内部桥接跨链方法中,基于HyperledgerFabric的区块链系统可以包括若干通道;其中,每个通道都可以视为一条区块链。
进一步地,与上述若干通道对应的若干区块链,可以包括:用于存储业务数据的若干区块链(称为业务子链,具体可以包括第一业务子链和第二业务子链);以及,用于桥接不同的业务子链的区块链(称为桥接链)。
其中,与跨链服务的服务提供方对应的组织,以及与上述业务数据的数据提供方对应的组织,可以加入上述第一业务子链。也即,该第一业务子链可以包括与该服务提供方对应的Peer节点(称为第一Peer节点),以及与该数据提供方对应的Peer节点。
与上述服务提供方对应的组织,以及与上述业务数据的数据需求方对应的组织,可以加入上述第二业务子链。也即,该第二业务子链可以包括与该服务提供方对应的Peer节点(称为第二Peer节点),以及与该数据需求方对应的Peer节点。
与上述服务提供方对应的组织可以加入上述桥接链。也即,该桥接链可以包括与该服务提供方对应的Peer节点(具体可以包括上述第一Peer节点和上述第二Peer节点)。
与上述服务提供方对应的Peer节点、与上述数据提供方对应的Peer节点或者与上述数据需求方对应的Peer节点,都可以包括主节点、背书节点和记账节点等Peer节点。
需要说明的是,上述数据需求方、上述数据提供方和上述服务提供方通常可以在同一个局域网中,此时上述桥接链为该局域网内部的桥接链,因此可以称为内部桥接链。
在实际应用中,上述服务提供方可以包括上述基于Hyperledger Fabric的区块链系统的运营方;上述数据需求方可以包括金融机构;上述数据提供方可以包括由该金融机构提供资产(例如:货币、房产、股票、贷款合同和应收账款等)服务的公司、企业、协会和个人等用户;上述业务数据可以包括资产数据。
在上述情况下,上述基于Hyperledger Fabric的内部桥接跨链方法可以应用于与上述服务提供方对应的客户端,并且可以包括以下步骤:
步骤401,获取与所述数据需求方对应的需求数据的数据标识;
步骤402,从所述第一业务子链中获取与所述数据标识对应的所述需求数据的数据原文和数据摘要;
步骤403,将基于所述数据摘要构造的跨链消息头发布至所述桥接链进行存证;
步骤404,针对基于所述数据原文构造的跨链消息体,基于所述跨链消息体构造存证交易;
步骤405,将所述存证交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述存证交易,将所述跨链消息头从所述桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,在所述跨链消息体校验通过后,将所述跨链消息体中的所述需求数据发布至所述第二业务子链进行存证,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
下面从将业务数据上链、获取需求数据的数据标识、对需求数据进行跨链拷贝和对需求数据进行溯源的方面,进行详细描述。
(1)将业务数据上链
在实际应用中,上述数据提供方可以将与该数据提供方对应的业务数据发布至上述第一业务子链进行存证。
具体地,与上述数据提供方对应的客户端可以基于上述业务数据,构造用于存证这些业务数据的存证交易,并将该存证交易发布至上述第一业务子链。
在上述情况下,与上述数据提供方对应的客户端可以在上述第一业务子链中的与该数据提供方对应的背书节点对上述存证交易进行背书后,将该存证交易提交给对应的排序服务节点,由该排序服务节点生成包含该存证交易的区块,并将该区块广播给该第一业务子链中的与该数据提供方对应的主节点,从而使该区块可以在该第一业务子链中的所有Peer节点之间进行同步;此时,该第一业务子链中的Peer节点可以执行该存证交易,将上述业务数据在该第一业务子链中进行存证。
或者,上述数据提供方可以将上述业务数据发送给上述服务提供方,由该服务提供方将这些业务数据发布至上述第一业务子链进行存证。
需要说明的是,为了节省区块链系统的存储资源,在上述业务数据发生更新时,可以将与这些业务数据对应的增量数据发布至上述第一业务子链进行存证。
在示出的一种实施方式中,上述业务数据可以以key-value键值对的形式存证在上述第一业务子链;一条业务数据可以对应于一个key-value键值对。
对于某一条业务数据而言,与该业务数据对应的key-value键值对中的key可以包括该业务数据的数据标识,该key-value键值对中的value可以包括该业务数据的数据原文;该业务数据的数据标识可以包括为该业务数据分配的标识(data ID)、该业务数据的来源的标识(APP key)和/或该业务数据所属的业务子链的标识(channel ID)等唯一指示该业务数据的信息。
进一步地,对于某一条业务数据而言,与该业务数据对应的增量数据的数据结构,应当与该业务数据的数据结构保持一致。也即,与该增量数据对应的key-value键值对中的key,应当与与该该业务数据对应的key-value键值对中的key保持一致。
在示出的一种实施方式中,与上述服务提供方对应的客户端可以基于上述业务数据的数据标识构造摘要计算交易,并将该摘要计算交易发布至上述第一业务子链。
在上述情况下,与上述服务提供方对应的客户端可以在上述第一业务子链中的与该服务提供方对应的背书节点对上述摘要计算交易进行背书后,将该摘要计算交易提交给对应的排序服务节点,由该排序服务节点生成包含该摘要计算交易的区块,并将该区块广播给该第一业务子链中的与该服务提供方对应的主节点,从而使该区块可以在该第一业务子链中的所有Peer节点之间进行同步。因此,该第一业务子链中的Peer节点可以接收到该摘要计算交易。
上述第一业务子链中的Peer节点可以执行上述摘要计算交易,调用上述第一业务子链中部署的链码(称为第一链码),执行该第一链码中的摘要计算逻辑,计算与上述数据标识对应的上述业务数据的数据摘要,并将这些数据摘要在该第一业务子链中进行存证。
在实际应用中,对于某一条业务数据而言,该业务数据的数据摘要可以包括该业务数据的hash值。
综上所述,对于某一条业务数据而言,上述第一业务子链中可以存证该业务数据的数据标识、数据原文和数据摘要。
(2)获取需求数据的数据标识
在实际应用中,上述数据需求方在需要获取上述业务数据中的部分或者全部数据时,可以将需要获取的业务数据(称为需求数据)的数据标识提交给上述服务提供方。
需要说明的是,上述需求数据通常需要先由上述数据提供方确认。
为了便于利用上述需求数据的数据标识,这些需求数据的数据标识可以以列表的形式存在。
在示出的一种实施方式中,上述数据需求方与上述数据提供方可以在链外约定上述需求数据,例如:在链外签署数据获取合同,并在该数据获取合同中声明这些需求数据的数据标识。
在上述情况下,与上述服务提供方对应的客户端可以从上述数据获取合同中,获取到上述需求数据的数据标识。
或者,与上述数据需求方对应的客户端可以基于上述需求数据的数据标识,构造用于存证这些需求数据的数据标识的存证交易,并将该存证交易发布至上述第二业务子链。
在上述情况下,与上述数据需求方对应的客户端可以在上述第二业务子链中的与该数据需求方对应的背书节点对上述存证交易进行背书后,将该存证交易提交给对应的排序服务节点,由该排序服务节点生成包含该存证交易的区块,并将该区块广播给该第二业务子链中的与该数据需求方对应的主节点,从而使该区块可以在该第二业务子链中的所有Peer节点之间进行同步;此时,该第二业务子链中的Peer节点可以执行该存证交易,将上述需求数据的数据标识在该第二业务子链中进行存证。
由于上述第二业务子链包括与上述服务提供方对应的区块链节点,因此,与该服务提供方对应的客户端可以通过上述第二Peer节点,从该第二业务子链中获取到上述需求数据的数据标识。
具体地,与上述服务提供方对应的客户端可以先通过向上述桥接链发布跨链拷贝交易(称为第五跨链拷贝交易),触发该桥接链中的Peer节点响应于该第五跨链拷贝交易,将上述业务数据的数据标识,从上述第一业务子链跨链拷贝至该桥接链;再通过向上述第二业务子链发布跨链拷贝交易(称为第六跨链拷贝交易),触发该第二业务子链中的Peer节点响应于该第六跨链拷贝交易,将上述业务数据的数据标识,从该桥接链跨链拷贝至该第二业务子链。
与上述数据需求方对应的客户端可以通过上述第二业务子链中的与该数据需求方对应的Peer节点,从该第二业务子链中获取到上述业务数据的数据标识;该数据需求方可以从这些业务数据的数据标识中选择出部分或者全部数据标识,作为向上述数据提供方订阅的订阅数据的数据标识;与该数据需求方对应的客户端可以将这些订阅数据的数据标识发布至所述第二业务子链进行存证。
与上述服务提供方对应的客户端可以先通过向上述桥接链发布跨链拷贝交易(称为第一跨链拷贝交易),触发该桥接链中的Peer节点响应于该第一跨链拷贝交易,将上述订阅数据的数据标识,从上述第二业务子链跨链拷贝至该桥接链;再通过向上述第一业务子链发布跨链拷贝交易(称为第二跨链拷贝交易),触发该第一业务子链中的Peer节点响应于该第二跨链拷贝交易,将上述订阅数据的数据标识,从该桥接链跨链拷贝至该第一业务子链。
与上述数据提供方对应的客户端可以通过上述第一业务子链中的与该数据提供方对应的Peer节点,从该第一业务子链中获取到上述订阅数据的数据标识;该数据提供方可以对这些业务数据的数据标识中的部分或者全部数据标识进行确认,由该数据提供方确认的数据标识可以作为允许上述数据需求方获取的需求数据的数据标识;与该数据提供方对应的客户端可以将这些需求数据的数据标识发布至所述第一业务子链进行存证。
与上述服务提供方对应的客户端可以先通过向上述桥接链发布跨链拷贝交易(称为第三跨链拷贝交易),触发该桥接链中的Peer节点响应于该第三跨链拷贝交易,将上述需求数据的数据标识,从上述第一业务子链跨链拷贝至该桥接链;再通过向上述第二业务子链发布跨链拷贝交易(称为第四跨链拷贝交易),触发该第二业务子链中的Peer节点响应于该第四跨链拷贝交易,将上述需求数据的数据标识,从该桥接链跨链拷贝至该第二业务子链。
需要说明的是,在将数据标识发布至业务子链进行存证时,还可以对这些数据标识进行数字签名,并附带身份信息,以供对这些数据标识进行校验。
在实际应用中,对于包括区块链A和区块链B的基于Hyperledger Fabric的区块链系统而言,分别加入到区块链A和区块链B中的组织1,具有将数据从区块链A(或者区块链B)跨链拷贝至区块链B(或者区块链A)的权限。
与组织1对应的客户端在将数据从区块链A跨链拷贝至区块链B时,可以针对这些数据构造跨链拷贝交易(例如:基于这些数据的数据标识构造跨链拷贝交易),并将该跨链拷贝交易发布至区块链B。
在上述情况下,与组织1对应的客户端可以在区块链B中的与组织1对应的背书节点对上述跨链拷贝交易进行背书后,将该跨链拷贝交易提交给对应的排序服务节点,由该排序服务节点生成包含该跨链拷贝交易的区块,并将该区块广播给区块链B中的与组织1对应的主节点,从而使该区块可以在区块链B中的所有Peer节点之间进行同步;此时,区块链B中的与组织1对应的Peer节点可以执行该跨链拷贝交易,调用区块链B中部署的链码,执行区块链B的链码中的跨链调用逻辑,跨链调用区块链A中部署的链码,执行区块链A的链码中的数据获取逻辑,从区块链A中获取该跨链拷贝交易指示的数据,并将这些数据在区块链B进行存证。这样,即完成了将这些数据从区块链A跨链拷贝至区块链B。
(3)对需求数据进行跨链拷贝
由于与上述数据需求方对应的组织仅加入了上述第二业务子链,而并未加入到上述第一业务子链中,也即,与该数据需求方对应的客户端仅能通过该第二业务子链中的与该数据需求方对应的Peer节点,获取到该第二业务子链中存证的数据,因此,为了使该数据需求方可以获取到上述需求数据,就需要将这些需求数据从该第一业务子链跨链拷贝至该第二业务子链。
在实际应用中,与上述服务提供方对应的客户端可以先基于上述需求数据的数据标识,从上述第一业务子链中获取上述需求数据的数据原文和数据摘要。
在上述情况下,与上述服务提供方对应的客户端一方面可以基于上述需求数据的数据摘要构造跨链消息头,另一方面可以基于上述需求数据的数据原文构造跨链消息体;该跨链消息头对应于该跨链消息体。
其中,上述跨链消息头的数据结构可以如表1所示:
表1
如表1所示,source channel ID表示源通道的标识(此时,即为上述第一业务子链的标识);destination channel ID表示目的通道的标识(此时,即为上述第二业务子链的标识);data ID表示为数据分配的标识;key表示与数据对应的key-value键值对中的key;data hash表示数据的数据摘要;data version表示数据的数据版本;series update表示用于校验数据版本的数值;nonce表示一个只被使用一次的任意或者非重复的随机数值,可以作为跨链消息头的标识;version表示跨链消息头的版本;signature表示签名,可以用于对跨链消息头进行校验。
上述跨链消息体的数据结构可以如表2所示:
表2
如表2所示,data表示数据的数据原文;其他字段可以参考表1中的字段。
对于上述跨链消息头而言,与上述服务提供方对应的客户端可以将该跨链消息头发布至上述桥接链进行存证。
具体地,与上述服务提供方对应的客户端可以基于上述跨链消息头,构造用于存证该跨链消息头的存证交易,并将该存证交易发布至上述桥接链。
在上述情况下,与上述服务提供方对应的客户端可以在上述桥接链中的与该服务提供方对应的背书节点对上述存证交易进行背书后,将该存证交易提交给对应的排序服务节点,由该排序服务节点生成包含该存证交易的区块,并将该区块广播给该桥接链中的与服务提供方对应的主节点,从而使该区块可以在该桥接链中的所有Peer节点之间进行同步;此时,该桥接链中的Peer节点可以执行该存证交易,将上述跨链消息头在该桥接链中进行存证。
与上述服务提供方对应的客户端可以通过向上述第二业务子链发布存证交易,触发该第二业务子链中的Peer节点响应于该存证交易,将上述跨链消息头从上述桥接链跨链拷贝至该第二业务子链,并基于该第二业务子链中存证的该跨链消息头,对上述跨链消息体进行校验,在该跨链消息体校验通过后,将上述需求数据发布至该第二业务子链进行存证,从而使与上述数据需求方对应的客户端可以从该第二业务子链中获取到这些需求数据。
具体地,由于上述服务提供方分别加入了上述桥接链和上述第二业务子链,因此,该服务提供方具有将上述跨链消息头从该桥接链跨链拷贝至该第二业务子链的权限。
与上述服务提供方对应的客户端可以基于上述跨链消息体构造存证交易,并将该存证交易发布至上述第二业务子链。
在上述情况下,与上述服务提供方对应的客户端可以在上述第二业务子链中的与该服务提供方对应的背书节点对上述存证交易进行背书后,将该存证交易提交给对应的排序服务节点,由该排序服务节点生成包含该存证交易的区块,并将该区块广播给该第二业务子链中的与该服务提供方对应的主节点,从而使该区块可以在该第二业务子链中的所有Peer节点之间进行同步。
此时,上述第二业务子链中的Peer节点可以执行上述存证交易,由其中的与上述服务提供方对应的Peer节点调用该第二业务子链中部署的链码(称为第二链码),执行该第二链码中的跨链调用逻辑,跨链调用上述桥接链中部署的链码(称为桥接链码),执行该桥接链码中的数据获取逻辑,从该桥接链中获取上述跨链消息头,并将该跨链消息头在该第二业务子链中进行存证。
进一步地,上述第二业务子链中的Peer节点可以从该第二业务子链中获取到上述跨链消息头,并基于该跨链消息头对上述跨链消息体进行校验,在该跨链消息体校验通过后,将该跨上述需求数据发布至该第二业务子链进行存证。这样,与上述数据需求方对应的客户端后续就可以从该第二业务子链中获取到这些需求数据。
在示出的一种实施方式中,如表2所示,与上述服务提供方对应的客户端还可以基于上述需求数据的数据摘要构造上述跨链消息体。
在上述情况下,在基于上述跨链消息头对上述跨链消息体进行校验时,具体可以确定该跨链消息体中的数据摘要与该跨链消息头中的数据摘要是否相同,如果是,则可以确定该跨链消息体校验通过。
进一步地,如表1和表2所示,与上述服务提供方对应的客户端还可以基于上述需求数据的数据版本分别构造上述跨链消息头和上述跨链消息体。
在上述情况下,在基于上述跨链消息头对上述跨链消息体进行校验时,具体可以确定该跨链消息体中的数据版本与该跨链消息头中的数据版本是否相同,并确定该数据版本是否为最新的数据版本,如果两者均是,则可以确定该跨链消息体校验通过。
(4)对需求数据进行溯源
在实际应用中,与上述服务提供方对应的客户端可以在接收到与上述需求数据对应的溯源请求时,响应于该溯源请求,从上述桥接链中获取与这些需求数据对应的上述跨链消息头对应的历史数据记录(称为桥接历史数据记录);以及,从上述第一业务子链中获取与这些需求数据对应的历史数据记录(称为第一历史数据记录),并从该第二业务子链中获取与这些需求数据对应的历史数据记录(称为第二历史数据记录)。
其中,与上述需求数据对应的历史数据记录可以包括与这些需求数据对应历史交易的相关信息。
具体地,可以从上述第二业务子链中,基于上述需求数据的数据标识,一方面获取到与这些数据标识对应的历史数据记录,作为上述第二历史数据记录,另一方面获取到与这些数据标识对应的源通道(此时,即为上述第一业务子链)的标识(source channel ID),以及与这些数据标识对应的跨链消息头(此时,即为上述跨链消息头)的标识(nonce)。
在上述情况下,可以基于上述源通道的标识,从上述第一业务子链中,基于上述需求数据的数据标识,获取到与这些数据标识对应的历史数据记录,作为上述第一历史数据记录。
此外,还可以基于上述跨链消息头的标识,从上述桥接链中,获取到与该跨链消息头的标识对应的历史数据记录,作为上述桥接历史数据记录。
后续,可以对上述第一历史数据记录和上述第二历史数据记录进行去重处理,并将去重后的该第二历史数据记录拼接在去重后的该第一历史数据记录之后,从而可以将拼接得到的历史数据记录和上述桥接历史数据记录,一起确定为与上述需求数据对应的历史数据记录。
具体地,在示出的一种实施方式中,上述历史数据记录可以包括数据时间戳。
在上述情况下,可以从上述第一历史数据记录中,删除上述数据时间戳在上述第二历史数据记录的最早的数据时间戳之后的历史数据记录,以实现对该第一历史数据记录和该第二历史数据记录的去重处理。
在上述技术方案中,可以在基于Hyperledger Fabric的区块链系统中,将数据提供方和数据需求方放置在不同的业务子链中,并且通过跨链拷贝的方式,将与数据需求方对应的需求数据,从数据提供方所在的业务子链中跨链拷贝至数据需求方所在的业务子链,从而可以实现数据的按需共享,而无需将全部数据都提供给数据需求方,因此,可以更好地控制数据隐私,细化数据隐私的保护粒度,提高数据的安全性。此外,在新的数据需求方加入该区块链系统时,只需要为新的数据需求方创建新的业务子链即可,而无需对数据提供方所在的业务子链进行更新。此外,在利用桥接链进行跨链拷贝时,可以仅将需求数据的数据摘要在桥接链上进行存证,从而可以节省与桥接链对应的存储资源,适用于需求数据量较大的场景。
参考图5,图5是本说明书一示例性实施例示出的另一种基于Hyperledger Fabric的内部桥接跨链方法的流程图。
在上述基于Hyperledger Fabric的内部桥接跨链方法中,基于HyperledgerFabric的区块链系统的具体实现可以参考如图3所示的基于Hyperledger Fabric的区块链系统,本说明书在此不再赘述。
在上述情况下,上述基于Hyperledger Fabric的内部桥接跨链方法可以应用于与上述服务提供方对应的客户端,并且可以包括以下步骤:
步骤501,获取与所述数据需求方对应的需求数据的数据标识;
步骤502,基于所述数据标识构造构造第一跨链拷贝交易;
步骤503,将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述第一业务子链跨链拷贝至所述桥接链;
步骤504,基于所述数据标识构造构造第二跨链拷贝交易;
步骤505,将所述第二跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第二跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
上述上述基于Hyperledger Fabric的内部桥接跨链方法的具体实现可以参考如图3所示的基于Hyperledger Fabric的内部桥接跨链方法,本说明书在此不再赘述。
在上述技术方案中,可以在基于Hyperledger Fabric的区块链系统中,将数据提供方和数据需求方放置在不同的业务子链中,并且通过跨链拷贝的方式,将与数据需求方对应的需求数据,从数据提供方所在的业务子链中跨链拷贝至数据需求方所在的业务子链,从而可以实现数据的按需共享,而无需将全部数据都提供给数据需求方,因此,可以更好地控制数据隐私,细化数据隐私的保护粒度,提高数据的安全性。此外,在新的数据需求方加入该区块链系统时,只需要为新的数据需求方创建新的业务子链即可,而无需对数据提供方所在的业务子链进行更新。
与前述基于Hyperledger Fabric的内部桥接跨链方法的实施例相对应,本说明书还提供了基于Hyperledger Fabric的内部桥接跨链装置的实施例。
本说明书基于Hyperledger Fabric的内部桥接跨链装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书基于Hyperledger Fabric的内部桥接跨链装置所在电子设备的一种硬件结构图,除了如图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于Hyperledger Fabric的内部桥接跨链的实际功能,还可以包括其他硬件,对此不再赘述。
参考图7,图7是本说明书一示例性实施例示出的一种基于Hyperledger Fabric的内部桥接跨链装置的框图。
其中,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点。
上述基于Hyperledger Fabric的内部桥接跨链装置可以应用于如图6所示的电子设备;该电子设备可以作为与所述服务提供方对应的客户端;该基于Hyperledger Fabric的内部桥接跨链装置可以包括:
第一获取模块701,用于获取与所述数据需求方对应的需求数据的数据标识;
第二获取模块702,用于从所述第一业务子链中获取与所述数据标识对应的所述需求数据的数据原文和数据摘要;
第一存证模块703,用于将基于所述数据摘要构造的跨链消息头发布至所述桥接链进行存证;
构造模块704,用于针对基于所述数据原文构造的跨链消息体,基于所述跨链消息体构造存证交易;
第二存证模块705,用于将所述存证交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述存证交易,将所述跨链消息头从所述桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,在所述跨链消息体校验通过后,将所述跨链消息体中的所述需求数据发布至所述第二业务子链进行存证,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
参考图8,图8是本说明书一示例性实施例示出的另一种基于Hyperledger Fabric的内部桥接跨链装置的框图。
其中,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点。
上述基于Hyperledger Fabric的内部桥接跨链装置可以应用于如图6所示的电子设备;该电子设备可以作为与所述服务提供方对应的客户端;该基于Hyperledger Fabric的内部桥接跨链装置可以包括:
获取模块801,用于获取与所述数据需求方对应的需求数据的数据标识;
第一构造模块802,用于基于所述数据标识构造构造第一跨链拷贝交易;
第一跨链模块803,用于将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将与所述数据标识对应的所述需求数据,将所述第一业务子链中的与所述数据标识对应的所述需求数据,从所述第一业务子链跨链拷贝至所述桥接链;
第二构造模块804,用于基于所述数据标识构造构造第二跨链拷贝交易;
第二跨链模块805,用于将所述第二跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第二跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (17)
1.一种基于Hyperledger Fabric的内部桥接跨链方法,其特征在于,基于HyperledgerFabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括第一业务子链、第二业务子链和桥接链;所述第一业务子链包括与数据提供方对应的Peer节点,和与跨链服务的服务提供方对应的第一Peer节点;所述第二业务子链包括与数据需求方对应的Peer节点,和与所述服务提供方对应的第二Peer节点;所述桥接链包括所述第一Peer节点和所述第二Peer节点;所述方法应用于与所述服务提供方对应的客户端,包括:
获取与所述数据需求方对应的需求数据的数据标识;
从所述第一业务子链中获取与所述数据标识对应的所述需求数据的数据原文和数据摘要;
将基于所述数据摘要构造的跨链消息头发布至所述桥接链进行存证;
针对基于所述数据原文构造的跨链消息体,基于所述跨链消息体构造存证交易;
将所述存证交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述存证交易,将所述跨链消息头从所述桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,在所述跨链消息体校验通过后,将所述需求数据在所述第二业务子链中进行存证,以使与所述数据需求方对应的客户端从所述第二业务子链中获取所述需求数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述跨链消息头从桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,包括:
调用所述第二业务子链中部署的第二链码,执行所述第二链码中的跨链调用逻辑,跨链调用所述桥接链中部署的桥接链码,执行所述桥接链码中的数据获取逻辑,获取所述桥接链中存证的所述跨链消息头,并将所述跨链消息头在所述第二业务子链中进行存证;
进一步执行所述第二链码中的校验逻辑,基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验。
3.根据权利要求1所述的方法,其特征在于,所述需求数据由与所述数据提供方对应的客户端发布至所述第一业务子链进行存证。
4.根据权利要求1所述的方法,其特征在于,所述需求数据以key-value键值对的形式存证在所述第一业务子链和所述第二业务子链中;所述需求数据的数据标识包括与所述需求数据对应的key-value键值对中的key;所述需求数据的数据原文包括与所述需求数据对应的key-value键值对中的value。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述数据标识构造摘要计算交易;
将所述摘要计算交易发布至所述第一业务子链,触发所述第一业务子链中的Peer节点响应于所述摘要计算交易,调用所述第一业务子链中部署的第一链码,执行所述第一链码中的摘要计算逻辑,计算与所述数据标识对应的所述需求数据的数据摘要,并将所述数据摘要在所述第一业务子链中进行存证。
6.根据权利要求1所述的方法,其特征在于,所述跨链消息体还基于所述需求数据的数据摘要构造;
所述基于所述跨链消息头对所述跨链消息体进行校验,包括:
确定所述跨链消息体中的数据摘要与所述跨链消息头中的数据摘要是否相同,如果是,则确定所述跨链消息体校验通过。
7.根据权利要求6所述的方法,其特征在于,所述跨链消息头和所述跨链消息体还基于所述需求数据的数据版本构造;
所述基于所述跨链消息头对所述跨链消息体进行校验,包括:
确定所述跨链消息体中的数据版本与所述跨链消息头中的数据版本是否相同,并确定所述数据版本是否为最新的数据版本,如果是,则确定所述跨链消息体校验通过。
8.根据权利要求1所述的方法,其特征在于,所述获取与所述数据需求方对应的需求数据的数据标识,包括:
从所述第二业务子链中获取与所述数据需求方对应的需求数据的数据标识;其中,所述需求数据的数据标识由与所述数据需求方对应的客户端发布至所述第二业务子链进行存证,并由所述数据提供方在链上确认;或者,
获取预设的与所述数据需求方对应的需求数据的数据标识;其中,所述需求数据的数据标识由所述数据需求方和所述数据提供方在链外约定。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
基于与所述数据需求方对应的订阅数据的数据标识构造第一跨链拷贝交易;其中,所述订阅数据的数据标识由与所述数据需求方对应的客户端发布至所述第二业务子链进行存证;
将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将所述订阅数据的数据标识从所述第二业务子链跨链拷贝至所述桥接链;
基于所述订阅数据的数据标识构造第二跨链拷贝交易;
将所述第二跨链拷贝交易发布至所述第一业务子链,触发所述第一业务子链中的Peer节点响应于所述第二跨链拷贝交易,将所述订阅数据的数据标识从所述桥接链跨链拷贝至所述第一业务子链,以使与所述数据提供方对应的客户端从所述第二业务子链中获取到所述订阅数据的数据标识,并将由所述数据提供方在所述订阅数据的数据标识中确认的数据标识,作为所述需求数据的数据标识发布至所述第一业务子链进行存证;
基于所述需求数据的数据标识构造第三跨链拷贝交易;
将所述第三跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第三跨链拷贝交易,将所述需求数据的数据标识从所述第一业务子链跨链拷贝至所述桥接链;
基于所述需求数据的数据标识构造第四跨链拷贝交易;
将所述第四跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第四跨链拷贝交易,将所述需求数据的数据标识从所述桥接链跨链拷贝至所述第二业务子链。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
基于与所述数据提供方对应的业务数据的数据标识构造第五跨链拷贝交易;其中,所述业务数据的数据标识由与所述数据提供方对应的客户端发布至所述第一业务子链进行存证;
将所述第五跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第五跨链拷贝交易,将所述业务数据的数据标识从所述第一业务子链跨链拷贝至所述桥接链;
基于所述业务数据的数据标识构造第六跨链拷贝交易;
将所述第六跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第六跨链拷贝交易,将所述业务数据的数据标识从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述业务数据的数据标识,并将由所述数据需求方在所述业务数据的数据标识中选择的数据标识,作为所述订阅数据的数据标识发布至所述第二业务子链进行存证。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到针对所述需求数据的溯源请求时,响应于所述溯源请求,从所述第一业务子链中获取与所述需求数据对应的第一历史数据记录,并从所述第二业务子链中获取与所述需求数据对应的第二历史数据记录;以及,从所述桥接链中获取与所述跨链消息头对应的桥接历史数据记录;
对所述第一历史数据记录和所述第二历史数据记录进行去重处理,并将去重后的所述第二历史数据记录拼接在去重后的所述第一历史数据记录之后;
将拼接得到的历史数据记录和所述桥接历史数据记录确定为与所述需求数据对应的历史数据记录。
12.根据权利要求11所述的方法,其特征在于,所述历史数据记录包括数据时间戳;
所述对所述第一历史数据记录和所述第二历史数据记录进行去重处理,包括:
从所述第一历史数据记录中删除所述时间戳在所述第二历史数据记录的最早的数据时间戳之后的历史数据记录。
13.一种基于Hyperledger Fabric的内部桥接跨链方法,其特征在于,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述方法应用于与所述服务提供方对应的客户端,包括:
获取与所述数据需求方对应的需求数据的数据标识;
基于所述数据标识构造构造第一跨链拷贝交易;
将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述第一业务子链跨链拷贝至所述桥接链;
基于所述数据标识构造构造第二跨链拷贝交易;
将所述第二跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第二跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取所述需求数据。
14.一种基于Hyperledger Fabric的内部桥接跨链装置,其特征在于,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述装置应用于与所述服务提供方对应的客户端,包括:
第一获取模块,用于获取与所述数据需求方对应的需求数据的数据标识;
第二获取模块,用于从所述第一业务子链中获取与所述数据标识对应的所述需求数据的数据原文和数据摘要;
第一存证模块,用于将基于所述数据摘要构造的跨链消息头发布至所述桥接链进行存证;
构造模块,用于针对基于所述数据原文构造的跨链消息体,基于所述跨链消息体构造存证交易;
第二存证模块,用于将所述存证交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述存证交易,将所述跨链消息头从所述桥接链跨链拷贝至所述第二业务子链,并基于所述第二业务子链中存证的所述跨链消息头,对所述跨链消息体进行校验,在所述跨链消息体校验通过后,将所述跨链消息体中的所述需求数据发布至所述第二业务子链进行存证,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
15.一种基于Hyperledger Fabric的内部桥接跨链装置,其特征在于,基于Hyperledger Fabric的区块链系统包括与若干通道对应的若干子链;所述若干子链包括桥接链、第一业务子链和第二业务子链;所述桥接链包括与跨链服务的服务提供方对应的第一Peer节点和第二Peer节点;所述第一业务子链包括所述第一Peer节点,和与数据提供方对应的Peer节点;所述第二业务子链包括所述第二Peer节点,和与数据需求方对应的Peer节点;所述装置应用于与所述服务提供方对应的客户端,包括:
获取模块,用于获取与所述数据需求方对应的需求数据的数据标识;
第一构造模块,用于基于所述数据标识构造构造第一跨链拷贝交易;
第一跨链模块,用于将所述第一跨链拷贝交易发布至所述桥接链,触发所述桥接链中的Peer节点响应于所述第一跨链拷贝交易,将与所述数据标识对应的所述需求数据,将所述第一业务子链中的与所述数据标识对应的所述需求数据,从所述第一业务子链跨链拷贝至所述桥接链;
第二构造模块,用于基于所述数据标识构造构造第二跨链拷贝交易;
第二跨链模块,用于将所述第二跨链拷贝交易发布至所述第二业务子链,触发所述第二业务子链中的Peer节点响应于所述第二跨链拷贝交易,将与所述数据标识对应的所述需求数据,从所述桥接链跨链拷贝至所述第二业务子链,以使与所述数据需求方对应的客户端从所述第二业务子链中获取到所述需求数据。
16.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-12或者13中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-12或者12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111192928.0A CN113987566B (zh) | 2021-10-13 | 2021-10-13 | 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111192928.0A CN113987566B (zh) | 2021-10-13 | 2021-10-13 | 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113987566A CN113987566A (zh) | 2022-01-28 |
CN113987566B true CN113987566B (zh) | 2024-04-23 |
Family
ID=79738435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111192928.0A Active CN113987566B (zh) | 2021-10-13 | 2021-10-13 | 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113987566B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471984A (zh) * | 2019-07-15 | 2019-11-19 | 阿里巴巴集团控股有限公司 | 基于区块链的业务处理方法及装置、电子设备 |
CN112000976A (zh) * | 2020-10-29 | 2020-11-27 | 腾讯科技(深圳)有限公司 | 区块链系统的认证管理方法、装置、介质及电子设备 |
CN113395363A (zh) * | 2021-08-18 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683630B (zh) * | 2018-04-03 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 跨区块链的认证方法及装置、电子设备 |
-
2021
- 2021-10-13 CN CN202111192928.0A patent/CN113987566B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471984A (zh) * | 2019-07-15 | 2019-11-19 | 阿里巴巴集团控股有限公司 | 基于区块链的业务处理方法及装置、电子设备 |
CN112000976A (zh) * | 2020-10-29 | 2020-11-27 | 腾讯科技(深圳)有限公司 | 区块链系统的认证管理方法、装置、介质及电子设备 |
CN112733174A (zh) * | 2020-10-29 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 区块链系统的认证管理方法、系统及电子设备 |
CN113395363A (zh) * | 2021-08-18 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于区块链的学位证书存证系统设计与实现;刘东伟;张学旺;郭晓金;;计算机工程与设计;20200216(第02期);全文 * |
基于区块链的科学数据标识技术创新应用模式;王姝;晏敏;刘佳;周启惠;郭志斌;王雅哲;周园春;;数据与计算发展前沿;20191215(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113987566A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3704620B1 (en) | System and method for blockchain-based notification | |
US11921682B2 (en) | Extracting data from a blockchain network | |
CN108389129B (zh) | 基于区块链的交易执行方法及装置、电子设备 | |
CN112435030B (zh) | 一种基于区块链的数据处理方法、装置及电子设备 | |
EP3652885B1 (en) | Secure token passing via blockchains | |
CN109003185B (zh) | 一种智能合约的建立方法、装置、计算设备及存储介质 | |
EP3593515B1 (en) | Managing housing scores using smart contracts in blockchain networks | |
CN110335042B (zh) | 基于环签名的匿名交易方法及装置 | |
CN111066047A (zh) | 实现基于区块链的工作流 | |
CN111192146B (zh) | 区块链数据的订正方法及装置 | |
WO2020258858A1 (zh) | 块链式账本中的授权方法、系统、装置及设备 | |
CN112287033B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN110048851B (zh) | 区块链中生成和验证多层可链接环签名的方法及装置 | |
CN112612856B (zh) | 基于区块链的数据处理方法和装置 | |
CN111383114A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN112750037A (zh) | 基于区块链的数据压缩、查询方法及装置和电子设备 | |
US11769146B1 (en) | Blockchain transactional identity verification | |
Magrahi et al. | NFB: a protocol for notarizing files over the blockchain | |
CN114039733B (zh) | 一种针对联盟链的存证业务转移方法、装置及设备 | |
CN114971827A (zh) | 一种基于区块链的对账方法、装置、电子设备及存储介质 | |
US11804950B2 (en) | Parallel processing of blockchain procedures | |
CN113987566B (zh) | 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 | |
CN113987568B (zh) | 基于Hyperledger Fabric的基础跨链方法、装置、设备和介质 | |
CN111899104A (zh) | 一种业务执行方法及装置 | |
US20220399988A1 (en) | Linking blockchain operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |