CN113220717B - 基于区块链的数据核验方法及装置、电子设备 - Google Patents
基于区块链的数据核验方法及装置、电子设备 Download PDFInfo
- Publication number
- CN113220717B CN113220717B CN202110510862.9A CN202110510862A CN113220717B CN 113220717 B CN113220717 B CN 113220717B CN 202110510862 A CN202110510862 A CN 202110510862A CN 113220717 B CN113220717 B CN 113220717B
- Authority
- CN
- China
- Prior art keywords
- chain
- data
- cross
- target data
- intelligent contract
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开一种基于区块链的数据核验方法及装置、电子设备。在本申请中,在用于数据核验的存证于区块链的目标数据分布于多个区块链时,基于本区块链中部署的存在嵌套调用的智能合约查询及获取跨链存证于与本区块链对接的其它区块链中的目标数据,并基于跨链查询得到的目标数据在本区块链中进行数据核验。一方面,避免了同时开发多个区块链对应的多种查询数据核验接口,提高了开发效率;另一方面,将跨链查询得到的目标数据在本区块链中进行缓存及存证,提高了针对目标数据进行重复数据核验的核验效率。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的数据核验方法及装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
在对用户提供的待核验的目标数据进行数据核验的场景下,通常,在现有的方案中,仅支持基于单个区块链中存证的数据对待核验的目标数据进行核验。而在用于数据核验的存证数据分布于多个区块链时,就需要开发多个区块链对应的多种查询数据核验接口来分别对待核验的目标数据分别进行核验,由此降低了开发效率和数据核验效率。
发明内容
本说明书提出一种基于区块链的数据核验方法;所述区块链中部署了用于数据核验的第一智能合约;其中,所述区块链与至少一个其它区块链跨链对接,所述方法包括:
接收用户客户端发起的数据核验请求;其中,所述数据核验请求包括待核验的目标数据的数据标识;
响应于所述数据核验请求,调用所述第一智能合约中的查询逻辑,基于所述数据标识查询所述区块链中存证的所述目标数据,并在所述区块链中未查询到所述目标数据时,进一步调用所述第一智能合约中的第一跨链逻辑,跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于所述数据标识查询所述其它区块链中存证的所述目标数据;
响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,所述区块链部署了用于跨链调用对接的其它区块链上部署的智能合约的跨链合约;所述第一跨链逻辑包括与所述跨链合约对应的调用逻辑;
所述调用所述第一智能合约中的第一跨链逻辑,跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,包括:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
可选的,还包括:
如果在所述区块链中查询到所述目标数据,则进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,在响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验之前,还包括:
跨链获取所述第二智能合约查询到的所述目标数据,并将获取到的所述目标数据发布至所述区块链中进行存储,以触发所述区块链中的各节点设备对所述目标数据进行共识验证,并在所述目标数据共识验证通过后,响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,所述调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,包括:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的查询逻辑,以查询所述跨链合约的跨链数据库中是否缓存了所述目标数据;如果所述跨链数据库中未缓存所述目标数据,再进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
可选的,还包括:
如果所述跨链数据库中缓存了所述目标数据,获取所述跨链数据库中缓存的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,所述数据标识包括数据摘要;
所述对查询到的所述目标数据进行数据核验,包括:
计算查询到的所述目标数据的数据摘要;
核验计算出的所述数据摘要与所述数据核验请求中包括的所述数据摘要是否匹配;如果是,确定针对所述目标数据的数据核验通过;如果否,确定针对所述目标数据的数据核验不通过。
可选的,所述区块链为联盟链。
本说明书还提出一种基于区块链的数据核验装置;所述区块链中部署了用于数据核验的第一智能合约;其中,所述区块链与至少一个其它区块链跨链对接,所述装置包括:
接收模块,接收用户客户端发起的数据核验请求;其中,所述数据核验请求包括待核验的目标数据的数据标识;
查询模块,响应于所述数据核验请求,调用所述第一智能合约中的查询逻辑,基于所述数据标识查询所述区块链中存证的所述目标数据,并在所述区块链中未查询到所述目标数据时,进一步调用所述第一智能合约中的第一跨链逻辑,跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于所述数据标识查询所述其它区块链中存证的所述目标数据;
核验模块,响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,所述区块链部署了用于跨链调用对接的其它区块链上部署的智能合约的跨链合约;所述第一跨链逻辑包括与所述跨链合约对应的调用逻辑;
所述查询模块进一步:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
可选的,所述查询模块进一步:
如果在所述区块链中查询到所述目标数据,则进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,在响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验之前,所述装置还包括存储模块:
所述存储模块进一步,跨链获取所述第二智能合约查询到的所述目标数据,并将获取到的所述目标数据发布至所述区块链中进行存储,以触发所述区块链中的各节点设备对所述目标数据进行共识验证,并在所述目标数据共识验证通过后,响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,所述查询模块进一步:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的查询逻辑,以查询所述跨链合约的跨链数据库中是否缓存了所述目标数据;如果所述跨链数据库中未缓存所述目标数据,再进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
可选的,所述核验模块进一步:
如果所述跨链数据库中缓存了所述目标数据,获取所述跨链数据库中缓存的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
可选的,所述数据标识包括数据摘要;
所述核验模块进一步:
计算查询到的所述目标数据的数据摘要;
核验计算出的所述数据摘要与所述数据核验请求中包括的所述数据摘要是否匹配;如果是,确定针对所述目标数据的数据核验通过;如果否,确定针对所述目标数据的数据核验不通过。
可选的,所述区块链为联盟链。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
在以上技术方案中,在用于数据核验的存证于区块链的目标数据分布于多个区块链时,基于本区块链中部署的存在嵌套调用的智能合约查询及获取跨链存证于与本区块链对接的其它区块链中的目标数据,并基于跨链查询得到的目标数据在本区块链中进行数据核验。一方面,避免了同时开发多个区块链对应的多种查询数据核验接口,提高了开发效率;另一方面,将跨链查询得到的目标数据在本区块链中进行缓存及存证,提高了针对目标数据进行重复数据核验的核验效率。
附图说明
图1是本说明书一实施例提供的一种数据核验的区块链的组网示意图;
图2是本说明书一实施例提供的一种基于区块链的数据核验方法的流程图;
图3是本说明书一实施例提供的一种电子设备的结构示意图;
图4是本说明书一实施例提供的一种基于区块链的数据核验装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
针对背景技术提到的技术问题,本说明书中,旨在提出一种基于本区块链中部署的存在嵌套调用的智能合约查询及获取跨链存证于与本区块链对接的其它区块链中的目标数据,并基于跨链查询得到的目标数据在本区块链中进行数据核验的技术方案。
在实现时,区块链中部署了用于数据核验的第一智能合约,区块链与至少一个其它区块链跨链对接;接收用户客户端发起的数据核验请求;其中,数据核验请求包括待核验的目标数据的数据标识。
进一步地,响应于数据核验请求,调用第一智能合约中的查询逻辑,基于数据标识查询区块链中存证的目标数据,并在区块链中未查询到目标数据时,进一步调用第一智能合约中的第一跨链逻辑,跨链调用与区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于数据标识查询其它区块链中存证的目标数据。
进一步地,响应于第二智能合约查询到的目标数据,进一步调用第一智能合约中的核验逻辑,对查询到的目标数据进行数据核验。
例如,请参考图1,图1是本说明书一实施例提供的一种数据核验的区块链的组网示意图。
如图1所示,该组网包括多个区块链(区块链A、与区块链A对接的区块链B、与区块链A对接的区块链C、与区块链C对接的区块链D)、用户客户端;其中,用户客户端通过接入区块链A针对待核验的目标数据进行数据核验;区块链A部署了用于数据核验的智能合约(智能合约A1、智能合约A2)。区块链A可以通过智能合约A1在本链查找存证的目标数据执行数据核验以及通过智能合约A1调用智能合约A2获取与本区块链对接的其它区块链(区块链B、区块链C、区块链D)中的跨链存证的目标数据并基于获取的跨链存证的目标数据在区块链A中进行数据核验。
在以上技术方案中,在用于数据核验的存证于区块链的目标数据分布于多个区块链时,基于本区块链中部署的存在嵌套调用的智能合约查询及获取跨链存证于与本区块链对接的其它区块链中的目标数据,并基于跨链查询得到的目标数据在本区块链中进行数据核验。一方面,避免了同时开发多个区块链对应的多种查询数据核验接口,提高了开发效率;另一方面,将跨链查询得到的目标数据在本区块链中进行缓存及存证,提高了针对目标数据进行重复数据核验的核验效率。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参见图2,图2是一示例性实施例提供的一种基于区块链的数据核验方法的流程图;上述区块链中部署了用于数据核验的第一智能合约;其中,上述区块链与至少一个其它区块链跨链对接,上述方法执行以下步骤:
步骤202、接收用户客户端发起的数据核验请求;其中,上述数据核验请求包括待核验的目标数据的数据标识。
步骤204、响应于上述数据核验请求,调用上述第一智能合约中的查询逻辑,基于上述数据标识查询上述区块链中存证的上述目标数据,并在上述区块链中未查询到上述目标数据时,进一步调用上述第一智能合约中的第一跨链逻辑,跨链调用与上述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于上述数据标识查询上述其它区块链中存证的上述目标数据。
步骤206、响应于上述第二智能合约查询到的上述目标数据,进一步调用上述第一智能合约中的核验逻辑,对查询到的上述目标数据进行数据核验。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化***,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
在本说明书中,上述区块链,为部署了用于数据核验的第一智能合约的任何类型的单个区块链;其中,上述区块链的具体类型可以包括公有链、私有链、联盟链中的任意一种。
例如,请参考图1,上述区块链具体可以为区块链A,区块链A中部署的用于数据核验的第一智能合约具体可以为智能合约A1。
在示出的一种实施方式中,上述区块链为联盟链。
在本说明书中,上述其它区块链包括与上述区块链对接的一个或多个区块链;其中,上述其它区块链可以直接或间接地与上述区块链对接。
例如,请参见图1,以上述区块链为区块链A为例,区块链B和区块链C分别与区块链A直接对接,区块链D通过区块链C与区块链A间接对接;区块链A及与其对接的它区块链的组网架构,请参见图1及前文关于图1相关的描述,这里不再赘述。
在本说明书中,上述用户客户端,是指接入至上述区块链中用于获取用户提交的待核验的目标数据并对其进行验证的客户端;其中,上述用户客户端可以运行任何类型的设备之上。例如,上述用户客户端可以运行在移动终端、PAD、PC等设备之上。
在本说明书中,上述用户客户端接入上述区块链的方式,不作具体限定。
例如,上述用户客户端可以作为上述区块链的节点通过向上述区块链发起区块链交易的方式直接接入至上述区块链中。
当然,在实际应用中,上述用户客户端也可以先接入至BaaS(Blockchain as aService,区块链即服务)平台,通过作为区块链成员的BaaS平台间接接入至上述区块链中。
在本说明书中,上述用户客户端可以获取用户提交的待核验的目标数据;其中,上述目标数据的数据类型及其存储方式,在本说明书中不作具体限定。
例如,上述目标数据具体可以包括文本、图片、视频、二进制文件等数据类型;上述目标数据可以被用户提交直接在上述用户客户端中保存,或者上述目标数据的存储路径可以被用户提交至上述用户客户端,以使上述用户客户端根据该存储路径获取上述目标数据。
在本说明书中,在上述目标数据获取后,上述用户客户端可以响应于用户在上述用户客户端输出界面的数据核验的触发操作,向上述区块链发起或者通过BaaS平台向上述区块链发起数据核验请求;
其中,上述数据核验请求包括上述目标数据的数据标识。上述目标数据的数据标识用于唯一指示上述目标数据。
在实现时,上述数据标识具体可以包括上述用户客户端将上述目标数据输入至预设的数据摘要算法计算得到的上述目标数据的数据摘要,该数据摘要也可以由用户直接提交并保存至上述用户客户端。上述数据标识除了可以包括上述目标数据的数据摘要外,还可以包括上述目标数据。
在本说明书中,上述数据摘要算法的类型,在本说明书中不作具体限定。例如,上述数据摘要算法具体可以包括MD5、SHA1、SHA256等不可逆的哈希算法;该数据摘要对应为将上述目标数据输入该哈希算法计算得到的哈希值。
当然,在实际应用中,该数据摘要也可以由上述用户客户端对接的BaaS平台基于上述数据摘要算法对上述目标数据计算得到,并由BaaS平台基于上述数据核验请求对应构建一笔用于数据核验的区块链交易,并向上述区块链发起区块链交易进行数据核验。
在本说明书中,在接收到上述数据核验请求后,上述区块链响应于上述数据核验请求,调用上述区块链中部署的用于数据核验的第一智能合约中的查询逻辑基于上述数据标识查询上述区块链中存证的上述目标数据。
例如,请参见图1,以上述区块链为区块链A,待核验的目标数据的数据标识为D1为例,区块链A响应于该数据核验请求,调用区块链A中部署的用于数据核验的智能合约A1中的查询逻辑以D1作为查找索引在区块链A中查找是否存证有与D1对应的本链存证的目标数据T2。
在示出的一种实施方式中,如果在上述区块链中查询到上述目标数据,则进一步调用上述第一智能合约中的核验逻辑,对查询到的上述目标数据进行数据核验。
接着以上示例继续举例,如果在区块链A中存证有与D1对应的目标数据T2,则从区块链A中获取目标数据T2,并验证获取的目标数据T2与待核验的目标数据T1进行比较,检查两者内容是否一致。
在本说明书中,在上述区块链中未查询存证的目标数据时,进一步调用上述第一智能合约中的第一跨链逻辑,跨链调用与上述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于上述数据标识查询上述其它区块链中存证的上述目标数据。
接着以上示例继续举例,在区块链A中未查询存证的目标数据T2时,进一步调用智能合约A1(第一智能合约)中的第一跨链逻辑,跨链调用与区块链A跨链对接的其它区块链(比如:区块链B、区块链C、区块链D)上部署的第二智能合约(比如:智能合约B、智能合约C、智能合约D)中的查询逻辑,基于数据标识D1查询该其它区块链中存证的目标数据T3。
在示出的一种实施方式中,上述区块链部署了用于跨链调用对接的上述其它区块链上部署的智能合约的跨链合约;上述第一智能合约中的第一跨链逻辑包括与上述跨链合约对应的调用逻辑。
例如,请参见图1,区块链A中还部署了智能合约A2;其中,智能合约A2为用于跨链调用对接的其它区块链(比如:区块链B)上部署的智能合约(比如:智能合约B)的跨链合约。智能合约A1(第一智能合约)中的第一跨链逻辑包括与智能合约A2(跨链合约)对应的调用逻辑。
在本说明书中,进一步地,在调用上述第一智能合约中的第一跨链逻辑,跨链调用与上述区块链跨链对接的上述其它区块链上部署的第二智能合约中的查询逻辑的过程中,上述区块链调用上述第一智能合约中的上述调用逻辑,进一步调用上述跨链合约中的第二跨链逻辑,以跨链调用与上述区块链跨链对接的上述其它区块链上部署的第二智能合约中的查询逻辑。
例如,以第一智能合约为区块链A的智能合约A1、跨链合约为区块链A的智能合约A2、第二智能合约为区块链B的智能合约B继续示例,区块链A调用智能合约A1中的调用逻辑来调用智能合约A2,并进一步调用智能合约A2中的第二跨链逻辑,以跨链调用与区块链A跨链对接的区块链B中的智能合约B中的查询逻辑在区块链B中查询预先存证的目标数据T3。
需要说明的是,在实际应用中,既可以在与上述区块链直接对接的上述其它区块链中查找存证的上述目标数据,也可以在与上述区块链对接的级联的上述其它区块链中逐级执行查找存证的上述目标数据。
比如:可以在与区块链A直接对接的区块链B、区块链C中并行执行查找目标数据T3。又比如:当在与区块链A对接的区块链C中未查找到目标数据T3时,可以通过区块链C中部署的智能合约C跨链调用区块链D中部署的智能合约D在区块链D中查找目标数据T3。当区块链D还存在对接级联的其它区块链N时,以此类推,不再赘述。
在示出的一种实施方式中,在调用上述第一智能合约中的上述调用逻辑,进一步调用上述跨链合约中的第二跨链逻辑,以跨链调用与上述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑的过程中,上述区块链调用上述第一智能合约中的上述调用逻辑调用上述跨链合约,并进一步调用上述跨链合约中的查询逻辑,以查询上述跨链合约的跨链数据库中是否缓存了上述目标数据;如果上述跨链数据库中未缓存上述目标数据,再进一步调用上述跨链合约中的第二跨链逻辑,以跨链调用与上述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑;如果上述跨链数据库中缓存了上述目标数据,获取上述跨链数据库中缓存的上述目标数据,进一步调用上述第一智能合约中的核验逻辑,对查询到的上述目标数据进行数据核验。
例如,在区块链A通过智能合约A1调用智能合约A2跨链调用智能合约B在区块链B中查找目标数据的过程中,区块链A可以调用智能合约A1智能合约A2,并进一步调用智能合约A2的查询逻辑在智能合约A2的跨链数据库中是否缓存了目标数据;如果该跨链数据库中未缓存该目标数据,再进一步调用智能合约A2中的第二跨链逻辑,以跨链调用区块链B中部署的智能合约B中的查询逻辑进行查找;否则,在该跨链数据库中已缓存该目标数据时,则直接获取该跨链数据库中缓存的目标数据,进一步调用智能合约A1中的核验逻辑,对查询到的该目标数据进行数据核验。
需要说明的是,上述跨链数据库可以包括位于合约虚拟机为上述跨链合约预先分配维护的一段内存空间的跨链查询返回的目标数据的缓存。上述跨链合约可以通过该内存空间发送调用上述第二智能合约进行针对目标数据进行跨链查询的消息调用(CALL指令),上述第二智能合约在查询到目标数据后,可以将查询得到的目标数据以及该目标数据对应的数据标识保存在该内存空间中,以由上述跨链合约可以以数据标识作为查找索引查询获取对应的目标数据。
比如:智能合约A2可以通过该内存空间发送调用智能合约B进行针对目标数据进行跨链查询的消息调用;其中,该消息调用具体至少包括智能合约A2中维护的智能合约B的合约地址;在智能合约B在查询到目标数据后,可以将查询得到的目标数据及其对应的数据标识保存在该内存空间中,以由智能合约A2在响应于上述数据核验请求时调用查询逻辑进行查询及获取。
在示出的一种实施方式中,在响应于上述第二智能合约查询到的上述目标数据,进一步调用上述第一智能合约中的核验逻辑,对查询到的上述目标数据进行数据核验之前,上述区块链跨链获取上述第二智能合约查询到的上述目标数据,并将获取到的上述目标数据发布至上述区块链中进行存储,以触发上述区块链中的各节点设备对上述目标数据进行共识验证,并在上述目标数据共识验证通过后,响应于上述第二智能合约查询到的上述目标数据,进一步调用上述第一智能合约中的核验逻辑,对查询到的上述目标数据进行数据核验。
例如,以区块链A通过智能合约A1调用智能合约A2跨链调用智能合约B在区块链B中查找到目标数据T3为例进行示例,在区块链A通过智能合约A2跨链获取智能合约B查询到的目标数据T3后,可以将获取到的目标数据T3发布至区块链A中进行存储,以触发区块链A中的各节点设备对目标数据T3进行共识验证,并在目标数据T3共识验证通过后,进一步调用智能合约A1中的核验逻辑,对查询到的目标数据T3进行数据核验。
需要说明的是,通过将跨链查询得到的目标数据在上述区块链中进行存储,以触发上述区块链的各个节点针对该目标数据强制共识验证。一方面,可以提高目标数据的可信性,避免上述区块链中的节点作恶可能导致针对目标数据进行篡改的风险;另一方面,在针对该目标数据进行下一次执行重复核验时,由于原来存证在其它区块链的目标数据已在本区块链中存证,所以在本区块链中调用上述第一智能合约即可查询到,从而减少了跨链交互,进而提高了数据核验效率。
在本说明书,在上述第二智能合约查询到上述目标数据后,上述区块链可以进一步调用上述第一智能合约中的核验逻辑,对查询到的上述目标数据进行数据核验。
接着以上示例继续举例,在第二智能合约A2查询到目标数据T3后,区块链A可以进一步调用第一智能合约A1中的核验逻辑,针对查询到的上述目标数据T3进行数据核验。
在示出的一种实施方式中,当上述数据标识包括数据摘要时,在对查询到的上述目标数据进行数据核验的过程中,上述区块链可以计算查询到的上述目标数据的数据摘要;以及核验计算出的上述数据摘要与上述数据核验请求中包括的上述数据摘要是否匹配;如果是,确定针对上述目标数据的数据核验通过;如果否,确定针对上述目标数据的数据核验不通过。
例如,以数据标识包括数据摘要,数据核验请求中包括的数据摘要是D1为例,区块链A可以计算查询到的目标数据T3的数据摘要D2;以及核验计算出的数据摘要D2与数据核验请求中包括的数据摘要D1是否一致;如果是,确定针对目标数据T1的数据核验通过;如果否,确定针对待核验的目标数据T1的数据核验不通过。
当然,在实际应用中,当上述数据标识除了包括数据摘要外,还包括待核验的上述目标数据时,在待核验的上述目标数据的数据摘要与查询得到的上述目标数据的数据摘要两者一致时,还可以进一步比较待核验的上述目标数据与查询得到的上述目标数据两者内容是否一致,如果两者内容一致,则针对待核验的上述目标数据的数据核验通过;如果否,确定针对待核验的上述目标数据的数据核验不通过。
通过以上各实施例可见,在用于数据核验的存证于区块链的目标数据分布于多个区块链时,基于本区块链中部署的存在嵌套调用的智能合约查询及获取跨链存证于与本区块链对接的其它区块链中的目标数据,并基于跨链查询得到的目标数据在本区块链中进行数据核验;
一方面,避免了同时开发多个区块链对应的多种查询数据核验接口,提高了开发效率;另一方面,将跨链查询得到的目标数据在本区块链中进行缓存及存证,提高了针对目标数据进行重复数据核验的核验效率;再一方面,将与本链数据查询、跨链数据查询及数据核验相关的多个合约执行逻辑通过两个独立但存在嵌套调用关系的合约(第一智能合约、跨链合约)进行解耦,既可以快速及时地响应多个数据核验请求并执行并行处理,提高了数据核验效率,又便于该两个智能合约的逻辑代码分别进行维护管理,提高了开发维护效率。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的数据核验装置的实施例。
本说明书的基于区块链的分级存储装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
从硬件层面而言,如图3所示,为本说明书的基于区块链的数据核验装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一示例性实施例示出的一种基于区块链的数据核验装置的框图。
请参考图4,基于区块链的数据核验装置40可以应用在前述图3所示的电子设备中;其中,所述区块链中部署了用于数据核验的第一智能合约;其中,所述区块链与至少一个其它区块链跨链对接,所述装置40包括:
接收模块401,接收用户客户端发起的数据核验请求;其中,所述数据核验请求包括待核验的目标数据的数据标识;
查询模块402,响应于所述数据核验请求,调用所述第一智能合约中的查询逻辑,基于所述数据标识查询所述区块链中存证的所述目标数据,并在所述区块链中未查询到所述目标数据时,进一步调用所述第一智能合约中的第一跨链逻辑,跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于所述数据标识查询所述其它区块链中存证的所述目标数据;
核验模块403,响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
在本实施例中,所述区块链部署了用于跨链调用对接的其它区块链上部署的智能合约的跨链合约;所述第一跨链逻辑包括与所述跨链合约对应的调用逻辑;
所述查询模块402进一步:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
在本实施例中,所述查询模块402进一步:
如果在所述区块链中查询到所述目标数据,则进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
在本实施例中,在响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验之前,所述装置还包括存储模块:
所述存储模块进一步,跨链获取所述第二智能合约查询到的所述目标数据,并将获取到的所述目标数据发布至所述区块链中进行存储,以触发所述区块链中的各节点设备对所述目标数据进行共识验证,并在所述目标数据共识验证通过后,响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
在本实施例中,所述查询模块402进一步:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的查询逻辑,以查询所述跨链合约的跨链数据库中是否缓存了所述目标数据;如果所述跨链数据库中未缓存所述目标数据,再进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
在本实施例中,所述核验模块403进一步:
如果所述跨链数据库中缓存了所述目标数据,获取所述跨链数据库中缓存的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
在本实施例中,所述数据标识包括数据摘要;
所述核验模块403进一步:
计算查询到的所述目标数据的数据摘要;
核验计算出的所述数据摘要与所述数据核验请求中包括的所述数据摘要是否匹配;如果是,确定针对所述目标数据的数据核验通过;如果否,确定针对所述目标数据的数据核验不通过。
在本实施例中,所述区块链为联盟链。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (8)
1.一种基于区块链的数据核验方法;所述区块链中部署了用于数据核验的第一智能合约,以及用于跨链调用对接的其它区块链上部署的智能合约的跨链合约;其中,所述第一智能合约和所述跨链合约存在嵌套调用关系,所述区块链与至少一个其它区块链跨链对接,所述方法包括:
接收用户客户端发起的数据核验请求;其中,所述数据核验请求包括待核验的目标数据的数据标识;
响应于所述数据核验请求,调用所述第一智能合约中的查询逻辑,基于所述数据标识查询所述区块链中存证的所述目标数据,并在所述区块链中未查询到所述目标数据时,进一步调用所述第一智能合约中的第一跨链逻辑中与所述跨链合约对应的调用逻辑,调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于所述数据标识查询所述其它区块链中存证的所述目标数据;
跨链获取所述第二智能合约查询到的所述目标数据,并将获取到的所述目标数据发布至所述区块链中进行存储,以触发所述区块链中的各节点设备对所述目标数据进行共识验证;
响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
2.根据权利要求1所述的方法,还包括:
如果在所述区块链中查询到所述目标数据,则进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
3.根据权利要求1所述的方法,所述调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,包括:
调用所述第一智能合约中的所述调用逻辑,进一步调用所述跨链合约中的查询逻辑,以查询所述跨链合约的跨链数据库中是否缓存了所述目标数据;如果所述跨链数据库中未缓存所述目标数据,再进一步调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑。
4.根据权利要求3所述的方法,还包括:
如果所述跨链数据库中缓存了所述目标数据,获取所述跨链数据库中缓存的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
5.根据权利要求1所述的方法,所述数据标识包括数据摘要;
所述对查询到的所述目标数据进行数据核验,包括:
计算查询到的所述目标数据的数据摘要;
核验计算出的所述数据摘要与所述数据核验请求中包括的所述数据摘要是否匹配;如果是,确定针对所述目标数据的数据核验通过;如果否,确定针对所述目标数据的数据核验不通过。
6.根据权利要求1所述的方法,所述区块链为联盟链。
7.一种基于区块链的数据核验装置;所述区块链中部署了用于数据核验的第一智能合约,以及用于跨链调用对接的其它区块链上部署的智能合约的跨链合约;其中,所述第一智能合约和所述跨链合约存在嵌套调用关系,所述区块链与至少一个其它区块链跨链对接,所述装置包括:
接收模块,接收用户客户端发起的数据核验请求;其中,所述数据核验请求包括待核验的目标数据的数据标识;
查询模块,响应于所述数据核验请求,调用所述第一智能合约中的查询逻辑,基于所述数据标识查询所述区块链中存证的所述目标数据,并在所述区块链中未查询到所述目标数据时,进一步调用所述第一智能合约中的第一跨链逻辑中与所述跨链合约对应的调用逻辑,调用所述跨链合约中的第二跨链逻辑,以跨链调用与所述区块链跨链对接的其它区块链上部署的第二智能合约中的查询逻辑,基于所述数据标识查询所述其它区块链中存证的所述目标数据;
存储模块,跨链获取所述第二智能合约查询到的所述目标数据,并将获取到的所述目标数据发布至所述区块链中进行存储,以触发所述区块链中的各节点设备对所述目标数据进行共识验证;
核验模块,响应于所述第二智能合约查询到的所述目标数据,进一步调用所述第一智能合约中的核验逻辑,对查询到的所述目标数据进行数据核验。
8.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110510862.9A CN113220717B (zh) | 2021-05-11 | 2021-05-11 | 基于区块链的数据核验方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110510862.9A CN113220717B (zh) | 2021-05-11 | 2021-05-11 | 基于区块链的数据核验方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220717A CN113220717A (zh) | 2021-08-06 |
CN113220717B true CN113220717B (zh) | 2023-04-07 |
Family
ID=77094816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110510862.9A Active CN113220717B (zh) | 2021-05-11 | 2021-05-11 | 基于区块链的数据核验方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220717B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113724890A (zh) * | 2021-08-31 | 2021-11-30 | 平安国际智慧城市科技股份有限公司 | 基于区块链的健康信息核验方法、装置、***及介质 |
CN114118988A (zh) * | 2021-11-08 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 基于区块链的跨境汇款方法及装置、电子设备 |
CN115082069B (zh) * | 2022-08-16 | 2022-11-04 | 人民法院信息技术服务中心 | 一种基于智能合约调度的跨链数据获取方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180089760A1 (en) * | 2016-09-26 | 2018-03-29 | Shapeshift Ag | System and method of providing a multi-asset rebalancing mechanism |
CN109753816A (zh) * | 2018-12-13 | 2019-05-14 | 广州通链计算机智能技术有限责任公司 | 一种区块链跨链的方法及实现*** |
CN111861481A (zh) * | 2020-09-22 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 一种区块链对账方法和*** |
-
2021
- 2021-05-11 CN CN202110510862.9A patent/CN113220717B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113220717A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220717B (zh) | 基于区块链的数据核验方法及装置、电子设备 | |
CN109003078B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
US20200169385A1 (en) | Data processing method and apparatus | |
CN110020542B (zh) | 数据读写方法及装置、电子设备 | |
EP3591510A1 (en) | Method and device for writing service data in block chain system | |
EP3565219B1 (en) | Service execution method and device | |
CN110032599B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
CN108599973B (zh) | 一种日志关联方法、装置及设备 | |
CN112000730B (zh) | 基于区块链的溯源信息写入、溯源信息验证的方法、*** | |
CN110032568B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及*** | |
CN111488291A (zh) | 区块链网络的压力测试方法及装置、*** | |
CN115002228A (zh) | 服务级联调用方法、装置、电子设备及存储介质 | |
CN111310137A (zh) | 一种区块链关联数据存证方法、装置及电子设备 | |
CN113469815A (zh) | 数据管理方法及装置 | |
WO2024021409A1 (zh) | 数据检索方法及装置 | |
CN110992039B (zh) | 交易处理方法、装置及设备 | |
WO2023092986A1 (zh) | 基于分布式身份标识的数据跨链转移和*** | |
CN115203746A (zh) | 数据账户的访问授权方法及装置 | |
CN113221164A (zh) | 基于区块链的数据核验方法及装置、电子设备 | |
CN111464312B (zh) | 一种区块链中账户地址的处理方法、装置和电子设备 | |
CN109214884B (zh) | 需求撮合方法及装置、电子设备 | |
CN113806335A (zh) | 一种应用于区块链的数据迁移方法及装置 | |
CN110060152B (zh) | 一种基于多个区块链网络的数据读取方法及*** | |
CN112434264A (zh) | 基于区块链的侵权处理方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40056809 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |