CN113722385B - 基于区块链网络的数据查询方法、装置、设备和存储介质 - Google Patents

基于区块链网络的数据查询方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN113722385B
CN113722385B CN202111292338.5A CN202111292338A CN113722385B CN 113722385 B CN113722385 B CN 113722385B CN 202111292338 A CN202111292338 A CN 202111292338A CN 113722385 B CN113722385 B CN 113722385B
Authority
CN
China
Prior art keywords
transaction
chain
data
target
transaction data
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
Application number
CN202111292338.5A
Other languages
English (en)
Other versions
CN113722385A (zh
Inventor
徐文超
申子熹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111292338.5A priority Critical patent/CN113722385B/zh
Publication of CN113722385A publication Critical patent/CN113722385A/zh
Application granted granted Critical
Publication of CN113722385B publication Critical patent/CN113722385B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, 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)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请涉及区块链技术领域,提供一种基于区块链网络的数据查询方法、装置、设备、存储介质和程序产品,相关实施例可以应用于地图车联、产业安全、数据安全等场景中,既可以节约存储资源,又可以节约区块链网络的运算资源。该方法包括:接收携带交易凭证的交易查询请求;交易凭证是区块链网络的目标子链对交易数据进行上链后,根据目标子链的链标识以及上链所需的与交易数据对应的查询索引生成的;解析交易凭证,获得链标识与查询索引;从区块链网络包括的多个子链中,确定链标识所对应的目标子链;将查询索引发送至属于目标子链的目标节点;根据目标节点基于查询索引,在目标子链已上链的交易数据中查询得到的交易数据,响应交易查询请求。

Description

基于区块链网络的数据查询方法、装置、设备和存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链网络的数据查询方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
为保证经济社会的安全稳定地发展,交易数据的真实性越来越受到重视。为了保证交易数据的真实性,防止交易数据被篡改,出现了基于区块链对交易数据进行上链的技术。区块链技术是由多种技术有机结合而成的,例如分布式数据存储、点对点传输、共识机制、加密算法等技术,通过多种技术的有机结合,可以提高数据篡改所花费的时间和成本,保证被上链的数据的真实性。
区块链网络可以包括多条链,每条链均可对对应的交易数据进行上链;在多链网络(也即包括多条链的区块链网络)中对交易数据进行上链后,为了在多链网络中查找到对应的交易数据,一般会将交易数据的交易凭证与上链设备的对应关系进行存储,花费较多的存储资源。
发明内容
基于此,有必要针对上述技术问题,提供一种基于区块链网络的数据查询方法、装置、计算机设备、存储介质和计算机程序产品。
一种基于区块链网络的数据查询方法,所述方法包括:
接收携带交易凭证的交易查询请求;所述交易凭证是所述区块链网络的目标子链对交易数据进行上链后,根据所述目标子链的链标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
解析所述交易凭证,获得所述链标识与所述查询索引;
从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;
将所述查询索引发送至属于所述目标子链的目标节点;
接收所述目标节点基于所述查询索引,在所述目标子链已上链的交易数据中查询并反馈的与所述查询索引对应的交易数据;
基于所述目标节点反馈的所述交易数据,对所述交易查询请求进行响应。
一种基于区块链网络的数据查询装置,所述装置包括:
请求接收模块,用于接收携带交易凭证的交易查询请求;所述交易凭证是所述区块链网络的目标子链对交易数据进行上链后,根据所述目标子链的链标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
交易凭证解析模块,用于解析所述交易凭证,获得所述链标识与所述查询索引;
目标子链确定模块,用于从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;
查询索引发送模块,用于将所述查询索引发送至属于所述目标子链的目标节点;
交易数据接收模块,用于接收所述目标节点基于所述查询索引,在所述目标子链已上链的交易数据中查询并反馈的与所述查询索引对应的交易数据;
请求响应模块,用于基于所述目标节点反馈的所述交易数据,对所述交易查询请求进行响应。
在一些实施例中,所述装置还包括:交易凭证生成模块,用于接收业务节点发送的所述交易数据;在所述区块链网络中确定用于对所述交易数据进行上链的目标子链;将所述交易数据发送至所述目标子链;在所述目标子链将所述交易数据的交易哈希作为所述交易数据的查询索引并根据所述交易哈希与所述交易数据的对应关系对所述交易数据进行上链后,获取所述目标子链反馈的所述交易哈希以及所述目标子链自身的链标识;根据所述目标子链的链标识和所述交易哈希生成所述交易数据对应的交易凭证。
在一些实施例中,所述交易凭证生成模块,还用于确定对所述交易数据进行上链所使用的上链节点交互协议;按所述上链节点交互协议对所述交易数据进行组装后,得到组装交易数据;使用所述业务节点的私钥对所述组装交易数据进行签名,并将签名后的所述组装交易数据发送至所述目标子链。
在一些实施例中,所述交易凭证生成模块,还用于接收所述目标子链对所述交易数据上链后反馈的上链回执信息;从所述上链回执信息中获取所述目标子链的链标识与所述交易哈希。
在一些实施例中,所述装置还包括区块信息获取模块,用于从所述上链回执信息中获取区块高度;所述区块高度是包括所述交易数据的数据区块在上链时所用的目标群组中的高度;所述目标群组包括依次串联的多个数据区块;将所述区块高度反馈给所述目标子链;接收所述目标子链基于所述区块高度确定所述目标群组中包括所述交易数据的数据区块后反馈的区块信息;所述区块信息包括所述交易数据的上链时间和有效时长;
所述交易凭证生成模块,还用于根据所述目标子链的链标识、所述交易哈希和所述区块信息生成所述交易数据对应的交易凭证。
在一些实施例中,所述装置还包括交易凭证加密模块,用于将生成的所述交易凭证加密处理后,获得加密交易凭证;向所述业务节点返回所述加密交易凭证。
在一些实施例中,所述交易凭证加密模块,还用于获取随机数,并使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;基于所述变换后的密钥,对生成的所述交易凭证进行加密,获得增强交易凭证;拼接所述增强交易凭证与所述随机数,获得加密的交易凭证。
在一些实施例中,所述交易凭证是加密的交易凭证;
所述交易凭证解析模块,还用于按所述加密的交易凭证的数据结构,从所述加密的交易凭证中划分出随机数与基于所述随机数加密获得的增强交易凭证;使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;利用所述变换后的密钥对所述增强交易凭证进行解密,得到解密的交易凭证;按所述解密的交易凭证的数据结构,从所述解密的交易凭证中解析出所述链标识与所述查询索引。
在一些实施例中,所述交易凭证还携带目标子链使用的上链节点交互协议的协议标识;
所述查询索引发送模块,还用于根据从所述交易凭证解析得到的所述协议标识,确定与所述协议标识对应的上链节点交互协议;按照所述上链节点交互协议,对所述查询索引进行封装;将封装后的查询索引发送至所述属于所述目标子链的目标节点;
所述交易数据接收模块,还用于接收所述目标节点在基于所述上链节点交互协议,对所述封装后的查询索引进行解封得到解封的查询索引后,在所述目标子链已上链的交易数据中查询并反馈所述交易数据。
在一些实施例中,所述交易凭证还携带包括所述交易数据的数据区块的区块信息,所述区块信息包括所述交易数据的上链时间和有效时长;
所述装置还包括有效性处理模块,用于按所述交易凭证的数据结构,从所述交易凭证中解析出包括所述交易数据的数据区块的区块信息;根据所述区块信息中的所述交易数据的上链时间和有效时长,判定所述交易凭证是否有效;当所述交易凭证有效时,执行所述从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链的步骤;当所述交易凭证无效时,响应于所述交易查询请求,返回关于所述交易凭证无效的信息。
在一些实施例中,所述交易数据被打包至所述目标子链所维护的目标群组的数据区块中,所述交易凭证是所述链标识、所述目标群组的群组标识以及所述查询索引生成的;
所述交易数据接收模块,还用于将对所述交易凭证解析得到的所述群组标识,发送至所述目标节点;接收所述目标节点基于所述群组标识,在所述目标子链所维护的多个群组中确定目标群组后,基于所述查询索引在所述目标群组包括的已上链的数据区块中查询并反馈的所述交易数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述基于区块链网络的数据查询方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述基于区块链网络的数据查询方法。
一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述基于区块链网络的数据查询方法。
上述基于区块链网络的数据查询方法、装置、计算机设备、存储介质和计算机程序产品中,基于对交易数据进行上链的目标子链的链标识和上链所需的查询索引,生成交易数据的交易凭证,该交易凭证携带有后续查询时所需的链标识和查询索引;在查询交易数据时,基于对该交易凭证的解析,可以得到对应的链标识,无需存储交易凭证与链标识的对应关系,节约存储资源,并且,基于对该交易凭证的解析,还可以得到上链时所用的查询索引,无需存储交易凭证与查询索引的对应关系,进一步节约存储资源;在得到链标识后,可以将查询索引发给区块链网络的多个子链中与该链标识对应的目标子链,目标子链基于查询索引查找到对应的交易数据,无需将查询索引发给全部子链进行查询,节约区块链网络的运算资源。
附图说明
图1(a)为一些实施例中区块链网络的架构示意图;
图1(b)为一些实施例中区块链网络中各个子链所维护的群组示意图;
图1(c)为一些实施例中生成数据区块的流程示意图;
图1(d)为一些实施例中基于区块链网络的数据查询系统示意图;
图2为一些实施例中基于区块链网络的数据查询方法的流程示意图;
图3(a)为一些实施例中生成交易凭证的流程示意图;
图3(b)为一些实施例中查询交易数据的流程示意图;
图4为一些实施例中对交易凭证进行加密的流程示意图;
图5为一些实施例中对加密的交易凭证进行解密以及查询交易数据的流程示意图;
图6为一些实施例中交易凭证所携带的信息示意图;
图7为一些实施例中基于区块链网络的数据查询方法的流程示意图;
图8为一些实施例中基于区块链网络的数据查询装置的结构框图;
图9为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一些实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请所提供的基于区块链网络的数据查询方法涉及区块链网络,以下先结合图1(a)、图1(b)和图1(c)对区块链网络进行介绍。
参见图1(a)所示的区块链网络,该区块链网络可以包括至少一个子链,如子链chain_1和子链chain_2;当区块链网络包括两个或两个以上的子链时,该区块链网络可以称为多链网络。
每一子链可以维护至少一个群组,如子链chain_1可以维护群组a和群组b,又如子链chain_2可以维护群组c、群组d和群组e;当子链所维护的群组数量为两个或两个以上时,该子链可以称为具有多群组的子链;此时,如果区块链网络也包括多条子链,那么该区块链网络可以称为多链多群组网络。
每个子链包括多个节点,如子链chain_1包括多个节点101,又如子链chain_2包括多个节点102;每个子链所维护的群组具体是由同一子链的节点之间进行数据共享实现的;为了保证属于同一子链的节点间的信息互通,属于同一子链的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。每个子链中的节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
以下以子链chain_1维护群组a为例,介绍子链维护群组的方式:任一个节点101进行正常工作接收到输入信息后,将该输入信息打包成群组a的数据区块并将数据区块发送给子链chain_1的其他节点101;其他节点101得到群组a的数据区块后,利用共识算法确定该数据区块是否为合法的数据区块;若是合法的数据区块,那么子链chain_1的每个节点101均存储该数据区块包括的输入信息,使得属于子链chain_1的全部节点上存储的数据均一致,完成子链chain_1对群组a的维护。
区块链网络中的各子链均有对应的链标识,如子链chain_1和chain_2。各子链包括的每个节点,也可以具有与对应的节点标识,而且各节点均可以存储有与各节点自身属于同一子链的其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的数据区块广播至同一子链的其他节点进行数据共享,实现子链对对应群组的维护。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
节点名称 节点标识
节点1 117.114.151.174
节点2 117.116.189.145
节点N xx.xx.xx.xx
表1
针对子链所维护的群组,该群组也可以称为区块链账本;当每一群组是由多个数据区块依次串联形成的,参见图1(b),创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个数据区块时,参见图1(c),子链中的任一节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
Figure DEST_PATH_IMAGE002_55A
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前的数据区块。随后,上述任一节点根据同一子链中的其他节点的节点标识,将新生成的数据区块分别发送给其所在的同一子链中的其他节点,由其他节点对新生成的数据区块进行校验,并在完成校验后其他节点各自存储新生成的数据区块,添加至群组a中。
其中,上述输入信息可以是交易数据,该交易数据包括交易发生时间、交易的商品名称和交易金额等。
本申请提供的方法可以应用于基于区块链网络的数据查询系统,如图1(d)所示,该系统可以包括上述的区块链网络、业务节点110和凭证路由节点120;业务节点110通过网络与凭证路由节点120进行通信,凭证路由节点120通过网络与区块链网络中的节点进行通信。业务节点110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。凭证路由节点120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。区块链网络中的节点可以是用独立的服务器或者是多个服务器组成的服务器集群来实现。
其中,该业务节点110可以是请求对交易数据进行上链的节点,业务节点110可以直接将待上链的交易数据发给区块链网络,也可以经由凭证路由节点120将待上链的交易数据发给区块链网络。区块链网络的其中一个子链对交易数据进行上链处理,该上链处理是基于交易数据和查询索引之间的对应关系进行的;具体来说,区块链网络的其中一个子链包括的任一节点接收到该待上链的交易数据后,可以生成该交易数据和该交易数据的查询索引之间的对应关系,并基于该对应关系,将该交易数据和查询索引打包至数据区块中;接着,接收到交易数据的节点将数据区块分发给同一子链的其他节点进行合法性判断;当大部分节点确认该数据区块合法后,各节点可以存储该数据区块。其中,区块链网络中的对交易数据进行上链处理的子链可以称为目标子链。
通过上述方式对交易数据进行上链后,利用本申请提供的方法进行链上查询交易数据,无需像传统技术一样存储交易数据的交易凭证和对该交易数据进行上链的子链之间的对应关系,节约存储资源。
在一个实施例中,凭证路由节点120可以接收业务节点110发送的携带交易凭证的交易查询请求,解析交易凭证,获得链标识与查询索引,从区块链网络包括的多个子链中,确定链标识所对应的目标子链,将查询索引发送至属于目标子链的目标节点,接收目标节点基于查询索引,在目标子链已上链的交易数据中查询并反馈的与查询索引对应的交易数据,基于目标节点反馈的交易数据,对业务节点110发送的交易查询请求进行响应。
结合图2,提供了一种基于区块链网络的数据查询方法,以该方法应用于图1(d)中的凭证路由节点120为例进行说明,包括以下步骤:
步骤S201,接收携带交易凭证的交易查询请求。
其中,交易凭证主要用于唯一表征各笔交易,各笔交易均具有对应的交易凭证,因此,每笔交易的交易数据与交易凭证对应。交易凭证是在区块链网络的目标子链对交易数据进行上链后,根据目标子链自身的链标识以及上链所需的与交易数据对应的查询索引生成的;查询索引主要用于唯一确定交易数据,具体可以用交易数据自身的哈希(可以称为交易哈希)表征。
其中,交易查询请求用于请求查询交易数据,交易数据可以包括交易的发生时间、交易的商品名称和金额等信息;该交易查询请求可以携带交易数据的交易凭证;当业务节点想要在区块链网络中查询某笔交易的交易数据时,可以生成携带有与该笔交易数据对应的交易凭证的交易查询请求,并将该交易查询请求发给凭证路由节点;凭证路由节点接收到携带交易凭证的交易查询请求后,进入步骤S202。
步骤S202,解析交易凭证,获得链标识与查询索引。
其中,针对交易凭证的解析方式可以与针对该交易凭证的生成方式相逆,例如,该交易凭证是通过链标识和查询索引的拼接得到的,那么解析该交易凭证的方式是切割该交易凭证,得到链标识和查询索引;又例如,该交易凭证是通过链标识和查询索引进行加权求和得到的,那么解析该交易凭证的方式是按照加权求和所用的权重,对交易凭证进行拆分,得到链标识和查询索引,具体例子来说,链标识是70,查询索引是30,分别为链标识和查询索引赋予的权重为0.9和0.1,那么加权求和得到的交易凭证是66;在解析交易凭证时,按照权重0.9和0.1,对交易凭证66进行拆分,得到的链标识为70,得到的查询索引为30。
链标识用于唯一表征区块链网络中的子链,区块链网络中的每一子链均有对应的链标识。
本步骤中,由于交易凭证是根据目标子链的链标识和交易数据对应的查询索引生成的,因此,凭证路由节点收到交易凭证后,可以基于与交易凭证的生成方式相逆的方式,对交易凭证进行解析,得到目标子链的链标识和查询索引。
步骤S203,从区块链网络包括的多个子链中,确定链标识所对应的目标子链。
区块链网络可以包括多个子链,此时,区块链网络可以称为多链网络;每个子链通过对应的链标识表征;凭证路由节点可以维护各个子链的链标识表,以便基于该链标识表确定对应的目标子链。由于子链包括多个节点,因此,凭证路由节点还可以在链标识表中同时维护各子链所包括的节点的节点标识,以便基于该表(如表2所示),确定属于目标子链的节点。
Figure DEST_PATH_IMAGE004_45A
表2
本步骤中,凭证路由节点从交易凭证中解析得到链标识后,从区块链网络的多个子链中,确定与该链标识对应的目标子链。
步骤S204,将查询索引发送至属于目标子链的目标节点。
查询索引用于在已上链的交易数据中查找与接收到的交易凭证对应的交易数据;在上链时,对查询索引的处理方式主要是:目标子链对交易数据进行上链处理时,该目标子链的任一节点将交易数据和对应的查询索引之间的对应关系打包至数据区块,当目标子链的大部分节点确定该数据区块合法后,各节点均可以存储该数据区块;此时,目标子链的任一节点均可以基于待查询交易凭证中的查询索引,在自身存储的数据区块中查找与该查询索引对应的交易数据。
目标节点可以是目标子链的节点,可以是从目标子链所包括的节点中随机选取的,目标节点的数量可以是一个或多个。目标节点还可以是基于目标子链的各节点的当前运算资源选取的,以提高交易数据的查询效率;具体来说,凭证路由节点可以获取目标子链中的各节点的当前运算资源,将当前运算资源的充足度大于充足度阈值的节点作为目标节点,或者按照当前运算资源的充足度从高至低,对各节点进行排序,将排在预设位数前(如排在前3名)的节点作为目标节点。
凭证路由节点在目标子链包括的多个节点中确定目标节点后,可以根据表2得到目标节点的节点标识,由于该节点标识是IP地址,因此,可以将该查询索引发送至该IP地址,以使目标节点接收到查询索引。
步骤S205,接收目标节点基于查询索引,在目标子链已上链的交易数据中查询并反馈的与查询索引对应的交易数据。
目标子链的各节点均存储有相同的数据区块,因此,数据区块包括的交易数据属于已上链的交易数据,因此,目标节点接收到凭证路由节点反馈的查询索引后,可以基于目标节点自身存储的数据区块的交易数据和查询索引间的对应关系,路由至对应的交易数据,并将该交易数据作为与查询索引对应的交易数据反馈至凭证路由节点。
步骤S206,基于目标节点反馈的交易数据,对交易查询请求进行响应。
本步骤中,凭证路由节点可以将目标子链反馈的交易数据作为用于响应交易查询请求的交易数据,并将该交易数据发送至对应的业务节点。
在目标节点为多个的情况下,凭证路由节点还可以先对各目标节点反馈的交易数据进行一致性比对,当一致性的程度高于预设的一致性程度时,将该交易数据反馈至业务节点。
上述基于区块链网络的数据查询方法中,基于对交易数据进行上链的目标子链的链标识和上链所需的查询索引,生成交易数据的交易凭证,该交易凭证携带有后续查询时所需的链标识和查询索引;在查询交易数据时,基于对该交易凭证的解析,可以得到对应的链标识,无需存储交易凭证与链标识的对应关系,节约存储资源,并且,基于对该交易凭证的解析,还可以得到上链时所用的查询索引,无需存储交易凭证与查询索引的对应关系,进一步节约存储资源;在得到链标识后,可以将查询索引发给区块链网络的多个子链中与该链标识对应的目标子链,目标子链基于查询索引查找到对应的交易数据,无需将查询索引发给全部子链进行查询,节约区块链网络的运算资源。
在一些实施例中,还包括如下步骤:接收业务节点发送的交易数据;在区块链网络中确定用于对交易数据进行上链的目标子链;将交易数据发送至目标子链;在目标子链将交易数据的交易哈希作为交易数据的查询索引并根据交易哈希与交易数据的对应关系对交易数据进行上链后,获取目标子链反馈的交易哈希以及目标子链自身的链标识;根据目标子链的链标识和交易哈希生成交易数据对应的交易凭证。
其中,查询索引可以是交易数据的哈希,也即交易哈希。
凭证路由节点接收到业务节点发送的待上链的交易数据后,可以在凭证路由节点自身维护的表2中确定用于对该交易数据进行上链的目标子链,如子链chain_1,并将该交易数据发给目标子链中的任一节点;该目标子链的节点接收到交易数据后,可以生成交易数据的哈希,得到交易哈希,并将交易哈希作为该交易数据的查询索引,形成交易哈希和查询索引的对应关系,并将该对应关系打包至数据区块中;该节点得到数据区块后,将该数据区块分发至该目标子链的其他节点;当该目标子链的大部分节点认为该数据区块合法后,各节点可以存储该数据区块,完成对该交易数据的上链。
在完成对该交易数据的上链后,该目标子链的形成数据区块的节点可以向凭证路由节点反馈该交易数据的交易哈希和该目标子链的链标识;凭证路由节点接收到交易哈希和链标识后,可以凭证交易哈希和链标识,得到与该交易数据对应的交易凭证,并将该交易凭证反馈给业务节点。
上述方式中,将交易数据的交易哈希作为交易数据的查询索引,由于每笔交易的交易数据的哈希具有唯一性,可以保证基于该交易哈希路由至唯一对应的交易数据,保证交易数据查询的准确性。
在一些实施例中,上述将交易数据发送至目标子链的步骤,具体包括:确定对交易数据进行上链所使用的上链节点交互协议;按上链节点交互协议对交易数据进行组装后,得到组装交易数据;使用业务节点的私钥对组装交易数据进行签名,并将签名后的组装交易数据发送至目标子链。
上链节点交互协议是指属于同一子链的节点间进行交互时所用的协议,规定节点间按照规定的数据格式进行交互,以便各节点可以正确地识别出被交互的数据;上链节点交互协议例如是以太坊架构(ETH,Ethereum)所用的协议、Fabric架构所用的协议和BCOS架构(Be Credible, Open & Secure)所用的协议等。
凭证路由节点在得到交易数据后,可以按照目标子链所用的上链节点交互协议规定的数据格式,对交易数据进行组装,得到组装交易数据;为表征该交易数据的来源于该业务节点,可以利用业务节点的私钥对组装交易数据进行签名,将签名后的组装交易数据发给目标子链的任一节点。
目标子链的任一节点接收到该签名后的组装交易数据后,可以按照上链节点交互协议规定的数据格式,对签名后的组装交易数据进行解封,得到签名后的交易数据;为判断该交易数据是否可以上链,该节点可以确定该签名表征的业务节点是否具有交易数据的上链权限,若有,则将该交易数据的交易哈希和该交易数据间的对应关系打包至数据区块,以便目标子链的全部节点对该数据区块进行合法性共识,完成该交易数据的上链。
上述方式中,按照目标子链所用的上链节点交互协议,对待上链的交易数据进行组装,使得目标子链的节点可以准确地识别出该交易数据;并且还利用业务节点的私钥进行签名,表征交易数据的来源方,避免对不具有上链权限的业务节点的交易数据的上链。
在一些实施例中,上述获取目标子链反馈的交易哈希以及目标子链自身的链标识的步骤,具体包括:接收目标子链对交易数据上链后反馈的上链回执信息;从上链回执信息中获取目标子链的链标识与交易哈希。
上链回执信息是目标子链对交易数据进行上链后反馈的与该交易数据有关的上链信息,例如对该交易数据进行上链的目标子链的链标识以及上链所需的交易哈希等。
目标子链中形成包括该交易数据和交易哈希的对应关系的数据区块的节点,可以向凭证路由节点反馈上链回执信息;凭证路由节点接收该上链回执信息后,从上链回执信息中提取目标子链的链标识和交易哈希,并基于链标识和交易哈希,生成该交易数据的交易凭证,并将该交易凭证反馈至业务节点。
上述方式中,基于目标子链反馈的上链回执信息,得到目标子链的链标识和交易哈希,保证链标识和交易哈希的准确性,保证交易凭证携带有准确的交易数据的路由信息。
在一些实施例中,还包括如下步骤:从上链回执信息中获取区块高度;将区块高度反馈给目标子链;接收目标子链基于区块高度确定目标群组中包括交易数据的数据区块后反馈的区块信息;区块信息包括交易数据的上链时间和有效时长。上述根据目标子链的链标识和交易哈希生成交易数据对应的交易凭证的步骤,具体包括:根据目标子链的链标识、交易哈希和区块信息生成交易数据对应的交易凭证。
其中,群组也可以称为区块链账本,主要是包括依次串联的多个数据区块,如图1(c)所示;目标子链可以维护多个群组,可以从目标子链所维护的多个群组中选择其中一个群组对交易数据进行上链,该上链所用的群组称为目标群组。示例性地,将子链chain_1维护的群组a作为目标群组,在群组a中对交易数据进行上链的具体过程是:子链chain_1所维护的群组是群组a和群组b,因此,子链chain_1的任一节点101均存储有群组a的数据区块和群组b的数据区块,且同一群组的数据区块是依次串联的;若某个节点101接收到凭证路由节点发送的待上链的交易数据后,若将群组a作为目标群组,那么该节点101可以确定自身存储的群组a的数据区块中生成时间最新的数据区块,并按照图1(b)和图1(c)介绍的方式,基于该生成时间最新的数据区块,生成包括该交易数据和交易哈希的对应关系的数据区块;接着,该节点101将新生成的数据区块发送至其他节点101进行合法性共识;当大部分节点101认为该新生成的数据区块合法时,各节点101将该新生成的数据区块和群组a的其他数据区块进行存储,完成在群组a中对交易数据的上链。
群组包括依次串联的多个区块,该区块的各区块通过区块在群组中的高度进行唯一表征,例如,群组a包括block_1 -> block_2 -> block_3-> block_4,当block_2在群组a的高度是2,那么可以通过区块高度2确定block_2。
上链回执信息可以携带区块高度,该上链回执信息携带的区块高度是包括交易数据的数据区块在上链时所用的目标群组中的高度。
凭证路由节点接收到上链回执信息后,可以从上链回执信息中得到区块高度,并将该区块高度反馈至目标子链中生成包括交易数据和交易哈希的对应关系的数据区块的节点;节点收到该区块高度后,若该交易数据是在群组a中进行上链的,那么节点可以在群组a包括的数据区块中符合该区块高度的数据区块,并得到该数据区块的区块信息;该区块信息包括交易数据的上链时间和有效时长。
凭证路由节点接收到目标子链的节点反馈的上链时间和有效时长后,可以将目标子链的链标识、交易哈希、上链时间和有效时长进行拼接,得到交易凭证并反馈至业务节点。
上述方式中,结合目标子链的链标识、交易哈希、上链时间和有效时长生成交易凭证,后续欲进行链上查询交易数据时,可以先基于交易凭证携带的上链时间和有效时长,判断该交易凭证是否处于有效期,若处于有效期则进行链上查询,若不处于有效期则不进行链上查询,节约区块链网络的运算资源;并且,根据区块高度,可以准确地确定包括该交易数据的数据区块,得到准确的上链时间和有效时长,保证后续交易凭证有效性判断的准确性。
在一些实施例中,如图3(a)所示,上述生成交易凭证的方法主要包括如下步骤:步骤S301,业务节点向凭证路由节点发送待上链的交易数据,其中,该待上链的交易数据可以是交易的发生时间、商品名称和金额等信息;步骤S302,凭证路由节点确定用于对交易数据进行上链的目标子链,并按照目标子链所用的上链节点交互协议对交易数据进行组装,得到组装交易数据;步骤S303,凭证路由节点利用业务节点的私钥,对组装交易数据进行签名,得到签名后的交易数据;步骤S304,凭证路由节点向属于区块链网络的目标子链的任一节点发送签名后的组装交易数据;步骤S305,目标子链的节点接收到该签名后的组装交易数据后,按照上链节点交互协议,对签名后的组装交易数据进行解封,得到交易数据;步骤S306,目标子链对解封得到的交易数据进行上链;步骤S307,目标子链上链完成后,向凭证路由节点反馈上链回执信息;步骤S308,凭证路由节点接收到上链回执信息后,从上链回执信息中获取目标子链的链标识、交易哈希和区块高度;步骤S309,凭证路由节点向目标子链反馈区块高度;步骤S310,目标子链的任一节点接收到该区块高度后,基于该区块高度,在目标群组中确定包括该交易数据的数据区块,并得到该数据区块的区块信息,向凭证路由节点反馈该区块信息;其中,目标群组是对交易数据进行上链时所用的群组;区块高度是包括交易数据的数据区块在上链时所用的目标群组中的高度;该区块信息包括交易数据的上链时间和有效时长;步骤S311,凭证路由节点从上链回执信息中获取交易数据的上链时间和有效时长;步骤S312,凭证路由节点基于链标识、交易哈希、上链时间和有效时长,生成交易凭证。
上述方式中,将交易数据的交易哈希作为交易数据的查询索引,由于每笔交易的交易数据的哈希具有唯一性,可以保证基于该交易哈希路由至唯一对应的交易数据,保证交易数据查询的准确性;并且,按照目标子链所用的上链节点交互协议,对待上链的交易数据进行组装,使得目标子链的节点可以准确地识别出该交易数据;另外,还利用业务节点的私钥进行签名,表征交易数据的来源方,避免对不具有上链权限的业务节点的交易数据的上链;以及,基于目标子链反馈的上链回执信息,得到目标子链的链标识和交易哈希,保证链标识和交易哈希的准确性,保证交易凭证携带有准确的交易数据的路由信息;结合目标子链的链标识、交易哈希、上链时间和有效时长生成交易凭证,后续欲进行链上查询交易数据时,可以先基于交易凭证携带的上链时间和有效时长,判断该交易凭证是否处于有效期,若处于有效期则进行链上查询,若不处于有效期则不进行链上查询,节约区块链网络的运算资源;并且,根据区块高度,可以准确地确定包括该交易数据的数据区块,得到准确的上链时间和有效时长,保证后续交易凭证有效性判断的准确性。
在一些实施例中,如图3(b)所示,在生成交易凭证后,凭证路由节点还可以进行加密处理,具体来说:步骤S313,将生成的交易凭证加密处理后,获得加密交易凭证;步骤S314,向业务节点返回加密交易凭证。
该加密处理主要是路由凭证交易节点可以利用预设于自身的密钥进行的。凭证路由节点生成交易凭证后,可以先对交易凭证进行加密,得到加密的交易凭证,并向业务节点反馈加密交易凭证。
上述方式中,为了保证交易凭证的安全性,可以对交易凭证进行加密处理,避免其他设备可以轻易地从交易凭证中得到交易数据的路由信息,提高交易数据的路由信息的安全性。
在一些实施例中,上述将生成的交易凭证加密处理的步骤,具体包括:获取随机数,并使用随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;基于变换后的密钥,对生成的交易凭证进行加密,获得增强交易凭证;拼接增强交易凭证与随机数,获得加密的交易凭证。
其中,原始密钥是预设于凭证路由节点的密钥;随机数是随机生成的数(可以记为rankNum),该随机数小于原始密钥(可以记为originKey)具有的位数,例如原始密钥具有的25位数,那么该随机数小于25。
凭证路由节点得到随机数后,利用随机数对原始密钥进行位移变换,例如,随机数是8,那么凭证路由节点可以将8作为位移的位数,并向左或者向右移动原始密钥,得到变换后的密钥;接着,凭证路由节点利用变换后的密钥对交易凭证进行加密,将所得到的交易凭证称为增强交易凭证;凭证路由节点可以凭证增强交易凭证和随机数,得到加密的交易凭证。
上述方式中,利用随机数对原始密钥进行位移变换,利用变换得到的密钥对交易凭证进行加密,提高交易数据的路由信息的安全性;并且将随机数和增强交易凭证进行拼接,得到加密交易凭证,保证凭证路由节点可以基于该随机数对加密交易凭证进行解密,实现交易数据的链上查询。
在一些实施例中,上述基于变换后的密钥,对生成的交易凭证进行加密,获得增强交易凭证的步骤,具体可以包括:从变换后的密钥中提取部分密钥,利用部分密钥,对交易凭证进行加密,得到增强交易凭证。例如,在得到变换后的密钥后,可以提取前16位或者前8位的密钥,得到部分密钥,并利用该部分密钥对交易凭证进行加密,得到增强交易凭证。
上述方式中,从变换后的密钥中提取部分密钥进行加密,进一步提升交易凭证携带的交易数据的路由信息的安全性。
在一些实施例中,上述拼接增强交易凭证与随机数,获得加密的交易凭证的步骤,具体可以包括:若随机数的位数小于预设位数,则对随机数进行补位,使得补位后的随机数的位数为预设位数,得到补位随机数。例如,若随机数的位数为一位,预设位数为两位,该随机数不足两位,那么可以用0对该随机数进行左侧补位,得到位数为两位的补位随机数;在得到补位随机数后,拼接该补位随机数和增强交易凭证,得到加密的交易凭证。
上述方式中,在随机数的位数不足预设位数时,对随机数进行补位,保证不同拼接得到的加密交易凭证的位数是一致的。
在一些实施例中,上述步骤S313所说的对交易凭证进行加密处理的方式,具体包括图4所示的步骤:步骤S401,凭证路由节点获取原始密钥和随机数,例如,凭证路由节点在0至15的整数区间内随机取出一个整数,作为随机数;步骤S402,凭证路由节点按照随机数,对原始密钥进行位移变换,得到变换后的密钥;步骤S403,凭证路由节点从变换后的密钥中提取部分密钥,例如,将变换后的密钥的前16位作为部分密钥;步骤S404,凭证路由节点利用部分密钥对交易凭证进行加密,得到增强交易凭证;步骤S405,当随机数的位数不足预设位数时,凭证路由节点对随机数进行补位,以使补位后的随机数的位数为预设位数,得到补位随机数;补位方式例如是:利用0对随机数进行左侧补位;步骤S406,凭证路由节点拼接增强交易凭证和补位随机数,得到加密交易凭证。
上述方式中,为了保证交易凭证的安全性,可以对交易凭证进行加密处理,避免其他设备可以轻易地从交易凭证中得到交易数据的路由信息,提高交易数据的路由信息的安全性;并且,利用随机数对原始密钥进行位移变换,利用变换得到的密钥对交易凭证进行加密,提高交易数据的路由信息的安全性;另外,将随机数和增强交易凭证进行拼接,得到加密交易凭证,保证凭证路由节点可以基于该随机数对加密交易凭证进行解密,实现交易数据的链上查询;以及,从变换后的密钥中提取部分密钥进行加密,进一步提升交易凭证携带的交易数据的路由信息的安全性;在随机数的位数不足预设位数时,对随机数进行补位,保证不同拼接得到的加密交易凭证的位数是一致的。
在一些实施例中,凭证路由节点反馈至业务节点的交易凭证是加密的交易凭证,该加密交易凭证可以是结合链标识和交易哈希得到的,也可以是结合链标识、交易哈希、上链时间和有效时长得到的。
在加密交易凭证是结合链标识、交易哈希、上链时间和有效时长得到的情况下,如图3(b)所示,步骤S315,当业务节点欲查询加密交易凭证对应的交易数据时,将加密交易凭证反馈至凭证路由节点;步骤S316,凭证路由节点对加密交易凭证进行解密,得到明文交易凭证(也可以简称为交易凭证);步骤S317,凭证路由节点解析明文交易凭证,得到链标识、上链时间、有效时长和交易哈希等信息:步骤S318,凭证路由节点基于上链时间和有效时长,确定交易凭证有效时,则按照目标子链所用的上链节点交互协议,对交易哈希进行组装;步骤S319,凭证路由节点确定区块链网络的多个子链中,与链标识对应的目标子链,并向目标子链的节点发送组装的交易哈希;步骤S320,目标子链的节点按照上链节点交互协议,对组装的交易哈希进行解封,得到交易哈希;步骤S321,目标子链的节点基于交易哈希,在已上链的交易数据中查询与该交易哈希对应的交易数据;步骤S322,凭证路由节点获取目标子链的节点反馈的交易数据并转给业务节点;步骤S323,业务节点将接收到的交易数据作为欲查询的加密交易凭证对应的交易数据。
上述方式中,对加密交易凭证进行解密得到明文交易凭证,从明文交易凭证中解析得到上链时间、有效时长、链标识和交易哈希,基于交易凭证携带的上链时间和有效时长,判断该交易凭证是否处于有效期,若处于有效期则进行链上查询,若不处于有效期则不进行链上查询,节约区块链网络的运算资源。
在一些实施例中,加密交易凭证的形成方式可以是:利用随机数对原始密钥进行位移变换后,基于变换后的密钥,对交易凭证进行加密得到增强交易凭证,并拼接增强交易凭证和随机数得到加密交易凭证。
在此情况下,凭证路由节点解析交易凭证,获得链标识与查询索引的步骤,具体可以包括:按加密的交易凭证的数据结构,从加密的交易凭证中划分出随机数与基于随机数加密获得的增强交易凭证;使用随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;利用变换后的密钥对增强交易凭证进行解密,得到解密的交易凭证;按解密的交易凭证的数据结构,从解密的交易凭证中解析出链标识与查询索引。
其中,加密交易凭证是根据随机数和增强交易凭证拼接得到的,因此,该加密交易凭证的数据结构可以分为随机数对应的结构和增强交易凭证对应的结构。若明文形式的交易凭证是根据链标识和查询索引拼接得到的,那么该明文形式的交易凭证的数据结构可以分为链标识对应的结构和查询索引对应的结构。
凭证路由节点按照加密交易凭证的数据结构,对加密交易凭证进行切割,得到随机数和增强交易凭证;然后利用随机数对原始密钥进行位移变换,得到变换后的密钥,并利用变换后的密钥对增强交易凭证进行解密,得到解密的交易凭证(可以称为明文交易凭证);接着,按照明文交易凭证的数据结构,对明文交易凭证进行切割,得到链标识和查询索引。
上述方式中,对加密交易凭证切割得到随机数和增强交易凭证,然后基于随机数对原始密钥进行位移变换得到变换后的密钥,基于变换后的密钥对增强交易凭证进行解密,并解析得到链标识和查询索引,保证链上查询交易数据的正常进行。
在一些实施例中,如果加密交易凭证是按照图4所示的步骤形成的,那么对加密交易凭证进行解密过程具体包括图5所示的步骤:
步骤S501,当业务节点欲查询加密交易凭证对应的交易数据时,向凭证路由节点发送加密交易凭证;步骤S502,凭证路由节点对加密交易凭证进行切分,得到增强交易凭证和补位随机数;步骤S503,凭证路由节点对补位随机数进行补位的逆处理,得到无补位的随机数;步骤S504,凭证路由节点利用无补位的随机数,对原始密钥进行位移变换,得到变换后的密钥;步骤S505,凭证路由节点从变换后的密钥中提取部分密钥;步骤S506,利用部分密钥对增强交易凭证进行解密,得到明文交易凭证。
凭证路由节点按照上述步骤得到明文交易凭证后,还可以执行步骤S507,对明文交易凭证进行切分,得到上链时间、有效时长、链标识和交易哈希;步骤S508,基于上链时间和有效时长确定交易凭证是否有效;若无效,则进入步骤S511,向业务节点反馈交易凭证已失效的信息;若有效,则进入步骤S509,将交易哈希发给与链标识对应的目标子链,以使目标子链基于交易哈希进行链上查询;步骤S510,凭证路由节点接收目标子链反馈的交易数据,并发给业务节点。
上述方式中,按照对交易凭证进行加密的逆处理,对加密交易凭证进行解密,得到明文交易凭证,既保证交易凭证携带的交易数据的路由信息的安全性,也保证解密的正确性。
在一些实施例中,交易凭证还携带目标子链使用的上链节点交互协议的协议标识。在此情况下,凭证路由节点可以从交易凭证中解析得到协议标识,确定与协议标识对应的上链节点交互协议。协议标识用于唯一标识上链节点交互协议,例如,0ETH表征以太坊架构所用的上链节点交互协议,FABR表征Fabric架构所用的上链节点交互协议,BCOS表征BCOS架构所用的上链节点交互协议。
凭证路由节点将查询索引发送至属于目标子链的目标节点时,可以具体执行如下步骤:按照上链节点交互协议,对查询索引进行封装;将封装后的查询索引发送至属于目标子链的目标节点;
也就是说,凭证路由节点从交易凭证中解析得到协议标识后,按照该协议标识对应的上链节点交互协议规定的数据格式,对查询索引进行封装,并将封装后的查询索引发送至目标子链的目标节点,以进行链上查询。
目标子链的目标节点接收到封装后的查询索引后,按照上链节点交互协议,对封装后的查询索引进行解封,得到解封的查询索引,并在目标子链已上链的交易数据中查询与该查询索引对应的交易数据,并反馈至凭证路由节点。
上述方式中,基于目标子链所用的上链节点交互协议,对查询索引进行封装,保证目标子链的节点可以正确识别出查询索引,保证交易数据的准确性。
在一些实施例中,在交易凭证不是加密交易凭证,是明文交易凭证的情况下,若该交易凭证还携带包括交易数据的数据区块的区块信息,区块信息包括交易数据的上链时间和有效时长;凭证路由节点可以执行如下:按交易凭证的数据结构,从交易凭证中解析出包括交易数据的数据区块的区块信息;根据区块信息中的交易数据的上链时间和有效时长,判定交易凭证是否有效;当交易凭证有效时,执行从区块链网络包括的多个子链中,确定链标识所对应的目标子链的步骤;当交易凭证无效时,响应于交易查询请求,返回关于交易凭证无效的信息。
其中,交易凭证是由多种信息拼接形成的,该交易凭证的数据结构可以分为链标识对应的结构、查询索引对应的结构、上链时间对应的结构和有效时长对应的结构等等。按照该交易凭证的数据结构,凭证路由节点对交易凭证进行切割,得到链标识、查询索引、上链时间和有效时长;如果上链时间至当前时间的时长小于或等于有效时长,则确定交易凭证有效,接着执行从区块链网络包括的多个子链中,确定链标识所对应的目标子链的步骤;如果上链时间至当前时间的时长大于有效时长,则确定交易凭证无效,此时凭证路由节点可以向业务节点反馈交易凭证无效的信息,停止链上查询交易数据。
上述方式中,按照交易凭证的数据结构,从交易凭证中解析出上链时间和有效时长,判断该交易凭证是否处于有效期,若处于有效期则进行链上查询,若不处于有效期则不进行链上查询,节约区块链网络的运算资源。
在一些实施例中,交易数据被打包至目标子链所维护的目标群组的数据区块中,交易凭证是链标识、目标群组的群组标识以及查询索引生成的。示例性地,若目标子链为chain_1,该子链chain_1维护群组a和群组b,若交易数据被打包至群组a,该群组a可以称为目标群组,那么可以根据子链chain_1的链标识、群组a的群组标识和查询索引生成交易凭证;生成方式可以是拼接生成。
在此情况下,凭证路由节点可以执行如下步骤:将对交易凭证解析得到的群组标识,发送至目标节点;接收目标节点基于群组标识,在目标子链所维护的多个群组中确定目标群组后,基于查询索引在目标群组包括的已上链的数据区块中查询并反馈的交易数据。
示例性地,凭证路由节点从交易凭证中解析得到子链chain_1的链标识、群组a的群组标识和查询索引,基于子链chain_1的链标识,将子链chain_1作为目标子链,并将子链chain_1的其中一个或多个节点作为目标节点,将群组a的群组标识和查询索引发给目标节点;目标节点基于该群组a的群组标识,在自身存储的群组a的数据区块和群组b的数据区块中,确定群组a的数据区块,并在群组a的数据区块包括的交易数据中,查找与查询索引对应的交易数据,并反馈至凭证路由节点。
上述方式中,在目标子链维护多个群组的情况下,结合目标群组的群组标识、目标子链的链标识和查询索引生成交易凭证,使得目标节点可以基于目标群组的群组标识,确定目标群组,并直接在目标群组的数据区块包括的交易数据中查询与查询索引对应的交易数据,避免对其他不相干的群组的数据区块进行查询,提高查询效率。
为了更好地理解上述方法,详细阐述一个本申请基于区块链网络的数据查询方法的应用实例,本应用实例所提供的方案主要包括:
(1)提出一种基于ICAP协议生成存证溯源交易凭证的交易方案,利用此方案,能够生成一种含有寻址路由的交易凭证;
(2)提出一种可高并发核验的交易凭证生成方案,通过此方案,交易凭证的有效性核验能够在代码级就可被核验,大大提升了核验效率;
(3)提出一种兼容多种链底层的交易凭证方案,通过此方案,能够将多种区块链底层的交易hash进行统一化;其中不同的链底层所用的上链节点交互协议不同,如Fabric架构所用的协议、ETH架构所用的协议和BCOS架构所用的协议不同。
(4)提出一种上链数据有效期核验的解决方案,交易凭证中含有交易数据的有效期,能够清晰知道已上链的交易数据的有效期,便于提供对数据有有效期处理的业务上链行为,同时也能够为做已上链且过期的交易数据进行清理提供有力的条件。
(5)提出一种多链分发交易寻址路由的解决方案。
如图6所示,本实施例的交易凭证是根据协议标识、链标识、群组标识、上链时间、有效时长、交易哈希和校验码拼接得到的,可以设定交易凭证的长度,同样,也可以设定协议标识、链标识、群组标识、上链时间、有效时长、交易哈希和校验码在交易凭证中占用的长度。
以下介绍协议标识、链标识、群组标识、上链时间、有效时长、交易哈希和校验码:
协议标识(可以记为chainName):也可以称为链底层标识,该协议标识的在交易凭证中占用的长度可以设定为4位;协议标识主要是指同一子链的节点间进行交互所用的协议,如Fabric架构所用的协议的标识为FABR,ETH架构所用的协议的标识为0ETH,BCOS架构所用的协议的标识为BCOS;可以以明文形式表征。
链标识(可以记为chainID):主要用于唯一表征区块链网络中各子链;该链标识在交易凭证中占用的长度可以设定为3位;可以由原始10进制数字链标识进行Base36转换得到,转换得到数值处于0至46655之间;若转换得到的数值具有的位数不足3位,可以用0进行左侧补位。
群组标识(可以记为orgCodeId):主要用于唯一表征子链所维护的各群组;该群组标识在交易凭证中占用的长度可以设定为3位;由原始10进制群组标识进行Base36转换得到,转换得到数值处于0至46655之间;若转换得到位数不足3位,可以用0进行左侧补位。
上链时间(可以记为startDate):主要指交易数据的上链时间;该群组标识在交易凭证中占用的长度可以设定为6位;对交易有效期的截止时间进行Base36进行转换得到,转换得到的上链时间的格式为“YYYYMMDD”,其中“YYYY”表示年,“MM”表示月,“DD”表示日;具体可以将交易数据被打包至数据区块的时间作为交易数据的上链时间。
有效时长(可以记为valMonth):表征交易数据和交易凭证的有效时长;该有效时长在交易凭证中占用的长度可以设定为2位;由原始月份时长进行Base36转换得到,转换得到的最长时长为1295个月;若转换得到位数不足2位,可以用0进行左侧补位;如果交易数据或交易凭证是永久有效的,那么其有效时长为00。
校验码:该校验码在交易凭证中占用的长度可以设定为2位;校验码可以是十进制的数,具体可以将(98-(协议标识+链标识+群组标识+上链时间+有效时长+“00”+交易哈希)mod 97)的结果作为校验码。
交易哈希(可以记为Hash):交易数据的哈希,对交易数据进行哈希运算得到;该交易哈希在交易凭证中占用的长度可以设定为50位;可以由原始的16进制Hash进行Base36转换得到,若转换得到的位数不足,可以用0进行左侧补位。
按照上述为协议标识、链标识、群组标识、上链时间、有效时长、交易哈希和校验码设定的长度,拼接得到的交易凭证的长度为70位。
示例性地,
Figure DEST_PATH_IMAGE006_41A
本实例主要包括(1)交易数据上链、(2)交易凭证生成、(3)交易凭证加密、(4)交易凭证解密、(5)交易凭证解析和(6)链上查询。结合图7介绍各部分包括的步骤:
用户完成交易后,用户可以将该笔交易的相关数据(如交易的发生时间、商品名称和金额等)发给业务节点,以对交易数据进行上链。
(1)交易数据上链包括:
步骤S701,业务节点将待上链的交易数据发给凭证路由节点;步骤S702,凭证路由节点确定用于对交易数据进行上链的目标子链,并按照目标子链所用的上链节点交互协议对交易数据进行组装,得到组装交易数据;步骤S703,凭证路由节点利用业务节点的私钥,对组装交易数据进行签名,得到签名后的交易数据;步骤S704,凭证路由节点向属于区块链网络的目标子链的任一节点发送签名后的组装交易数据;步骤S705,目标子链的节点接收到该签名后的组装交易数据后,按照上链节点交互协议,对签名后的组装交易数据进行解封,得到交易数据;步骤S706,目标子链在目标子链所维护的其中一个群组中对解封得到的交易数据进行上链。
(2)交易凭证生成包括:
步骤S707,目标子链上链完成后,向凭证路由节点反馈上链回执信息;步骤S708,凭证路由节点接收到上链回执信息后,从上链回执信息中获取目标子链的链标识、群组标识、交易哈希和区块高度;步骤S709,凭证路由节点向目标子链反馈区块高度;步骤S710,目标子链的任一节点接收到该区块高度后,基于该区块高度,在目标群组中确定包括该交易数据的数据区块,并得到该数据区块的区块信息,向凭证路由节点反馈该区块信息;其中,目标群组是对交易数据进行上链时所用的群组;区块高度是包括交易数据的数据区块在上链时所用的目标群组中的高度;该区块信息包括交易数据的上链时间和有效时长;步骤S711,凭证路由节点从上链回执信息中获取交易数据的上链时间和有效时长;步骤S712,凭证路由节点拼接目标子链所用的上链交互协议的协议标识、链标识、交易哈希、上链时间、有效时长、校验码和群组标识,得到交易凭证。
(3)交易凭证加密包括:
步骤S713,凭证路由节点对交易凭证加密处理后,获得加密交易凭证;具体的加密方式可以是图4介绍的方式,这里不赘述。步骤S714,凭证路由节点向业务节点返回加密交易凭证。
当用户想要链上查询交易数据时,可以将该交易数据的加密交易凭证发给业务节点。
(4)交易凭证解密包括:
步骤S715,业务节点将加密交易凭证反馈至凭证路由节点;步骤S716,凭证路由节点对加密交易凭证进行解密,得到明文交易凭证;该解密方式是加密方式的逆处理,当加密方式是图4介绍的方式时,解密方式是图5介绍的方式,这里不赘述。
(5)交易凭证解析包括:
步骤S717,凭证路由节点对明文交易凭证进行切分,得到协议标识、链标识、上链时间、有效时长、交易哈希、校验码和群组标识:步骤S718,凭证路由节点确定上链时间至当前时间的时长小于或等于有效时长时,确定交易凭证有效,并按照协议标识对应的上链节点交互协议,对交易哈希和群组标识进行组装;步骤S719,凭证路由节点确定区块链网络的多个子链中,与链标识对应的目标子链,并向目标子链发送组装的交易哈希和群组标识。
(6)链上查询包括:
步骤S720,目标子链按照上链节点交互协议,对组装的交易哈希和群组标识进行解封,得到交易哈希和群组标识;步骤S721,目标子链在自身维护的多个群组中确定与群组标识对应的目标群组,并基于交易哈希,在该目标群组的数据区块包括的交易数据中查询与该交易哈希对应的交易数据;步骤S722,凭证路由节点获取目标子链反馈的交易数据并转给业务节点;步骤S723,业务节点将接收到的交易数据作为欲查询的加密交易凭证对应的交易数据。
业务节点接收到交易数据后,反馈给用户,以使用户基于该交易数据确定该交易的发生时间、商品名称和金额等。
本实施例中,通过对存证溯源的交易哈希进行二次封装处理形成交易凭证,在交易凭证中包含有交易数据在链上的各种信息,从而能够精确知道最终的交易数据在区块链网络中的位置。其中交易凭证也就是一种交易哈希路由,在进行交易核验时,若需链上核验,可从交易凭证中知道真实承载交易哈希的链信息。同时,因为响应给用户的交易凭证时通过加密后的数据,当进行核验时,能够通过解密,那么说明交易凭证是有凭证路由节点分发出去的,若只是核验存在性,或是否过期等功能,可以只需在代码中实现核验,无需进行数据库和链上查询处理。因此根据应用场景,无需将交易哈希进行绑定存库,能够减少存储所带来的资源消耗,同时也能够提高核验的效率。具体来说,拼接目标子链所用的上链交互协议的协议标识、链标识、交易哈希、上链时间、有效时长、校验码和群组标识,得到交易凭证,交易凭证携带有链上查询交易数据时所需的路由信息,无需花费存储资源存储该路由信息;并且,将交易数据的交易哈希作为交易数据的查询索引,由于每笔交易的交易数据的哈希具有唯一性,可以保证基于该交易哈希路由至唯一对应的交易数据,保证交易数据查询的准确性;按照目标子链所用的上链节点交互协议,对待上链的交易数据、查询索引和群组标识进行组装,使得目标子链的节点可以准确地识别出待上链的交易数据、查询索引和群组标识;另外,还利用业务节点的私钥进行签名,表征交易数据的来源方,避免对不具有上链权限的业务节点的交易数据的上链;以及,基于目标子链反馈的上链回执信息,得到目标子链的链标识、群组标识、交易哈希和区块高度,保证链标识、群组标识、交易哈希和区块高度的准确性,保证交易凭证携带有准确的交易数据的路由信息;基于交易凭证携带的上链时间和有效时长,判断该交易凭证是否处于有效期,若处于有效期则进行链上查询,若不处于有效期则不进行链上查询,节约区块链网络的运算资源;根据区块高度,可以准确地确定包括该交易数据的数据区块,得到准确的上链时间和有效时长,保证后续交易凭证有效性判断的准确性。
应该理解的是,虽然图1(a)至图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1(a)至图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一些实施例中,如图8所示,提供了一种基于区块链网络的数据查询装置,包括:
请求接收模块801,用于接收携带交易凭证的交易查询请求;所述交易凭证是所述区块链网络的目标子链对交易数据进行上链后,根据所述目标子链的链标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
交易凭证解析模块802,用于解析所述交易凭证,获得所述链标识与所述查询索引;
目标子链确定模块803,用于从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;
查询索引发送模块804,用于将所述查询索引发送至属于所述目标子链的目标节点;
交易数据接收模块805,用于接收所述目标节点基于所述查询索引,在所述目标子链已上链的交易数据中查询并反馈的与所述查询索引对应的交易数据;
请求响应模块806,用于基于所述目标节点反馈的所述交易数据,对所述交易查询请求进行响应。
在一些实施例中,所述装置还包括:交易凭证生成模块,用于接收业务节点发送的所述交易数据;在所述区块链网络中确定用于对所述交易数据进行上链的目标子链;将所述交易数据发送至所述目标子链;在所述目标子链将所述交易数据的交易哈希作为所述交易数据的查询索引并根据所述交易哈希与所述交易数据的对应关系对所述交易数据进行上链后,获取所述目标子链反馈的所述交易哈希以及所述目标子链自身的链标识;根据所述目标子链的链标识和所述交易哈希生成所述交易数据对应的交易凭证。
在一些实施例中,所述交易凭证生成模块,还用于确定对所述交易数据进行上链所使用的上链节点交互协议;按所述上链节点交互协议对所述交易数据进行组装后,得到组装交易数据;使用所述业务节点的私钥对所述组装交易数据进行签名,并将签名后的所述组装交易数据发送至所述目标子链。
在一些实施例中,所述交易凭证生成模块,还用于接收所述目标子链对所述交易数据上链后反馈的上链回执信息;从所述上链回执信息中获取所述目标子链的链标识与所述交易哈希。
在一些实施例中,所述装置还包括区块信息获取模块,用于从所述上链回执信息中获取区块高度;所述区块高度是包括所述交易数据的数据区块在上链时所用的目标群组中的高度;所述目标群组包括依次串联的多个数据区块;将所述区块高度反馈给所述目标子链;接收所述目标子链基于所述区块高度确定所述目标群组中包括所述交易数据的数据区块后反馈的区块信息;所述区块信息包括所述交易数据的上链时间和有效时长;
所述交易凭证生成模块,还用于根据所述目标子链的链标识、所述交易哈希和所述区块信息生成所述交易数据对应的交易凭证。
在一些实施例中,所述装置还包括交易凭证加密模块,用于将生成的所述交易凭证加密处理后,获得加密交易凭证;向所述业务节点返回所述加密交易凭证。
在一些实施例中,所述交易凭证加密模块,还用于获取随机数,并使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;基于所述变换后的密钥,对生成的所述交易凭证进行加密,获得增强交易凭证;拼接所述增强交易凭证与所述随机数,获得加密的交易凭证。
在一些实施例中,所述交易凭证是加密的交易凭证;
所述交易凭证解析模块802,还用于按所述加密的交易凭证的数据结构,从所述加密的交易凭证中划分出随机数与基于所述随机数加密获得的增强交易凭证;使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;利用所述变换后的密钥对所述增强交易凭证进行解密,得到解密的交易凭证;按所述解密的交易凭证的数据结构,从所述解密的交易凭证中解析出所述链标识与所述查询索引。
在一些实施例中,所述交易凭证还携带目标子链使用的上链节点交互协议的协议标识;
所述查询索引发送模块804,还用于根据从所述交易凭证解析得到的所述协议标识,确定与所述协议标识对应的上链节点交互协议;按照所述上链节点交互协议,对所述查询索引进行封装;将封装后的查询索引发送至所述属于所述目标子链的目标节点;
所述交易数据接收模块805,还用于接收所述目标节点在基于所述上链节点交互协议,对所述封装后的查询索引进行解封得到解封的查询索引后,在所述目标子链已上链的交易数据中查询并反馈所述交易数据。
在一些实施例中,所述交易凭证还携带包括所述交易数据的数据区块的区块信息,所述区块信息包括所述交易数据的上链时间和有效时长;
所述装置还包括有效性处理模块,用于按所述交易凭证的数据结构,从所述交易凭证中解析出包括所述交易数据的数据区块的区块信息;根据所述区块信息中的所述交易数据的上链时间和有效时长,判定所述交易凭证是否有效;当所述交易凭证有效时,执行所述从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链的步骤;当所述交易凭证无效时,响应于所述交易查询请求,返回关于所述交易凭证无效的信息。
在一些实施例中,所述交易数据被打包至所述目标子链所维护的目标群组的数据区块中,所述交易凭证是所述链标识、所述目标群组的群组标识以及所述查询索引生成的;
所述交易数据接收模块805,还用于将对所述交易凭证解析得到的所述群组标识,发送至所述目标节点;接收所述目标节点基于所述群组标识,在所述目标子链所维护的多个群组中确定目标群组后,基于所述查询索引在所述目标群组包括的已上链的数据区块中查询并反馈的所述交易数据。
上述基于区块链网络的数据查询装置中,拼接目标子链所用的上链交互协议的协议标识、链标识、交易哈希、上链时间、有效时长、校验码和群组标识,得到交易凭证,交易凭证携带有链上查询交易数据时所需的路由信息,无需花费存储资源存储该路由信息;并且,将交易数据的交易哈希作为交易数据的查询索引,由于每笔交易的交易数据的哈希具有唯一性,可以保证基于该交易哈希路由至唯一对应的交易数据,保证交易数据查询的准确性;按照目标子链所用的上链节点交互协议,对待上链的交易数据、查询索引和群组标识进行组装,使得目标子链的节点可以准确地识别出待上链的交易数据、查询索引和群组标识;另外,还利用业务节点的私钥进行签名,表征交易数据的来源方,避免对不具有上链权限的业务节点的交易数据的上链;以及,基于目标子链反馈的上链回执信息,得到目标子链的链标识、群组标识、交易哈希和区块高度,保证链标识、群组标识、交易哈希和区块高度的准确性,保证交易凭证携带有准确的交易数据的路由信息;基于交易凭证携带的上链时间和有效时长,判断该交易凭证是否处于有效期,若处于有效期则进行链上查询,若不处于有效期则不进行链上查询,节约区块链网络的运算资源;根据区块高度,可以准确地确定包括该交易数据的数据区块,得到准确的上链时间和有效时长,保证后续交易凭证有效性判断的准确性。
关于基于区块链网络的数据查询装置的具体限定可以参见上文中对于基于区块链网络的数据查询方法的限定,在此不再赘述。上述基于区块链网络的数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是图1(d)中的凭证路由节点120,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储已上链的交易数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链网络的数据查询方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种基于区块链网络的数据查询系统,该系统包括业务节点、区块链网络和位于所述业务节点与所述区块链网络之间的凭证路由节点,其中:
所述凭证路由节点用于接收所述业务节点发送的携带交易凭证的交易查询请求;所述交易凭证是所述区块链网络的目标子链对交易数据进行上链后,根据所述目标子链的链标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
所述凭证路由节点还用于解析所述交易凭证,获得所述链标识与所述查询索引;从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;将所述查询索引发送至属于所述目标子链的目标节点;
所述目标节点用于基于所述查询索引,在所述目标子链已上链的交易数据中查询与所述查询索引对应的交易数据;
所述凭证路由节点还用于接收所述目标节点反馈的所述交易数据后,响应于所述交易查询请求,向所述业务节点返回所述交易数据。
在一些实施例中,所述凭证路由节点,还用于接收业务节点发送的所述交易数据;在所述区块链网络中确定用于对所述交易数据进行上链的目标子链;将所述交易数据发送至所述目标子链;
所述目标子链,用于将所述交易数据的交易哈希作为所述交易数据的查询索引并根据所述交易哈希与所述交易数据的对应关系对所述交易数据进行上链后,向所述凭证路由节点反馈所述交易哈希以及所述目标子链自身的链标识;
所述凭证路由节点,用于根据所述目标子链的链标识和所述交易哈希生成所述交易数据对应的交易凭证。
在一些实施例中,所述凭证路由节点,用于确定对所述交易数据进行上链所使用的上链节点交互协议;按所述上链节点交互协议对所述交易数据进行组装后,得到组装交易数据;使用所述业务节点的私钥对所述组装交易数据进行签名,并将签名后的所述组装交易数据发送至所述目标子链。
在一些实施例中,所述凭证路由节点,用于接收所述目标子链对所述交易数据上链后反馈的上链回执信息;从所述上链回执信息中获取所述目标子链的链标识与所述交易哈希。
在一些实施例中,所述凭证路由节点,用于从所述上链回执信息中获取区块高度;所述区块高度是包括所述交易数据的数据区块在上链时所用的目标群组中的高度;所述目标群组包括依次串联的多个数据区块;将所述区块高度反馈给所述目标子链;
所述目标子链,用于基于所述区块高度确定所述目标群组中包括所述交易数据的数据区块后,并向所述凭证路由节点反馈区块信息;所述区块信息包括所述交易数据的上链时间和有效时长;
所述凭证路由节点,用于根据所述目标子链的链标识、所述交易哈希和所述区块信息生成所述交易数据对应的交易凭证。
在一些实施例中,所述凭证路由节点,用于将生成的所述交易凭证加密处理后,获得加密交易凭证;向所述业务节点返回所述加密交易凭证。
在一些实施例中,所述凭证路由节点,用于获取随机数,并使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;基于所述变换后的密钥,对生成的所述交易凭证进行加密,获得增强交易凭证;拼接所述增强交易凭证与所述随机数,获得加密的交易凭证。
在一些实施例中,所述交易凭证是加密的交易凭证;
所述凭证路由节点,用于按所述加密的交易凭证的数据结构,从所述加密的交易凭证中划分出随机数与基于所述随机数加密获得的增强交易凭证;使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;利用所述变换后的密钥对所述增强交易凭证进行解密,得到解密的交易凭证;按所述解密的交易凭证的数据结构,从所述解密的交易凭证中解析出所述链标识与所述查询索引。
在一些实施例中,所述交易凭证还携带目标子链使用的上链节点交互协议的协议标识;
所述凭证路由节点,用于根据从所述交易凭证解析得到的所述协议标识,确定与所述协议标识对应的上链节点交互协议;按照所述上链节点交互协议,对所述查询索引进行封装;将封装后的查询索引发送至所述属于所述目标子链的目标节点;
所述目标子链的目标节点,用于在基于所述上链节点交互协议,对所述封装后的查询索引进行解封得到解封的查询索引后,在所述目标子链已上链的交易数据中查询所述交易数据;
所述凭证路由节点,用于接收所述目标节点反馈的交易数据。
在一些实施例中,所述交易凭证还携带包括所述交易数据的数据区块的区块信息,所述区块信息包括所述交易数据的上链时间和有效时长;
所述凭证路由节点,用于按所述交易凭证的数据结构,从所述交易凭证中解析出包括所述交易数据的数据区块的区块信息;根据所述区块信息中的所述交易数据的上链时间和有效时长,判定所述交易凭证是否有效;当所述交易凭证有效时,执行所述从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链的步骤;当所述交易凭证无效时,响应于所述交易查询请求,返回关于所述交易凭证无效的信息。
在一些实施例中,所述交易数据被打包至所述目标子链所维护的目标群组的数据区块中,所述交易凭证是所述链标识、所述目标群组的群组标识以及所述查询索引生成的;
所述凭证路由节点,用于将对所述交易凭证解析得到的所述群组标识,发送至所述目标节点;接收所述目标节点基于所述群组标识,在所述目标子链所维护的多个群组中确定目标群组后,基于所述查询索引在所述目标群组包括的已上链的数据区块中查询并反馈的所述交易数据。
在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各个方法实施例中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
需要说明的是,本申请所涉及的交易信息(包括但不限于交易发生时间、金额等交易数据、交易凭证等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上的实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (24)

1.一种基于区块链网络的数据查询方法,其特征在于,所述方法包括:
接收携带交易凭证的交易查询请求;在交易数据被打包至所述区块链网络的目标子链所维护的目标群组的数据区块的情况下,所述交易凭证是所述目标子链对所述交易数据进行上链后,根据所述目标子链的链标识、所述目标群组的群组标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
解析所述交易凭证,获得所述链标识、所述群组标识与所述查询索引;
从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;
将所述查询索引发送至属于所述目标子链的目标节点;
在将所述群组标识发送至所述目标节点后,接收所述目标节点基于所述群组标识在所述目标子链所维护的多个群组中确定所述目标群组后,基于所述查询索引在所述目标群组的数据区块包括的交易数据中查询并反馈的与所述查询索引对应的交易数据;
基于所述目标节点反馈的所述交易数据,对所述交易查询请求进行响应。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收业务节点发送的所述交易数据;
在所述区块链网络中确定用于对所述交易数据进行上链的目标子链;
将所述交易数据发送至所述目标子链;
在所述目标子链将所述交易数据的交易哈希作为所述交易数据的查询索引并根据所述交易哈希与所述交易数据的对应关系对所述交易数据进行上链后,获取所述目标子链反馈的所述交易哈希以及所述目标子链自身的链标识;
根据所述目标子链的链标识和所述交易哈希生成所述交易数据对应的交易凭证。
3.根据权利要求2所述的方法,其特征在于,所述将所述交易数据发送至所述目标子链,包括:
确定对所述交易数据进行上链所使用的上链节点交互协议;
按所述上链节点交互协议对所述交易数据进行组装后,得到组装交易数据;
使用所述业务节点的私钥对所述组装交易数据进行签名,并将签名后的所述组装交易数据发送至所述目标子链。
4.根据权利要求2所述的方法,其特征在于,所述获取所述目标子链反馈的所述交易哈希以及所述目标子链自身的链标识,包括:
接收所述目标子链对所述交易数据上链后反馈的上链回执信息;
从所述上链回执信息中获取所述目标子链的链标识与所述交易哈希。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述上链回执信息中获取区块高度;所述区块高度是包括所述交易数据的数据区块在上链时所用的目标群组中的高度;所述目标群组包括依次串联的多个数据区块;
将所述区块高度反馈给所述目标子链;
接收所述目标子链基于所述区块高度确定所述目标群组中包括所述交易数据的数据区块后反馈的区块信息;所述区块信息包括所述交易数据的上链时间和有效时长;
所述根据所述目标子链的链标识和所述交易哈希生成所述交易数据对应的交易凭证,包括:
根据所述目标子链的链标识、所述交易哈希和所述区块信息生成所述交易数据对应的交易凭证。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将生成的所述交易凭证加密处理后,获得加密交易凭证;
向所述业务节点返回所述加密交易凭证。
7.根据权利要求6所述的方法,其特征在于,所述将生成的所述交易凭证加密处理,包括:
获取随机数,并使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;
基于所述变换后的密钥,对生成的所述交易凭证进行加密,获得增强交易凭证;
拼接所述增强交易凭证与所述随机数,获得加密的交易凭证。
8.根据权利要求1所述的方法,其特征在于,所述交易凭证是加密的交易凭证;
所述解析所述交易凭证,获得所述链标识、所述群组标识与所述查询索引,包括:
按所述加密的交易凭证的数据结构,从所述加密的交易凭证中划分出随机数与基于所述随机数加密获得的增强交易凭证;
使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;
利用所述变换后的密钥对所述增强交易凭证进行解密,得到解密的交易凭证;
按所述解密的交易凭证的数据结构,从所述解密的交易凭证中解析出所述链标识、所述群组标识与所述查询索引。
9.根据权利要求1所述的方法,其特征在于,所述交易凭证还携带目标子链使用的上链节点交互协议的协议标识;
所述将所述查询索引发送至属于所述目标子链的目标节点,包括:
根据从所述交易凭证解析得到的所述协议标识,确定与所述协议标识对应的上链节点交互协议;
按照所述上链节点交互协议,对所述查询索引进行封装;
将封装后的查询索引发送至所述属于所述目标子链的目标节点;
所述接收所述目标节点基于所述查询索引,在所述目标子链已上链的交易数据中查询并反馈的与所述查询索引对应的交易数据,包括:
接收所述目标节点在基于所述上链节点交互协议,对所述封装后的查询索引进行解封得到解封的查询索引后,在所述目标子链已上链的交易数据中查询并反馈所述交易数据。
10.根据权利要求1所述的方法,其特征在于,所述交易凭证还携带包括所述交易数据的数据区块的区块信息,所述区块信息包括所述交易数据的上链时间和有效时长;
在所述从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链之前,所述方法还包括:
按所述交易凭证的数据结构,从所述交易凭证中解析出包括所述交易数据的数据区块的区块信息;
根据所述区块信息中的所述交易数据的上链时间和有效时长,判定所述交易凭证是否有效;
当所述交易凭证有效时,执行所述从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链的步骤;
当所述交易凭证无效时,响应于所述交易查询请求,返回关于所述交易凭证无效的信息。
11.一种基于区块链网络的数据查询装置,其特征在于,所述装置包括:
请求接收模块,用于接收携带交易凭证的交易查询请求;在交易数据被打包至所述区块链网络的目标子链所维护的目标群组的数据区块的情况下,所述交易凭证是所述目标子链对所述交易数据进行上链后,根据所述目标子链的链标识、所述目标群组的群组标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
交易凭证解析模块,用于解析所述交易凭证,获得所述链标识、所述群组标识与所述查询索引;
目标子链确定模块,用于从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;
查询索引发送模块,用于将所述查询索引发送至属于所述目标子链的目标节点;
交易数据接收模块,用于在将所述群组标识发送至所述目标节点后,接收所述目标节点基于所述群组标识在所述目标子链所维护的多个群组中确定所述目标群组后,基于所述查询索引在所述目标群组的数据区块包括的交易数据中查询并反馈的与所述查询索引对应的交易数据;
请求响应模块,用于基于所述目标节点反馈的所述交易数据,对所述交易查询请求进行响应。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括交易凭证生成模块,用于接收业务节点发送的所述交易数据;在所述区块链网络中确定用于对所述交易数据进行上链的目标子链;将所述交易数据发送至所述目标子链;在所述目标子链将所述交易数据的交易哈希作为所述交易数据的查询索引并根据所述交易哈希与所述交易数据的对应关系对所述交易数据进行上链后,获取所述目标子链反馈的所述交易哈希以及所述目标子链自身的链标识;根据所述目标子链的链标识和所述交易哈希生成所述交易数据对应的交易凭证。
13.根据权利要求12所述的装置,其特征在于,所述交易凭证生成模块,还用于确定对所述交易数据进行上链所使用的上链节点交互协议;按所述上链节点交互协议对所述交易数据进行组装后,得到组装交易数据;使用所述业务节点的私钥对所述组装交易数据进行签名,并将签名后的所述组装交易数据发送至所述目标子链。
14.根据权利要求12所述的装置,其特征在于,所述交易凭证生成模块,还用于接收所述目标子链对所述交易数据上链后反馈的上链回执信息;从所述上链回执信息中获取所述目标子链的链标识与所述交易哈希。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括区块信息获取模块,用于从所述上链回执信息中获取区块高度;所述区块高度是包括所述交易数据的数据区块在上链时所用的目标群组中的高度;所述目标群组包括依次串联的多个数据区块;将所述区块高度反馈给所述目标子链;接收所述目标子链基于所述区块高度确定所述目标群组中包括所述交易数据的数据区块后反馈的区块信息;所述区块信息包括所述交易数据的上链时间和有效时长;
所述交易凭证生成模块,还用于根据所述目标子链的链标识、所述交易哈希和所述区块信息生成所述交易数据对应的交易凭证。
16.根据权利要求12所述的装置,其特征在于,所述装置还包括交易凭证加密模块,用于将生成的所述交易凭证加密处理后,获得加密交易凭证;向所述业务节点返回所述加密交易凭证。
17.根据权利要求16所述的装置,其特征在于,所述交易凭证加密模块,还用于获取随机数,并使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;基于所述变换后的密钥,对生成的所述交易凭证进行加密,获得增强交易凭证;拼接所述增强交易凭证与所述随机数,获得加密的交易凭证。
18.根据权利要求11所述的装置,其特征在于,所述交易凭证是加密的交易凭证;
所述交易凭证解析模块,还用于按所述加密的交易凭证的数据结构,从所述加密的交易凭证中划分出随机数与基于所述随机数加密获得的增强交易凭证;使用所述随机数对预设的原始密钥进行位移变换后,获得变换后的密钥;利用所述变换后的密钥对所述增强交易凭证进行解密,得到解密的交易凭证;按所述解密的交易凭证的数据结构,从所述解密的交易凭证中解析出所述链标识、所述群组标识与所述查询索引。
19.根据权利要求11所述的装置,其特征在于,所述交易凭证还携带目标子链使用的上链节点交互协议的协议标识;
所述查询索引发送模块,还用于根据从所述交易凭证解析得到的所述协议标识,确定与所述协议标识对应的上链节点交互协议;按照所述上链节点交互协议,对所述查询索引进行封装;将封装后的查询索引发送至所述属于所述目标子链的目标节点;
所述交易数据接收模块,还用于接收所述目标节点在基于所述上链节点交互协议,对所述封装后的查询索引进行解封得到解封的查询索引后,在所述目标子链已上链的交易数据中查询并反馈所述交易数据。
20.根据权利要求11所述的装置,其特征在于,所述交易凭证还携带包括所述交易数据的数据区块的区块信息,所述区块信息包括所述交易数据的上链时间和有效时长;
所述装置还包括有效性处理模块,用于按所述交易凭证的数据结构,从所述交易凭证中解析出包括所述交易数据的数据区块的区块信息;根据所述区块信息中的所述交易数据的上链时间和有效时长,判定所述交易凭证是否有效;当所述交易凭证有效时,执行所述从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链的步骤;当所述交易凭证无效时,响应于所述交易查询请求,返回关于所述交易凭证无效的信息。
21.一种基于区块链网络的数据查询系统,其特征在于,所述系统包括业务节点、区块链网络和位于所述业务节点与所述区块链网络之间的凭证路由节点,其中:
所述凭证路由节点用于接收所述业务节点发送的携带交易凭证的交易查询请求;在交易数据被打包至所述区块链网络的目标子链所维护的目标群组的数据区块的情况下,所述交易凭证是所述目标子链对所述交易数据进行上链后,根据所述目标子链的链标识、所述目标群组的群组标识以及所述上链所需的与所述交易数据对应的查询索引生成的;
所述凭证路由节点还用于解析所述交易凭证,获得所述链标识、所述群组标识与所述查询索引;从所述区块链网络包括的多个子链中,确定所述链标识所对应的目标子链;将所述查询索引和所述群组标识发送至属于所述目标子链的目标节点;
所述目标节点用于基于所述群组标识在所述目标子链所维护的多个群组中确定所述目标群组后,基于所述查询索引在所述目标群组的数据区块包括的交易数据中查询并反馈的与所述查询索引对应的交易数据;
所述凭证路由节点还用于接收所述目标节点反馈的所述交易数据后,响应于所述交易查询请求,向所述业务节点返回所述交易数据。
22.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法。
24.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任一项所述的方法。
CN202111292338.5A 2021-11-03 2021-11-03 基于区块链网络的数据查询方法、装置、设备和存储介质 Active CN113722385B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111292338.5A CN113722385B (zh) 2021-11-03 2021-11-03 基于区块链网络的数据查询方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111292338.5A CN113722385B (zh) 2021-11-03 2021-11-03 基于区块链网络的数据查询方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113722385A CN113722385A (zh) 2021-11-30
CN113722385B true CN113722385B (zh) 2022-02-08

Family

ID=78686615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111292338.5A Active CN113722385B (zh) 2021-11-03 2021-11-03 基于区块链网络的数据查询方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113722385B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115115367B (zh) * 2022-08-30 2023-03-31 平安银行股份有限公司 一种基于区块链的交易信息查询方法、装置及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704418A (zh) * 2018-06-21 2020-01-17 北京果仁宝软件技术有限责任公司 区块链信息查询方法、装置和设备
US10929473B2 (en) * 2018-09-27 2021-02-23 Palo Alto Research Center Incorporated Integrated index blocks and searching in blockchain systems
CN109710627A (zh) * 2018-12-29 2019-05-03 中国银联股份有限公司 一种基于区块链网络的交易查询方法及装置
CN110298755B (zh) * 2019-06-21 2022-04-26 普洛斯科技(重庆)有限公司 一种区块链交易方法和装置
CN110648138B (zh) * 2019-09-30 2021-04-30 支付宝(杭州)信息技术有限公司 基于区块链的交易查询、交易数据处理方法、装置及设备

Also Published As

Publication number Publication date
CN113722385A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US8595504B2 (en) Light weight authentication and secret retrieval
CN112749969B (zh) 一种数据处理方法、装置、计算机设备及存储介质
JP5348337B2 (ja) 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
US11750403B2 (en) Robust state synchronization for stateful hash-based signatures
US20210119799A1 (en) Post-quantum secure remote attestation for autonomous systems
CN113722385B (zh) 基于区块链网络的数据查询方法、装置、设备和存储介质
CN113239395A (zh) 数据查询方法、装置、设备、存储介质及程序产品
CN114154174A (zh) 后量子签名设施的状态同步
Hsiao et al. Utilizing blockchain technology to improve WSN security for sensor data transmission
Li et al. Secure and temporary access delegation with equality test for cloud-assisted IoV
Ramkumar Executing large-scale processes in a blockchain
Su et al. Distributed attribute-based signature with attribute dynamic update for smart grid
Zhang et al. Efficient auditing scheme for secure data storage in fog-to-cloud computing
CN113824553A (zh) 密钥管理方法、装置及系统
CN107231628A (zh) 一种适用于多应用场景的安全数据融合方法
Kim et al. A reverse hash chain path-based access control scheme for a connected smart home system
CN113064899B (zh) 资产类证券型通证交易凭证的存储方法、装置和电子设备
CN116015846A (zh) 身份认证方法、装置、计算机设备和存储介质
Nayancy et al. IoT-Based Secure Communication to Enhance Blockchain Model
Shoufan et al. High-performance rekeying processor architecture for group key management
Liu et al. Video data integrity verification method based on full homomorphic encryption in cloud system
US10177918B2 (en) User permission check system
CN117034370B (zh) 基于区块链网络的数据处理方法及相关设备
CN115563638B (zh) 数据处理方法、系统、设备及存储介质
CN117910018A (zh) 应用于人工智能中的基于同态加密和明文计算技术的数据计算与交换共享方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant