CN113821536B - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113821536B CN113821536B CN202111389908.2A CN202111389908A CN113821536B CN 113821536 B CN113821536 B CN 113821536B CN 202111389908 A CN202111389908 A CN 202111389908A CN 113821536 B CN113821536 B CN 113821536B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- address information
- transaction data
- target
- 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
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/2455—Query execution
-
- 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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,方法包括:获取待上链交易数据,以及待上链交易数据对应的账户地址信息;对账户地址信息进行压缩处理,得到压缩地址信息;生成包含待上链交易数据的初始区块,获取待上链交易数据在初始区块的区块体中的交易属性信息;在压缩地址信息与交易属性信息之间建立索引关系,将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头中,得到目标区块;将目标区块上链至区块链中。采用本申请,可以在区块链查询业务中,提高查询效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。
事实上,区块链可以理解为是由若干个区块前后由哈希值相连所组成的数据结构,其中,每个区块由一段时间内产生的交易数据所组成。对于交易数据,一般体现为将某个数据从特定账户转移至其他特定账户,那么对于区块链中交易信息的查询,可以通过账户信息来进行查询。
然而目前,在通过账户信息来查询区块链中的相关交易时,需要遍历查询区块链中所有的区块,同时还需要遍历每个区块内的所有交易,耗时特别长,查找效率并不高。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备以及可读存储介质,可以在区块链查询业务中,提高查询效率。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
获取待上链交易数据,以及待上链交易数据对应的账户地址信息;
对账户地址信息进行压缩处理,得到压缩地址信息;
生成包含待上链交易数据的初始区块,获取待上链交易数据在初始区块的区块体中的交易属性信息;
在压缩地址信息与交易属性信息之间建立索引关系,将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头中,得到目标区块;
将目标区块上链至区块链中。
本申请实施例一方面提供了另一种基于区块链的数据处理方法,包括:
接收目标节点发送的目标交易查询请求;目标交易查询请求携带目标账户地址信息;
基于目标交易查询请求在区块链中获取目标区块,以及目标区块的区块头;目标区块是指将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头后所得到的区块;初始区块包含待上链交易数据;压缩地址信息是指将待上链交易数据对应的账户地址信息,进行压缩处理后得到的地址信息;交易属性信息是指待上链交易数据在初始区块的区块体中的属性信息;
根据目标区块的区块头中所存储的,压缩地址信息与交易属性信息之间的索引关系,在目标区块中获取目标账户地址信息对应的目标关联交易数据,将目标关联交易数据发送至目标节点。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
地址信息获取模块,用于获取待上链交易数据,以及待上链交易数据对应的账户地址信息;
地址压缩模块,用于对账户地址信息进行压缩处理,得到压缩地址信息;
区块生成模块,用于生成包含待上链交易数据的初始区块;
属性信息获取模块,用于获取待上链交易数据在初始区块的区块体中的交易属性信息;
信息添加模块,用于在压缩地址信息与交易属性信息之间建立索引关系,将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头中,得到目标区块;
上链模块,用于将目标区块上链至区块链中。
在一个实施例中,账户地址信息为至少两个地址编码字符组成的地址字符序列;
地址压缩模块包括:
标准获取单元,用于获取地址压缩标准,以及地址压缩标准对应的标准字符数量;
字符获取单元,用于按照标准字符数量,在地址字符序列中按序获取K个地址编码字符;K为正整数;
地址组成单元,用于将K个地址编码字符组成的更新地址字符序列,确定为账户地址信息对应的压缩地址信息。
在一个实施例中,属性信息获取模块包括:
交易序列获取单元,用于获取初始区块的区块体中的已存交易数据序列;已存交易数据序列包括一个或多个已存交易数据,一个或多个已存交易数据包括待上链交易数据;
交易属性确定单元,用于获取已存交易数据序列中的首个已存交易数据;
交易属性确定单元,还用于根据首个已存交易数据在初始区块的区块体中的第一交易存储位置,以及待上链交易数据在初始区块的区块体中的第二交易存储位置,确定待上链交易数据在初始区块的区块体中的交易属性信息。
在一个实施例中,交易属性确定单元包括:
起始位置获取子单元,用于获取第一交易存储位置中的第一起始存储位置,以及第二交易存储位置中的第二起始存储位置;
交易属性确定子单元,用于确定第一起始存储位置与第二起始存储位置之间的位置偏移量;
交易属性确定子单元,还用于根据位置偏移量,确定待上链交易数据在初始区块的区块体中的交易属性信息。
在一个实施例中,已存交易数据序列中的每个已存交易数据分别由交易编码字符串所组成;
起始位置获取子单元,还具体用于在已存交易数据序列中的一个或多个交易编码字符串中,获取用于组成首个已存交易数据的交易编码字符串,作为第一交易编码字符串,获取用于组成待上链交易数据的交易编码字符串,作为第二交易编码字符串;
起始位置获取子单元,还具体用于将第一交易编码字符串在已存交易数据序列中所处的位置,确定为第一交易存储位置,将第一交易编码字符串中的起始编码字符在已存交易数据序列中所处的位置,确定为第一起始存储位置;
起始位置获取子单元,还具体用于将第二交易编码字符串在已存交易数据序列中所处的位置,确定为第二交易存储位置,将第二交易编码字符串中的起始编码字符在已存交易数据序列中所处的位置,确定为第二起始存储位置。
在一个实施例中,交易属性确定子单元,还具体用于将所述已存交易数据序列中的处于所述第一起始存储位置与所述第二起始存储位置之间的字符,确定为待统计字符;
交易属性确定子单元,还具体用于获取待统计字符对应的字符数量,根据字符数量确定第一起始存储位置与第二起始存储位置之间的位置偏移量。
在一个实施例中,交易属性确定子单元,还具体用于获取用于组成待上链交易数据的交易编码字符串所对应的编码长度;
交易属性确定子单元,还具体用于将位置偏移量以及编码长度,确定为待上链交易数据在初始区块的区块体中的交易属性信息。
在一个实施例中,信息添加模块包括:
索引对生成单元,用于将压缩地址信息作为索引键,将交易属性信息作为索引值;
索引对生成单元,还用于根据索引键与索引值建立索引对;索引对用于表征压缩地址信息与交易属性信息之间存在索引关系;
序列化处理单元,用于将索引对进行序列化处理,得到序列化索引对;
索引对添加单元,用于将序列化索引对添加至初始区块的区块头中,得到目标区块。
本申请实施例一方面提供了另一种基于区块链的数据处理装置,包括:
请求接收模块,用于接收目标节点发送的目标交易查询请求;目标交易查询请求携带目标账户地址信息;
区块获取模块,用于基于目标交易查询请求在区块链中获取目标区块,以及目标区块的区块头;目标区块是指将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头后所得到的区块;初始区块包含待上链交易数据;压缩地址信息是指将待上链交易数据对应的账户地址信息,进行压缩处理后得到的地址信息;交易属性信息是指待上链交易数据在初始区块的区块体中的属性信息;
交易确定模块,用于根据目标区块的区块头中所存储的,压缩地址信息与交易属性信息之间的索引关系,在目标区块中获取目标账户地址信息对应的目标关联交易数据,将目标关联交易数据发送至目标节点。
在一个实施例中,压缩地址信息是根据地址压缩标准对账户地址信息进行压缩处理所得到的;压缩地址信息的数量为至少两个;
交易确定模块包括:
目标地址压缩单元,用于按照地址压缩标准对目标账户地址信息进行压缩处理,得到目标压缩地址信息;
地址匹配单元,用于将目标区块的区块头所包括的至少两个压缩地址信息中,与目标压缩地址信息相匹配的压缩地址信息作为匹配压缩地址信息;
目标交易获取单元,用于将目标区块的区块头中,与匹配压缩地址信息具有索引关系的交易属性信息,确定为待验证交易属性信息;
目标交易获取单元,用于根据待验证交易属性信息,在目标区块中获取目标账户地址信息对应的目标关联交易数据。
在一个实施例中,目标交易获取单元包括:
待验证交易获取子单元,用于在目标区块的区块体中,获取待验证交易属性信息所指示的待验证交易数据;
交易验证子单元,用于获取待验证交易数据对应的真实地址信息,根据真实地址信息与目标账户地址信息,对待验证交易数据进行交易验证;
目标交易确定子单元,用于若待验证交易数据的交易验证结果为验证通过结果,则将待验证交易数据确定为目标账户地址信息对应的目标关联交易数据。
在一个实施例中,交易验证子单元,还具体用于将真实地址信息与目标账户地址信息进行匹配;
交易验证子单元,还具体用于若真实地址信息与目标账户地址信息相匹配,则将待验证交易数据的交易验证结果确定为验证通过结果;
交易验证子单元,还具体用于若真实地址信息与目标账户地址信息不匹配,则将待验证交易数据的交易验证结果确定为验证失败结果。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2a是本申请实施例提供的一种生成区块的场景示意图;
图2b是本申请实施例提供的一种查询交易数据的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的方法流程示意图;
图4是本申请实施例提供的一种获取交易数据的交易属性信息的流程示意图;
图5是本申请实施例提供的一种添加索引关系至区块头的系统结构图;
图6是本申请实施例提供的另一种基于区块链的数据处理方法的方法流程示意图;
图7是本申请实施例提供的一种交易查询的系统结构图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的另一种基于区块链的数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构图。如图1所示,本申请所提供的基于区块链的数据处理方法可应用于区块链网络。区块链网络包括对区块链上的数据区块进行记录和查询的相关节点构成的网络,区块链网络中的每个节点即为区块链节点,是能够对数据区块进行查询或记录的计算机设备。其中,区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络将节点区分为核心节点、数据节点以及轻节点,其中核心节点负责区块链全网的共识,也就是说核心节点为区块链网络中的共识节点。对于区块链网络中交易数据被写入账本的过程可以为,客户端发送交易数据至数据节点或轻节点,随后该交易数据以接力棒的方式在区块链网络中的数据节点或轻节点之间传递,直到共识节点收到该交易数据,共识节点再将该交易数据打包进区块,与其他共识节点之间进行共识,在共识通过后,将携带该交易数据的区块写入账本。
其中,可以理解的是,区块链系统中可以包括有智能合约,该智能合约在区块链系统中可以理解为是一种区块链各节点(包括共识节点)可以理解并执行的代码,可以执行任意逻辑并得到结果。用户可以通过客户端发起一个交易业务请求的方式,调用区块链上已经部署的智能合约,随后,区块链上的数据节点或轻节点可以将该交易业务请求发送至共识节点,而区块链上的各个共识节点可以分别运行该智能合约。应当理解,区块链中可以包括一个或多个智能合约,这些智能合约可以标识号(Identity document,ID)或名称来进行区分,而客户端发起的交易业务请求中,也可以携带智能合约的标识号或名称,以此指定区块链需要运行的智能合约。而若客户端所指定的智能合约为需要读取数据的合约,则各个共识节点会访问本地账本来进行数据的读取,最后各个共识节点会互相验证执行结果是否一致(也就是进行共识),若一致则可以将执行结果存入各自的本地账本中,并将执行结果返回至客户端。
如图1所示,该网络架构可以包括终端设备集群10以及区块链网络,而区块链网络中可以包括核心节点(共识节点)集群1000、数据节点或轻节点集群100。该核心节点集群1000可以包括至少两个核心节点,数据节点集群100可以包括至少两个数据节点。如图1所示,该核心节点集群1000可以包括核心节点1000a、核心节点1000b、…、核心节点1000n,该数据节点集群100具体可以包括数据节点100a、数据节点100b、…、数据节点100n,该终端设备集群10具体可以包括终端设备10a、终端设备10b、…、终端设备10n。
如图1所示,终端设备10a、终端设备10b、…、终端设备10n可以分别与数据节点100a、数据节点100b、…、数据节点100n进行网络连接,以便于终端设备可以通过该网络连接与数据节点进行数据交互;数据节点100a、数据节点100b、…、数据节点100n可以分别与核心节点1000a、核心节点1000b、…、核心节点1000n进行网络连接,以便于数据节点可以通过该网络连接与核心节点进行数据交互;数据节点100a、数据节点100b、…、数据节点100n互相连接,以便于数据节点之间可以进行数据交互,核心节点1000a、核心节点1000b、…、核心节点1000n互相连接,以便于核心节点之间可以进行数据交互。
以终端设备10a、数据节点100a以及核心节点1000a为例,数据节点100a可以接收到终端设备10a发送的交易业务请求(该交易业务请求中携带智能合约的ID或名称),随后,数据节点100a可以通过数据节点集群100将该交易业务请求发送至核心节点1000a;而核心节点1000a可以运行该智能合约,并通过该智能合约执行该交易业务,得到执行结果后,可以将该执行结果存储至内存池(如交易池)中,并根据该执行结果生成新的区块;随后,核心节点1000a可以根据区块链网络中其他核心节点(即共识节点)的节点标识,将上述新生成的区块分别发送给其所在的区块链网络中的其他核心节点,由其他核心节点对新生成的区块进行校验(即进行共识),并在完成校验后将上述新生成的区块添加至其存储的区块链中(也就是说,在共识通过后将执行结果存储至区块链中)。其中,区块链网络中的每个核心节点,均具有与其对应的节点标识,而且区块链网络中的每个核心节点均可以存储有区块链网络中其他核心节点的节点标识,以便后续根据其他核心节点的节点标识,将生成的区块广播至区块链网络中的其他核心节点,使得区块链网络中全部核心节点上存储的数据均一致。
其中,如图1所示的终端设备具体可以是产生交易信息的业务方所使用的台式终端或移动终端,具体可以为智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、台式计算机、智能手表、智能车载终端等携带数据处理功能的智能终端,但并不局限于此。终端设备所产生的交易信息(交易数据)在经过用户授权后,可以经数据节点或轻节点传递至共识节点,共识节点可以将终端设备产生的交易信息(交易数据)记录至区块链上。数据节点集群100中的任一数据节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现,核心节点集群1000中的任一核心节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
以终端设备10a、数据节点100a以及核心节点1000a为例,数据节点100a可以接收到终端设备10a发送的交易业务请求(该交易业务请求中携带智能合约的ID或名称),随后,数据节点100a可以通过数据节点集群100将该交易业务请求发送至核心节点1000a;而核心节点1000a可以运行该智能合约,并通过该智能合约执行该交易业务,得到执行结果后,可以将该执行结果存储至内存池(如交易池)中,并根据该执行结果生成新的区块;随后,核心节点1000a可以根据区块链网络中其他核心节点(即共识节点)的节点标识,将上述新生成的区块分别发送给其所在的区块链网络中的其他核心节点,由其他核心节点对新生成的区块进行校验(即进行共识),并在完成校验后将上述新生成的区块添加至其存储的区块链中(也就是说,在共识通过后将执行结果存储至区块链中)。其中,区块链网络中的每个核心节点,均具有与其对应的节点标识,而且区块链网络中的每个核心节点均可以存储有区块链网络中其他核心节点的节点标识,以便后续根据其他核心节点的节点标识,将生成的区块广播至区块链网络中的其他核心节点,使得区块链网络中全部核心节点上存储的数据均一致。
可以理解的是,终端设备的交易业务可以理解为交易数据,对于区块链存储交易数据的主要形式为:将交易数据存储至区块链的区块中,而区块链中的区块可以分为区块体与区块头,其区块体主要存储各个交易数据及其对应的执行结果,而区块头主要存储区块体中所包含的所有交易数据的总哈希值,以及所有执行结果的总哈希值。对应每个交易数据,可以体现为是将某些数据(如某些虚拟资产)从一个账户转移至其他账户,那么对于区块链中所存储的交易信息的查询,可以通过账户地址信息来进行查询,例如,若要统计查询某个账户在一段时间内的所有交易信息,那么可以遍历区块链中的所有区块,以及每个区块中的区块体中所存储的交易数据,由此可以统计出该账户在这段时间内所关联的所有交易数据。
为了提高区块链查询业务中,对于交易数据的查询效率,本申请将交易数据所关联的账户地址信息进行压缩,并在压缩后的压缩地址信息与交易数据在区块体中的交易属性信息之间建立索引关系,再将索引关系存储至区块头中。由此可以使得在获取到待查询账户地址信息后,无需遍历所有区块以及区块的区块体,只需要读取区块头即可通过待查询账户地址信息直接获取到具有索引关系的交易属性信息,通过交易属性信息即可在区块体中获取到所指示的交易数据(该交易数据即为待查询账户地址信息所关联的交易数据)。其中,对于将账户地址信息进行压缩处理,得到压缩地址信息,以及将压缩地址信息与交易属性信息建立索引关系并存储至区块头的具体实现方式,可以参见后续图3所对应实施例中的描述。
可以理解的是,本发明实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端或服务器。本发明实施例中的节点可以为计算机设备。
为便于理解,请参见图2a,图2a是本申请实施例提供的一种生成区块的场景示意图。
如图2a所示,根据在一段时间内产生的交易数据1、交易数据2以及交易数据3(交易数据1、交易数据2以及交易数据3可以理解为等待上链至区块链的数据,也可以称之为待上链交易数据),区块链节点(如核心节点)可以生成初始区块20a,其中,该初始区块20a可以由区块头与区块体所组成,区块体可以存储各个交易数据的哈希值(也可以理解为区块体可以存储将各个交易数据进行编码处理后的二进制编码字符,例如,将交易数据1进行编码处理后得到二进制编码字符“001110001”,那么该区块体中可以存储二进制编码字符“001110001”,该二进制编码字符“001110001”用于表征交易数据1);而该区块头可以存储根据区块体中所有交易数据的哈希值所计算得到的总哈希值(可称之为交易总哈希值),以及根据区块体中所有交易数据的执行结果的哈希值所计算得到的总哈希值(可称之为结果总哈希值)。
进一步地,如图2a所示,区块链节点可以提取出交易数据1、交易数据2以及交易数据3中每个交易数据所关联的所有账户地址信息,从而可以组成账户集合。例如,如图2a所示,交易数据1为从账户地址1转移20元至账户地址2,那么该交易数据1所关联的账户地址信息可包括账户地址信息1与账户地址信息2;交易数据2为从账户地址1转移30元至账户地址3,那么该交易数据2所关联的账户地址信息可包括账户地址信息1与账户地址信息3;交易数据3为从账户地址4转移30元至账户地址5,那么该交易数据3所关联的账户地址信息可包括账户地址信息4与账户地址信息5。根据账户地址信息1、账户地址信息2、账户地址信息3、账户地址信息4以及账户地址信息5,可以组成如图2a所示的账户集合。
可选的,可以理解的是,在提取交易数据的账户地址信息时,还可以根据账户集合中已有的账户地址信息,进行过滤提取。例如,交易数据1为从账户地址1转移20元至账户地址2,那么该交易数据1所关联的账户地址信息可包括账户地址信息1与账户地址信息2,账户集合中可以包括账户地址信息1与账户地址信息2;而交易数据2为从账户地址1转移30元至账户地址3,那么该交易数据2所关联的账户地址信息可包括账户地址信息1与账户地址信息3,此时通过遍历账户集合,在账户集合中已经存在有账户地址信息1,那么在提取交易数据2的账户地址时,可不再提取账户地址1,只需提取账户地址3并添加至账户集合中,那么经过提取交易数据2的账户地址后,账户集合中可包括有账户地址信息1、账户地址信息2以及账户地址信息3。
进一步地,如图2a所示,可以获取每个交易数据在区块体中的交易属性信息,其中,该交易属性信息可用于指示是区块体中的哪一条交易数据,或者说,该交易属性信息可用于表征交易数据在区块体中的位置。例如,交易数据1在区块体中的交易属性信息为交易属性信息1、交易数据2在区块体中的交易属性信息为交易属性信息2、交易数据3在区块体中的交易属性信息为交易属性信息3,那么根据各个交易属性信息可组成如图2a所示的交易集合。对于获取交易数据在区块体中的交易属性信息的具体实现方式,可以参见后续图3所对应实施例中的描述。
进一步地,可以在每个账户地址信息与其关联的交易属性信息之间建立索引关系,其中,该索引关系可以以索引对的形式呈现。例如,账户地址信息1所关联的交易数据包括交易数据1与交易数据2,那么可以在账户地址信息1与交易属性信息1之间建立索引关系,在账户地址信息1与交易属性信息2之间建立索引关系,那么如图2a所示,可以以账户地址信息1为索引键(可称之为Key值)、以交易属性信息1以及交易属性信息2为索引值(可称之为Value值),生成索引对<账户地址信息1:交易属性信息1,交易属性信息2>,该索引对即可表征该账户地址信息1与交易属性信息1之间存在索引关系,同时该账户地址信息1与交易属性信息2之间也存在索引关系。同理,账户地址信息2所关联的交易数据包括交易数据1,那么可以在账户地址信息2与交易属性信息1之间建立索引关系,如图2a所示,可以以账户地址信息2为索引键、以交易属性信息1为索引值,生成索引对<账户地址信息2:交易属性信息1>,该索引对可以表征该账户地址信息2与交易属性信息1之间存在索引关系。同理,可以根据账户地址信息3与交易属性信息2生成索引对<账户地址信息3:交易属性信息2>,根据账户地址信息4与交易属性信息3生成索引对<账户地址信息4:交易属性信息3>,根据账户地址信息5与交易属性信息3生成索引对<账户地址信息5:交易属性信息3>。根据这些索引对可以生成索引对集合20。
进一步地,为了节约存储空间,可以将各个索引对中的账户地址信息进行压缩处理,得到压缩地址信息,例如,可将账户地址信息1进行压缩处理,得到压缩地址信息1、将账户地址信息2进行压缩处理,得到压缩地址信息2、架将账户地址信息3进行压缩处理,得到压缩地址信息3、将账户地址信息4进行压缩处理,得到压缩地址信息4、将账户地址信息5进行压缩处理,得到压缩地址信息5。由此可以得到包含压缩地址信息的索引对。根据这些索引对可以组成索引对集合200。进一步地,可以将各个索引对添加至初始区块20a的区块头中,由此可以得到包含索引对集合200的目标区块2001,随后,可以将该目标区块2001添加至区块链2000中。
进一步地,为便于理解,请参见图2b,图2b是本申请实施例提供的一种查询交易数据的场景示意图。其中,如图2b所示的用户终端10a可以为上述图1所对应实施例中的用户终端集群10中的用户终端为10a;如图2b所示的区块链节点1000a可以为上述图1所对应实施例中的核心节点集群1000中的核心节点1000a。
如图2b所示,用户a可以输入待查询账户地址信息以及查询时间段(也就是说,用户a期望查询某个账户在某个时间段内的相关交易信息),根据该待查询账户地址信息终端设备10a可以生成交易查询请求,随后,终端设备10a可将该交易查询请求发送至区块链节点1000a。而区块链节点1000a可以根据该交易查询请求,在区块链2000中获取到在查询时间段内所生成的区块,这里我们以在查询时间段内所生成的区块仅包含区块2001为例,那么区块链节点1000a可以获取到区块2001。
进一步地,区块链节点可以将待查询账户地址信息进行压缩处理(需要说明的是,这里进行压缩时,需要与区块头中的各个压缩地址的压缩处理方式一致),得到待查询压缩地址信息(这里的待查询压缩地址信息的格式与区块头中的压缩地址的压缩格式相同)。随后,区块链节点1000a可以遍历区块2001中的区块头,由于该区块头中存储有各个压缩地址与交易属性信息之间的索引关系,那么首先可以遍历区块头中的压缩地址信息,以获取到与待查询压缩地址信息相同的压缩地址信息(可称之为匹配压缩地址信息),随后,可以提取出与该匹配压缩地址信息具有索引关系的交易属性信息,作为待验证交易属性信息。例如,通过遍历区块头,确定压缩地址1与该待查询压缩地址信息相同,那么可以获取到与压缩地址1具有索引关系的交易属性信息1与交易属性信息2,该交易属性信息1与交易属性信息2即可作为待验证交易属性信息。
进一步地,可以通过待验证交易属性信息,在区块头中提取出所指示的交易数据。例如,在区块体中交易属性信息1所指示的为交易数据1,交易属性信息2所指示的为交易数据2,那么可以提取出交易数据1与交易数据2,该交易数据1与交易数据2即可作为与待查询账户地址信息在查询时间段内所关联的交易数据。
可选的,可以理解的是,在区块体中获取到待验证交易属性信息所指示的交易数据后,还可以根据该交易数据所对应的真实账户地址信息,对该交易数据进行验证,以验证其是否为待查询账户地址信息所关联的交易数据,对于其具体的验证实现方式,可以参见图3所对应实施例中的描述。
需要说明的是,本申请所提及的所有数据(例如交易数据1、交易数据2、交易数据3、待查询账户地址信息等等,以及下文叙述的待上链交易数据等等),均是在获取到设备用户授予的权限之后才进行处理的。
应当理解,本申请实施例将交易数据所关联的账户地址信息进行压缩,并在压缩后的压缩地址信息与交易数据在区块体中的交易属性信息之间建立索引关系,再将索引关系存储至区块头中。由此可以使得在获取到待查询账户地址信息后,无需遍历所以区块以及区块的区块体,只需要读取区块头即可通过待查询账户地址信息直接获取到具有索引关系的交易属性信息,通过交易属性信息即可在区块体中获取到所指示的交易数据(该交易数据即为待查询账户地址信息所关联的交易数据)。可以在区块链查询业务中,提高查询效率。
进一步地,为便于理解,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的方法流程示意图。其中,该方法可以由区块链节点(例如,上述图1所对应实施例中的核心节点)执行,也可以由区块链节点与终端设备(例如,上述图1所对应实施例中的终端设备)共同执行。以下将以本方法由区块链节点执行为例进行说明,如图3所示,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S105:
步骤S101,获取待上链交易数据,以及待上链交易数据对应的账户地址信息。
本申请中,区块链节点可以为区块链中的核心节点,核心节点可以接收来自区块链中的数据节点或轻节点发送的交易数据,该交易数据可以由终端设备所发送至数据节点或轻节点。其中,该交易数据可以为终端设备根据用户发起的交易业务所产生的数据,在获得用户授权后,终端设备可以将该交易数据发送至数据节点或轻节点。应当理解,区块链节点在一段时间内接收到数据节点发送的交易数据后,可以将根据该交易数据生成区块,并将该区块添加至区块链中(即上链),那么区块链节点所接收到的但还未上链至区块链的任一交易数据,即可称之为待上链交易数据。
而可以理解的是,每个交易数据可以体现为:将某些数据(例如某些虚拟资产数据),从某个账户地址(例如从账户a)转移至另外的账户地址(例如账户b),那么每个交易数据(包括待上链交易数据)也会包含相关联的账户地址信息,而区块链节点在获取到待上链交易数据后,也可以获取到待上链交易数据所对应的账户地址信息(也就是待上链交易数据中所涉及到的账户地址信息)。
步骤S102,对账户地址信息进行压缩处理,得到压缩地址信息。
本申请中,区块链节点在获取到账户地址信息后,可以对账户地址信息进行压缩处理,得到账户地址信息对应的压缩地址信息。其中,可以理解的是,对于每个账户地址信息,在区块链中的呈现形式均可以为编码形式,也就是说,账户地址信息可以为至少两个地址编码字符组成的地址字符序列。例如,以账户地址信息的呈现形式为二进制编码形式为例,账户地址信息可以为地址字符序列“0111101110111”,该地址字符序列“0111101110111”中的每一个字符均称之为地址编码字符。本申请中,对于将账户地址信息进行压缩处理,得到压缩地址信息的一种具体实现方式可为:可以获取地址压缩标准,以及地址压缩标准对应的标准字符数量;随后,可以按照标准字符数量,在地址字符序列中按序获取K个地址编码字符(K可为正整数);可以将K个地址编码字符组成的更新地址字符序列,确定为账户地址信息对应的压缩地址信息。
应当理解,地址压缩标准中的标准字符数量可为人为规定数值,在获取到账户地址信息后,可以按照该标准字符数量按序获取K个地址编码字符,作为压缩地址信息。以账户地址信息为地址字符序列“0111101110111”为例,假设标准字符数量为6,那么可以按照该标准字符数量,在地址字符序列“0111101110111”获取前6位(即011110)作为压缩地址信息,也就是说账户地址信息“0111101110111”对应的压缩地址信息为“011110”。
需要说明的是,以上举例说明了一种对于将账户地址信息进行压缩处理的方式,对于将账户地址信息进行压缩处理得到压缩地址信息的压缩方式,当然并不限于此种方式,还可以采用其他任一无损压缩方式对账户地址信息进行压缩处理得到压缩地址信息,例如,可以为通过完美哈希函数进行压缩处理的方式、可以为通过赫夫曼编码(HuffmanEncoding)压缩的方式、可以为行程长度压缩(Run Length Encoding)方式,等等,这里对于具体的压缩方式将不进行限定。
步骤S103,生成包含待上链交易数据的初始区块,获取待上链交易数据在初始区块的区块体中的交易属性信息。
本申请中,可以根据一段时间内所接收到的交易数据(包括待上链交易数据),生成初始区块。其中,该初始区块可以包括区块头与区块体,而区块体中可以包括有将各个交易数据进行编码后的编码值,例如,将交易数据a进行编码处理后,得到编码值为“1100011001”,那么该区块体中可以存储该编码值“1100011001”,该编码值即可表征交易数据a。可以理解的是,在将各个交易数据存储至区块体中时,可以按序连续存储,也就是说,可以将各个交易数据的编码值按序拼接存储,例如,交易数据1的编码值为“110001110”、交易数据2的编码值为“001001110”、交易数据3的编码值为“101001101”,那么将交易数据1、交易数据2以及交易数据3存储至区块体中的存储形式可为将编码值序列“110001110001001110101001101”(由交易数据1、交易数据2以及交易数据3的编码值所组成)存储至区块体中。
可以理解的是,存储至区块体中的交易数据可以称之为已存交易数据,其序列可称之为已存交易数据序列,可以根据该已存交易数据序列来确定出待上链交易数据在区块体中的交易属性信息,通过该交易属性信息,即可指示其具体为区块体中的哪一个交易数据,或者说,交易属性信息可以用于表征交易数据在区块体中的位置,从而可以对应提取出相应的待上链交易数据。对于确定待上链交易数据在区块体中的交易属性信息的具体实现方式,可以参见后续图4所对应实施例中的描述。
步骤S104,在压缩地址信息与交易属性信息之间建立索引关系,将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头中,得到目标区块。
本申请中,在获取到待上链交易数据在初始区块的区块体中的交易属性信息后,可以在待上链交易数据的压缩地址信息与交易属性信息之间,建立索引关系,再将该索引关系添加至初始区块的区块头中,得到目标区块。也就是说,最终得到的目标区块中的区块头中,包含有区块体中的各个交易数据的压缩地址信息与交易属性信息的索引关系。
其中,对于在压缩地址信息与交易属性信息之间建立索引关系,将索引关系添加至初始区块的区块头中,得到目标区块的具体实现方式可为:可将压缩地址信息作为索引键,并将交易属性信息作为索引值;随后,可以根据索引键与索引值建立索引对;索引对用于表征压缩地址信息与交易属性信息之间存在索引关系;随后,可以将索引对进行序列化处理,得到序列化索引对;可以将序列化索引对添加至初始区块的区块头中,得到目标区块。其中,在一种可行的实施例中,可以通过递归长度前缀编码(Recursive LengthPrefix,RLP)的方式,将序列化索引对添加至初始区块的区块头中,得到目标区块。可以理解的是,在将序列化索引对添加至初始区块的区块头中时,可以在针对于区块头的相关描述字段中,额外增加针对于该序列化索引对的描述字段,例如,可以增设区块头长度描述字段(在一种方式中,可以直接在原有的初始区块的区块头的区块头长度描述字段中,将原有的区块头长度参数修改为目标区块的区块头长度参数;在一种方式中,也可以保持原有的初始区块的区块头的区块头长度描述字段不变,并新增新的区块头长度描述字段,并在新的区块头长度描述字段中写入目标区块的区块头长度参数)、可以增加序列化索引对长度描述字段(可以写入序列化索引对的索引对长度参数)、可以增加序列化索引对的起始位置描述字段(可以写入序列化索引对的起始位置参数),等等。
可以理解的是,索引键可以理解为Key值,索引值可以理解为Value值,索引对也可理解为由Key值与Value值所组成的键值对。对于每个索引对,在对其进行序列化处理的过程中,可以在索引键与索引值之间用冒号相连接,而若索引键包含两个或两个以上的值,那么每个索引值之间可以用逗号相隔。例如,以压缩地址信息为“011011”、其相关联的交易属性信息包括交易属性信息1与交易属性信息2为例,对于压缩地址信息“011011”、交易属性信息1以及交易属性信息2的序列化索引对可为:<011011:交易属性信息1,交易属性信息2>。
可以理解的是,区块体中的每个交易数据均可以称之为待上链交易数据,那么在遍历区块体中的各个交易数据后,可以提取出多个账户地址信息,那么通过对每个账户地址信息进行压缩处理,也可以确定出多个压缩地址信息。而在获取到每个交易数据在区块体中的交易属性信息,并将压缩地址信息与其关联的交易属性信息之间建立索引关系后,可以得到多个索引对。在本申请中,在对这些索引对进行序列化处理时,可以在不同的索引对之间,使用分号相隔,从而可以通过分号来识别不同的索引对。
例如,以序列化索引对包括序列化索引对<011011:交易属性信息1,交易属性信息2>、序列化索引对<001100:交易属性信息3>、序列化索引对<011010:交易属性信息4,交易属性信息5>为例,对其进行序列化处理后,可以得到序列化索引对序列“<011011:交易属性信息1,交易属性信息2>;<001100:交易属性信息3>;<011010:交易属性信息4,交易属性信息5>”,可将该序列化索引对序列“<011011:交易属性信息1,交易属性信息2>;<001100:交易属性信息3>;<011010:交易属性信息4,交易属性信息5>”添加至区块头中。
步骤S105,将目标区块上链至区块链中。
本申请中,在将待上链交易数据的压缩账户地址与交易属性信息之间的索引关系,添加至区块头后,可以得到目标区块,随后,可以将目标区块添加至区块链中。应当理解,由于区块头中存储有压缩地址信息与交易属性信息之间的索引关系,而交易属性信息又用于指示交易数据在区块体中的存储位置,那么在接收到携带待查询账户地址信息的交易查询请求时,即可读取区块头即可,无需遍历区块体中的所有交易数据,通过遍历区块头中的压缩地址信息即可找到待查询账户地址信息相匹配的目标压缩地址信息,再通过索引关系即可确定出待查询账户地址信息所关联的目标交易属性信息,再通过目标交易属性信息即可直接在区块体中提取出其所指示的交易数据(即待查询账户地址信息对应的关联交易数据)。需要说明的是,虽然在遍历区块头中的压缩地址信息时,也是需要全量遍历,但是由于区块头中所存储的为压缩处理后的压缩地址信息,其存储空间并不大,读取消耗也非常小,所以对查询效率的影响十分小。也就是说,通过本申请,可以在区块链查询业务中,提高查询效率。
其中,对于接收交易查询请求,并基于交易查询请求以及区块头,获取关联交易数据的具体实现方式,可以参见后续图6所对应实施例中的描述。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
进一步地,请参见图4,图4是本申请实施例提供的一种获取交易数据的交易属性信息的流程示意图。其中,该流程可以对应于上述图3所对应实施例中,获取待上链交易数据在区块体中的交易属性信息的流程。如图4所示,该流程可以至少包括以下步骤S401-步骤S403:
步骤S401,获取初始区块的区块体中的已存交易数据序列;已存交易数据序列包括一个或多个已存交易数据,一个或多个已存交易数据包括待上链交易数据。
具体的,可以根据一段时间内所接收到的交易数据(包括待上链交易数据),生成初始区块。其中,该初始区块可以包括区块头与区块体,而区块体中可以包括有将各个交易数据进行编码后的编码值,例如,将交易数据a进行编码处理后,得到编码值为“1100011001”,那么该区块体中可以存储该编码值“1100011001”,该编码值即可表征交易数据a。可以理解的是,在将各个交易数据存储至区块体中时,可以按序连续存储,也就是说,可以将各个交易数据的编码值按序拼接存储,例如,交易数据1的编码值为“110001110”、交易数据2的编码值为“001001110”、交易数据3的编码值为“101001101”,那么将交易数据1、交易数据2以及交易数据3存储至区块体中的存储形式可为将编码值序列“110001110001001110101001101”(由交易数据1、交易数据2以及交易数据3的编码值所组成)存储至区块体中。
也就是说,存储至区块体中的交易数据可以称之为已存交易数据,每个已存交易数据存储在区块体中的形式是为编码值(也可称之为交易编码字符串)。那么已存交易数据序列可以理解为由多个交易编码字符串所组成的字符串序列。
步骤S402,获取已存交易数据序列中的首个已存交易数据。
具体的,首个已存交易数据即字符串序列中的起始字符串。例如,以已存交易数据序列为“011011110011011100”为例,字符串“011011”为交易数据1对应的编码值,字符串“110011”为交易数据2对应的编码值,字符串“011100”为交易数据3对应的字符串,可见,交易数据1为首个交易数据,该字符串“011011”即为首个交易数据。
步骤S403,根据首个已存交易数据在初始区块的区块体中的第一交易存储位置,以及待上链交易数据在初始区块的区块体中的第二交易存储位置,确定待上链交易数据在初始区块的区块体中的交易属性信息。
具体的,对于根据首个已存交易数据在初始区块的区块体中的第一交易存储位置,以及待上链交易数据在初始区块的区块体中的第二交易存储位置,确定待上链交易数据在初始区块的区块体中的交易属性信息的具体实现方式可为:可以获取第一交易存储位置中的第一起始存储位置,以及第二交易存储位置中的第二起始存储位置;随后,可以确定第一起始存储位置与第二起始存储位置之间的位置偏移量,根据位置偏移量,即可确定待上链交易数据在初始区块的区块体中的交易属性信息。
其中,对于获取第一交易存储位置中的第一起始存储位置,以及第二交易存储位置中的第二起始存储位置的具体实现方式可为:可以在已存交易数据序列中的一个或多个交易编码字符串中,获取用于组成首个已存交易数据的交易编码字符串,作为第一交易编码字符串,获取用于组成待上链交易数据的交易编码字符串,作为第二交易编码字符串;随后,可以将第一交易编码字符串在已存交易数据序列中所处的位置,确定为第一交易存储位置,将第一交易编码字符串中的起始编码字符在已存交易数据序列中所处的位置,确定为第一起始存储位置;将第二交易编码字符串在已存交易数据序列中所处的位置,确定为第二交易存储位置,将第二交易编码字符串中的起始编码字符在已存交易数据序列中所处的位置,确定为第二起始存储位置。
其中,可以理解的是,交易编码字符串可以理解为待上链交易数据的编码值,已存交易数据序列可以理解为由多个编码值所组成的序列,而第一交易存储位置可以理解为待上链交易数据的编码值在区块体的编码值序列所占的字符位置;第二交易存储位置可以理解为首个已存交易数据的编码值在区块体的编码值序列中所占的字符位置。例如,已存交易数据序列为“110001110001001110101001101”,待上链交易数据的交易编码字符串为“101001101”,那么该交易编码字符串“101001101”在已存交易数据序列中所占的位置为“110001110001001110[101001101]”(如序列中所标注框出的字符位置),该位置即可称之为第一交易存储位置;同理,假设首个已存交易数据的交易编码字符串为“110001110”,那么该交易编码字符串“110001110”在已存交易数据序列中所占的位置为“[110001110]001001110101001101”(如序列中所标注框出的字符位置),该位置即可称之为第二交易存储位置。
进一步地,在确定出第一交易存储位置与第二交易存储位置后,可以确定出第一交易存储位置中的起始编码字符所处的位置,该起始编码字符所处的位置即为第一起始存储位置,如上述第一交易存储位置“110001110001001110[101001101]”中的起始编码字符为“1”,该起始编码字符“1”在该已存交易数据序列中所处的位置为“110001110001001110[1]01001101”(如序列中所标注框出的编码字符位置),即可为第一起始编码字符位置;同理,可以确定出第二交易存储位置中的起始编码字符位置,该起始编码字符位置即为第二起始存储位置,如上述第二交易存储位置“[110001110]001001110101001101”中的起始编码字符为“1”,该起始编码字符“1”所处的位置“[1]10001110001001110101001101”(如序列中所标注框出的编码字符位置),即可为第二起始编码字符位置。
进一步地,在确定出第一起始存储位置与第二起始存储位置后,可以确定出第一起始存储位置与第二起始存储位置之间的位置偏移量,其具体实现方式可为:可将已存交易数据序列中的处于所述第一起始存储位置与第二起始存储位置之间的字符,确定为待统计字符;随后,可以获取待统计字符对应的字符数量,根据字符数量确定第一起始存储位置与第二起始存储位置之间的位置偏移量。
例如,如上述为例,第一起始存储位置为“110001110001001110[1]01001101”(如序列中所标注框出的编码字符位置)、第二起始存储位置为“[1]10001110001001110101001101”(如序列中所标注框出的编码字符位置),那么在两个位置之间的字符包括有“10001110001001110”,该字符即可称之为待统计字符,该待统计字符的字符数量为17,那么该第一起始存储位置与第二起始存储位置之间的位置偏移量可为18(待统计字符的字符数量与1进行相加处理)。需要说明的是,这里的位置偏移量能够表征两个位置之间相隔的位置即可,也就是说,这里也可以直接将待统计字符的字符数量17作为位置偏移量。
进一步地,在确定出待上链交易数据在区块体中的位置偏移量后,可以根据位置偏移量确定出待上链交易数据在初始区块体的区块体中的交易属性信息,其具体实现方式可为:可以获取用于组成待上链交易数据的交易编码字符串所对应的编码长度;随后,可以将位置偏移量以及编码长度,共同确定为待上链交易数据在初始区块的区块体中的交易属性信息。应当理解,该编码长度可以理解为交易编码字符串的字符数量,以待上链交易数据的交易编码字符串为“0110011”为例,该待上链交易数据的编码长度即可为7。
需要说明的是,通过前文所述,在将压缩地址信息、交易属性信息之间建立索引对后,可将索引对进行序列化处理,那么在交易属性信息包含位置偏移量与编码长度时,可以使用一种符号来将位置偏移量与编码长度相组合到一起,该符号可为人为规定符号,而位置偏移量与编码长度之间可以采用逗号相隔。以压缩地址信息为“011011”、位置偏移量为12、编码长度为20为例,序列化处理后的索引对可为<011011:[12,20]>,其中,[12,20]即为一个交易属性信息。
需要说明的是,以上是以交易数据的位置偏移量与交易数据的编码长度来作为交易数据在区块体中的交易属性信息,实际上,交易属性信息也可以为其他交易数据在区块体中的相关信息,交易属性信息能够指示其所表征的交易数据具体为区块体中的哪一条交易数据即可,例如,区块体中的每个交易数据的交易表征标识互不相同,交易表征标识可以唯一表征某一个区块体中的交易数据,那么该交易属性信息即可由该交易表征标识所组成;例如,区块体中的每个交易数据的交易时间信息均不相同,交易时间信息可以唯一表征区块体中的某个交易数据,那么该交易属性信息也可由交易时间信息组成,这里将不对交易属性信息具体包括的内容进行限定。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
进一步地,为便于理解,请参见图5,图5是本申请实施例提供的一种添加索引关系至区块头的系统结构图。如图5所示,该系统结构中可以包括区块体、账户提取模块、交易提取模块、自定义压缩器、索引输出模块以及区块头。为便于理解,以下将对各个模块进行阐述:
区块体:可由N个区块链交易数据所生成,区块体可存储N个区块链交易数据。其中,N个区块链交易数据可以为区块链节点在交易打包阶段从交易内存池中打包出的N笔交易,可以使未花费输出模型(Unspent Transaction Output,UTXO)的交易,也可以是基于账户模型的区块链交易,这里将不进行限制。
账户提取模块:可以用于提取区块体中的各个交易数据所关联的账户地址信息,并组成账户信息集合,并对账户信息集合进行去重处理(即对重复的账户地址信息进行去重)。
交易提取模块:可用于获取各个交易数据在区块体中的交易属性信息(可以包括位置偏移量以及编码长度)。
自定义压缩器:可以用于对账户信息集合中的各个账户地址信息进行压缩处理。例如,可以根据具体业务需求设置地址压缩标准(设置标准字符数量),并按照地址压缩标准对账户集合中的各个账户进行压缩处理,得到压缩地址信息。
索引输出模块:可以用于将压缩地址信息与其关联的交易属性信息之间建立索引对,并对索引对进行序列化处理,得到序列化索引对。
区块头:可以用于存储索引输出模块所输出的序列化索引对。应当理解,根据包含序列化索引对的区块头与区块体可组成目标区块,可以将目标区块上链至区块链中。
其中,对于各个模块的具体实现方式,可以参见上述图3-图4所对应实施例中的描述,这里将不再进行赘述。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
进一步地,请参见图6,图6是本申请实施例提供的另一种基于区块链的数据处理方法的方法流程示意图,该方法流程可以理解为是基于区块头进行交易查询的流程。其中,该流程可以对应于上述图3所对应实施例中,在区块头中添加了索引关系后的交易查询流程,如图6所示,该流程可以至少包括以下步骤S601-步骤S603:
步骤S601,接收目标节点发送的目标交易查询请求;目标交易查询请求携带目标账户地址信息。
具体的,目标节点可以为业务方所使用的台式终端或移动终端,该目标交易查询请求除携带目标账户地址信息以外,还可以携带查询时间段。即该目标交易查询请求为查询目标账户地址信息在查询时间段以内的所有关联交易数据。
步骤S602,基于目标交易查询请求在区块链中获取目标区块,以及目标区块的区块头;目标区块是指将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头后所得到的区块;初始区块包含待上链交易数据;压缩地址信息是指将待上链交易数据对应的账户地址信息,进行压缩处理后得到的地址信息;交易属性信息是指待上链交易数据在初始区块的区块体中的属性信息。
具体的,区块链节点可以基于交易查询请求,在区块链中获取到所有在查询时间段内所生成的所有区块(这里以包含目标区块为例),那么区块链节点可以基于交易查询请求获取到目标区块,并获取到目标区块的区块头。其中,对于将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头,得到目标区块的具体实现方式,可以参见上述图3所对应实施例中对于得到目标区块的描述,这里将不再进行赘述。
步骤S603,根据目标区块的区块头中所存储的,压缩地址信息与交易属性信息之间的索引关系,在目标区块中获取目标账户地址信息对应的目标关联交易数据,将目标关联交易数据发送至目标节点。
具体的,通过前文所述可知,区块头中所存储的压缩地址信息是根据地址压缩标准对账户地址信息进行压缩处理所得到的;以区块头中的压缩地址信息的数量为至少两个为例,对于根据目标区块的区块头中所存储的,压缩地址信息与交易属性信息之间的索引关系,在目标区块中获取目标账户地址信息对应的目标关联交易数据的具体实现方式可为:可以先按照地址压缩标准对目标账户地址信息进行压缩处理,得到目标压缩地址信息;随后,可以将目标区块的区块头所包括的至少两个压缩地址信息中,与目标压缩地址信息相匹配的压缩地址信息作为匹配压缩地址信息;随后,可以将目标区块的区块头中,与匹配压缩地址信息具有索引关系的交易属性信息,确定为待验证交易属性信息;根据待验证交易属性信息,即可在目标区块中获取目标账户地址信息对应的目标关联交易数据。
应当理解,因为区块头中所存储的地址信息是为压缩处理后的压缩地址信息,而为了能够将区块头中的压缩地址信息与目标账户地址信息进行匹配,那么可以先将目标账户地址信息进行同样的压缩处理(也是按照相同的标准字符数量进行压缩处理),得到目标压缩地址信息后,再将目标压缩地址信息与区块头中的至少两个压缩地址信息进行匹配。若该区块头中存在与目标压缩地址信息相同的匹配压缩地址信息,则可以将与该匹配压缩地址信息具有索引关系的交易属性信息确定为待验证交易属性信息,可以在区块体中获取到该待验证交易属性信息所指示的交易数据,该交易数据即可作为目标账户地址信息对应的目标关联交易数据。
可选的,可以理解的是,将地址进行压缩处理后,可能使得两个不同的账户地址信息的压缩地址信息相同,那么为了使得通过压缩地址信息所获取到的目标关联交易数据更为准确,可以在获取到区块体中待验证交易属性信息所指示的交易数据后,对这些交易数据进行验证。其具体方法可为:可以在目标区块的区块体中,获取待验证交易属性信息所指示的待验证交易数据;随后,可以获取待验证交易数据对应的真实地址信息,根据真实地址信息与目标账户地址信息,可对待验证交易数据进行交易验证;若待验证交易数据的交易验证结果为验证通过结果,则可将待验证交易数据确定为目标账户地址信息对应的目标关联交易数据。而若待验证交易数据的交易验证结果为验证失败结果,则可将待验证交易数据确定为目标账户地址信息对应的非关联交易数据。
其中,对于根据真实地址信息与目标账户地址信息,对待验证交易数据进行交易验证的具体实现方式可为:可以将真实地址信息与目标账户地址信息进行匹配;若真实地址信息与目标账户地址信息相匹配,则可将待验证交易数据的交易验证结果确定为验证通过结果;而若真实地址信息与目标账户地址信息不匹配,则可将待验证交易数据的交易验证结果确定为验证失败结果。
应当理解,也就是说,在通过索引关系在区块体中获取到交易数据后,可以将这些交易数据作为待验证交易数据,可以获取到这些待验证交易数据的真正账户地址信息,并与目标账户地址信息进行比较,以检测其真正账户地址信息是否为目标账户地址信息,若真正账户地址信息为目标账户地址信息,那么即可将该待验证交易数据确定为目标账户地址信息所关联的目标关联交易数据。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
进一步地,请参见图7,图7是本申请实施例提供的一种交易查询的系统结构图。如图7所示,该系统结构中可以包括账户输入模块、自定义压缩器、区块头、区块体、压缩地址检索器以及交易数据输出模块。为便于理解,以下将对各个模块进行阐述:
账户输入模块:可以用于输入目标账户地址信息,该目标账户地址信息也就是待查询账户地址信息。
自定义压缩器:可以用于接收账户输入模块所传输的目标账户地址信息,并将该目标账户地址信息进行压缩处理,得到目标压缩地址信息。
压缩地址检索器:可以用于接收自定义压缩器所传输的目标压缩地址信息,并基于该目标压缩地址信息遍历区块头中的索引关系,查询与该目标压缩地址信息具有索引关系的交易属性信息(可称之为待验证交易属性信息);同时,该压缩地址检索器可以在区块体中获取到待验证交易属性信息所指示的交易数据(可称之为待验证交易数据)。
区块头:可以存储有压缩地址信息与交易属性信息所组成的索引对,并为压缩地址检索器提供索引对,供压缩地址检索器查询交易。
区块体,可以存储有一段时间内的区块链交易数据,并为压缩地址检索器提供信息,供压缩地址检索器查询交易。
交易数据输出模块,可以用于接收压缩地址检索器所传输的待验证交易数据,并获取待验证交易数据的真实地址信息,基于真实地址信息对待验证交易数据进行验证。
其中,对于账户输入模块、自定义压缩器、区块头、区块体、压缩地址检索器以及交易数据输出模块的具体实现方式,可以参见上述图6所对应实施例中步骤S601-步骤S603的描述,这里将不再进行赘述。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该基于区块链的数据处理装置可以用于执行图3所示的方法。如图8所示,该基于区块链的数据处理装置1可以包括:地址信息获取模块11、地址压缩模块12、区块生成模块13、属性信息获取模块14、信息添加模块15以及上链模块16。
地址信息获取模块11,用于获取待上链交易数据,以及待上链交易数据对应的账户地址信息;
地址压缩模块12,用于对账户地址信息进行压缩处理,得到压缩地址信息;
区块生成模块13,用于生成包含待上链交易数据的初始区块;
属性信息获取模块14,用于获取待上链交易数据在初始区块的区块体中的交易属性信息;
信息添加模块15,用于在压缩地址信息与交易属性信息之间建立索引关系,将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头中,得到目标区块;
上链模块16,用于将目标区块上链至区块链中。
其中,地址信息获取模块11、地址压缩模块12、区块生成模块13、属性信息获取模块14、信息添加模块15以及上链模块16的具体实现方式,可以参见上述图3所对应实施例中步骤S101-步骤S105的描述,这里将不再进行赘述。
在一个实施例中,账户地址信息为至少两个地址编码字符组成的地址字符序列;
地址压缩模块12可以包括:标准获取单元121、字符获取单元122以及地址组成单元123。
标准获取单元121,用于获取地址压缩标准,以及地址压缩标准对应的标准字符数量;
字符获取单元122,用于按照标准字符数量,在地址字符序列中按序获取K个地址编码字符;K为正整数;
地址组成单元123,用于将K个地址编码字符组成的更新地址字符序列,确定为账户地址信息对应的压缩地址信息。
其中,标准获取单元121、字符获取单元122以及地址组成单元123的具体实现方式,可以参见上述图3所对应实施例中步骤S102的描述,这里将不再进行赘述。
在一个实施例中,属性信息获取模块14可以包括:交易序列获取单元141以及交易属性确定单元142。
交易序列获取单元141,用于获取初始区块的区块体中的已存交易数据序列;已存交易数据序列包括一个或多个已存交易数据,一个或多个已存交易数据包括待上链交易数据;
交易属性确定单元142,用于获取已存交易数据序列中的首个已存交易数据;
交易属性确定单元142,还用于根据首个已存交易数据在初始区块的区块体中的第一交易存储位置,以及待上链交易数据在初始区块的区块体中的第二交易存储位置,确定待上链交易数据在初始区块的区块体中的交易属性信息。
其中,交易序列获取单元141以及交易属性确定单元142的具体实现方式,可以参见上述图4所对应实施例中步骤S401-步骤S403的描述,这里将不再进行赘述。
在一个实施例中,交易属性确定单元142可以包括:起始位置获取子单元1421以及交易属性确定子单元1422。
起始位置获取子单元1421,用于获取第一交易存储位置中的第一起始存储位置,以及第二交易存储位置中的第二起始存储位置;
交易属性确定子单元1422,用于确定第一起始存储位置与第二起始存储位置之间的位置偏移量;
交易属性确定子单元1422,还用于根据位置偏移量,确定待上链交易数据在初始区块的区块体中的交易属性信息。
其中,起始位置获取子单元1421以及交易属性确定子单元1422的具体实现方式,可以参见上述图4所对应实施例中步骤S403的描述,这里将不再进行赘述。
在一个实施例中,已存交易数据序列中的每个已存交易数据分别由交易编码字符串所组成;
起始位置获取子单元1421,还具体用于在已存交易数据序列中的一个或多个交易编码字符串中,获取用于组成首个已存交易数据的交易编码字符串,作为第一交易编码字符串,获取用于组成待上链交易数据的交易编码字符串,作为第二交易编码字符串;
起始位置获取子单元1421,还具体用于将第一交易编码字符串在已存交易数据序列中所处的位置,确定为第一交易存储位置,将第一交易编码字符串中的起始编码字符在已存交易数据序列中所处的位置,确定为第一起始存储位置;
起始位置获取子单元1421,还具体用于将第二交易编码字符串在已存交易数据序列中所处的位置,确定为第二交易存储位置,将第二交易编码字符串中的起始编码字符在已存交易数据序列中所处的位置,确定为第二起始存储位置。
在一个实施例中,交易属性确定子单元1422,还具体用于将已存交易数据序列中的处于第一起始存储位置与第二起始存储位置之间的字符,确定为待统计字符;
交易属性确定子单元1422,还具体用于获取待统计字符对应的字符数量,根据字符数量确定第一起始存储位置与第二起始存储位置之间的位置偏移量。
在一个实施例中,交易属性确定子单元1422,还具体用于获取用于组成待上链交易数据的交易编码字符串所对应的编码长度;
交易属性确定子单元1422,还具体用于将位置偏移量以及编码长度,确定为待上链交易数据在初始区块的区块体中的交易属性信息。
在一个实施例中,信息添加模块15可以包括:索引对生成单元151、序列化处理单元152以及索引对添加单元153。
索引对生成单元151,用于将压缩地址信息作为索引键,将交易属性信息作为索引值;
索引对生成单元151,还用于根据索引键与索引值建立索引对;索引对用于表征压缩地址信息与交易属性信息之间存在索引关系;
序列化处理单元152,用于将索引对进行序列化处理,得到序列化索引对;
索引对添加单元153,用于将序列化索引对添加至初始区块的区块头中,得到目标区块。
其中,索引对生成单元151、序列化处理单元152以及索引对添加单元153的具体实现方式,可以参见上述图3所对应实施例中步骤S104的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图9,图9是本申请实施例提供的另一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该基于区块链的数据处理装置可以用于执行图6所示的方法。如图9所示,该基于区块链的数据处理装置2可以包括:请求接收模块17、区块获取模块18以及交易确定模块19。
请求接收模块17,用于接收目标节点发送的目标交易查询请求;目标交易查询请求携带目标账户地址信息;
区块获取模块18,用于基于目标交易查询请求在区块链中获取目标区块,以及目标区块的区块头;
交易确定模块19,用于根据目标区块的区块头中所存储的,压缩地址信息与交易属性信息之间的索引关系,在目标区块中获取目标账户地址信息对应的目标关联交易数据,将目标关联交易数据发送至目标节点。
其中,请求接收模块17、区块获取模块18以及交易确定模块19的具体实现方式,可以参见上述图6所对应实施例中步骤S601-步骤S603的描述,这里将不再进行赘述。
在一个实施例中,压缩地址信息是根据地址压缩标准对账户地址信息进行压缩处理所得到的;压缩地址信息的数量为至少两个;
交易确定模块19可以包括:目标地址压缩单元191、地址匹配单元192以及目标交易获取单元193。
目标地址压缩单元191,用于按照地址压缩标准对目标账户地址信息进行压缩处理,得到目标压缩地址信息;
地址匹配单元192,用于将目标区块的区块头所包括的至少两个压缩地址信息中,与目标压缩地址信息相匹配的压缩地址信息作为匹配压缩地址信息;
目标交易获取单元193,用于将目标区块的区块头中,与匹配压缩地址信息具有索引关系的交易属性信息,确定为待验证交易属性信息;
目标交易获取单元193,还用于根据待验证交易属性信息,在目标区块中获取目标账户地址信息对应的目标关联交易数据。
其中,目标地址压缩单元191、地址匹配单元192以及目标交易获取单元193的具体实现方式,可以参见上述图6所对应实施例中步骤S603的描述,这里将不再进行赘述。
在一个实施例中,目标交易获取单元193可以包括:待验证交易获取子单元1931、交易验证子单元1932以及目标交易确定子单元1933。
待验证交易获取子单元1931,用于在目标区块的区块体中,获取待验证交易属性信息所指示的待验证交易数据;
交易验证子单元1932,用于获取待验证交易数据对应的真实地址信息,根据真实地址信息与目标账户地址信息,对待验证交易数据进行交易验证;
目标交易确定子单元1933,用于若待验证交易数据的交易验证结果为验证通过结果,则将待验证交易数据确定为目标账户地址信息对应的目标关联交易数据。
其中,待验证交易获取子单元1931、交易验证子单元1932以及目标交易确定子单元1933的具体实现方式,可以参见上述图6所对应实施例中步骤S603的描述,这里将不再进行赘述。
在一个实施例中,交易验证子单元1932,还具体用于将真实地址信息与目标账户地址信息进行匹配;
交易验证子单元1932,还具体用于若真实地址信息与目标账户地址信息相匹配,则将待验证交易数据的交易验证结果确定为验证通过结果;
交易验证子单元1932,还具体用于若真实地址信息与目标账户地址信息不匹配,则将待验证交易数据的交易验证结果确定为验证失败结果。
在本申请实施例中,对于待上链交易数据,可以将其对应的账户地址信息进行压缩处理,得到压缩地址信息;在生成包含该待上链交易数据的初始区块后,可以在该待上链交易数据在初始区块的区块体中的交易属性信息,与压缩地址信息之间建立索引关系。随后,可将该索引关系添加至初始区块的区块头中,从而可以得到目标区块,将目标区块上链至区块链后,在接收到携带待查询账户地址信息的交易查询请求时,即可基于目标区块的区块头中的索引关系来查询所述待查询账户地址信息对应的关联交易数据。应当理解,通过将账户地址信息进行压缩处理,并将压缩地址信息与交易属性信息关联存储至区块头的方式,可以使得在查询某个待查询账户地址信息对应的相关交易时,无需遍历所有区块体,也无需遍历区块体中的所有交易数据,只需要读取对应区块的区块头,即可通过压缩地址信息及其索引关系来获取到,可以很好地提高查询效率;同时,由于区块头中所存储的为压缩后的地址信息,那么在读取区块头时可以减少读取时间,可以进一步提高读取效率。综上,本申请可以在区块链查询业务中,提高查询效率。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,上述图8所对应实施例中的基于区块链的数据处理装置1,或上述图9所对应实施例中的基于区块链的数据处理装置2可以应用于上述计算机设备8000,上述计算机设备8000可以包括:处理器8001,网络接口8004和存储器8005,此外,上述计算机设备8000还包括:用户接口8003,和至少一个通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。其中,用户接口8003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口8003还可以包括标准的有线接口、无线接口。网络接口8004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器8005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器8005可选的还可以是至少一个位于远离前述处理器8001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器8005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备8000中,网络接口8004可提供网络通讯功能;而用户接口8003主要用于为用户提供输入的接口;而处理器8001可以用于调用存储器8005中存储的设备控制应用程序,以实现:
获取待上链交易数据,以及待上链交易数据对应的账户地址信息;
对账户地址信息进行压缩处理,得到压缩地址信息;
生成包含待上链交易数据的初始区块,获取待上链交易数据在初始区块的区块体中的交易属性信息;
在压缩地址信息与交易属性信息之间建立索引关系,将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头中,得到目标区块;
将目标区块上链至区块链中。
或实现:
接收目标节点发送的目标交易查询请求;目标交易查询请求携带目标账户地址信息;
基于目标交易查询请求在区块链中获取目标区块,以及目标区块的区块头;目标区块是指将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头后所得到的区块;初始区块包含待上链交易数据;压缩地址信息是指将待上链交易数据对应的账户地址信息,进行压缩处理后得到的地址信息;交易属性信息是指待上链交易数据在初始区块的区块体中的属性信息;
根据目标区块的区块头中所存储的,压缩地址信息与交易属性信息之间的索引关系,在目标区块中获取目标账户地址信息对应的目标关联交易数据,将目标关联交易数据发送至目标节点。
应当理解,本申请实施例中所描述的计算机设备8000可执行前文图3或图6所对应实施例中对该基于区块链的数据处理方法的描述,也可执行前文图8所对应施例中对该基于区块链的数据处理装置1,或图9所对应施例中对该基于区块链的数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备1000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3或图6所对应实施例中对上述基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (16)
1.一种基于区块链的数据处理方法,其特征在于,包括:
获取待上链交易数据,以及所述待上链交易数据对应的账户地址信息;
对所述账户地址信息进行压缩处理,得到压缩地址信息;
生成包含所述待上链交易数据的初始区块,获取所述待上链交易数据在所述初始区块的区块体中的交易属性信息;所述交易属性信息包括所述待上链交易数据在所述初始区块的区块体中的位置偏移量,以及用于组成所述待上链交易数据的交易编码字符串所对应的编码长度;所述位置偏移量基于所述用于组成所述待上链交易数据的交易编码字符串所确定;所述位置偏移量与所述编码长度,用于表征所述待上链交易数据在所述初始区块的区块体中的位置;
在所述压缩地址信息与所述交易属性信息之间建立索引关系,将所述压缩地址信息与所述交易属性信息之间的索引关系,添加至所述初始区块的区块头中,得到目标区块;
将所述目标区块上链至区块链中;所述上链至所述区块链中的所述目标区块的区块头,用于在接收到目标节点发送的携带目标账户地址信息的目标交易查询请求时,基于所述目标区块的区块头中所存储的所述压缩地址信息与所述交易属性信息之间的索引关系,在所述目标区块中获取所述目标账户地址信息对应的目标关联交易数据;所述目标关联交易数据对应的压缩地址信息与目标压缩地址信息相匹配,所述目标压缩地址信息是指将所述目标账户地址信息进行压缩处理后所得到的信息。
2.根据权利要求1所述的方法,其特征在于,所述账户地址信息为至少两个地址编码字符组成的地址字符序列;
所述对所述账户地址信息进行压缩处理,得到压缩地址信息,包括:
获取地址压缩标准,以及所述地址压缩标准对应的标准字符数量;
按照所述标准字符数量,在所述地址字符序列中按序获取K个地址编码字符;K为正整数;
将所述K个地址编码字符组成的更新地址字符序列,确定为所述账户地址信息对应的压缩地址信息。
3.根据权利要求1所述的方法,其特征在于,所述获取所述待上链交易数据在所述初始区块的区块体中的交易属性信息,包括:
获取所述初始区块的区块体中的已存交易数据序列;所述已存交易数据序列包括一个或多个已存交易数据,所述一个或多个已存交易数据包括所述待上链交易数据;
获取所述已存交易数据序列中的首个已存交易数据;
根据所述首个已存交易数据在所述初始区块的区块体中的第一交易存储位置,以及所述待上链交易数据在所述初始区块的区块体中的第二交易存储位置,确定所述待上链交易数据在所述初始区块的区块体中的交易属性信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述首个已存交易数据在所述初始区块的区块体中的第一交易存储位置,以及所述待上链交易数据在所述初始区块的区块体中的第二交易存储位置,确定所述待上链交易数据在所述初始区块的区块体中的交易属性信息,包括:
获取所述第一交易存储位置中的第一起始存储位置,以及所述第二交易存储位置中的第二起始存储位置;
确定所述第一起始存储位置与所述第二起始存储位置之间的位置偏移量,根据所述位置偏移量,确定所述待上链交易数据在所述初始区块的区块体中的交易属性信息。
5.根据权利要求4所述的方法,其特征在于,所述已存交易数据序列中的每个已存交易数据分别由交易编码字符串所组成;
所述获取所述第一交易存储位置中的第一起始存储位置,以及所述第二交易存储位置中的第二起始存储位置,包括:
在所述已存交易数据序列中的一个或多个交易编码字符串中,获取用于组成所述首个已存交易数据的交易编码字符串,作为第一交易编码字符串,获取用于组成所述待上链交易数据的交易编码字符串,作为第二交易编码字符串;
将所述第一交易编码字符串在所述已存交易数据序列中所处的位置,确定为所述第一交易存储位置,将所述第一交易编码字符串中的起始编码字符在所述已存交易数据序列中所处的位置,确定为所述第一起始存储位置;
将所述第二交易编码字符串在所述已存交易数据序列中所处的位置,确定为所述第二交易存储位置,将所述第二交易编码字符串中的起始编码字符在所述已存交易数据序列中所处的位置,确定为所述第二起始存储位置。
6.根据权利要求5所述的方法,其特征在于,所述确定所述第一起始存储位置与所述第二起始存储位置之间的位置偏移量,包括:
将所述已存交易数据序列中的处于所述第一起始存储位置与所述第二起始存储位置之间的字符,确定为待统计字符;
获取所述待统计字符对应的字符数量,根据所述字符数量确定所述第一起始存储位置与所述第二起始存储位置之间的位置偏移量。
7.根据权利要求4所述的方法,其特征在于,所述根据所述位置偏移量,确定所述待上链交易数据在所述初始区块的区块体中的交易属性信息,包括:
获取用于组成所述待上链交易数据的交易编码字符串所对应的编码长度;
将所述位置偏移量以及所述编码长度,确定为所述待上链交易数据在所述初始区块的区块体中的交易属性信息。
8.根据权利要求1所述的方法,其特征在于,所述在所述压缩地址信息与所述交易属性信息之间建立索引关系,将所述压缩地址信息与所述交易属性信息之间的索引关系,添加至所述初始区块的区块头中,得到目标区块,包括:
将所述压缩地址信息作为索引键,将所述交易属性信息作为索引值;
根据所述索引键与所述索引值建立索引对;所述索引对用于表征所述压缩地址信息与所述交易属性信息之间存在索引关系;
将所述索引对进行序列化处理,得到序列化索引对;
将所述序列化索引对添加至所述初始区块的区块头中,得到所述目标区块。
9.一种基于区块链的数据处理方法,其特征在于,包括:
接收目标节点发送的目标交易查询请求;所述目标交易查询请求携带目标账户地址信息;
基于所述目标交易查询请求在区块链中获取目标区块,以及所述目标区块的区块头;所述目标区块是指将压缩地址信息与交易属性信息之间的索引关系,添加至初始区块的区块头后所得到的区块;所述初始区块包含待上链交易数据;所述压缩地址信息是指将所述待上链交易数据对应的账户地址信息,进行压缩处理后得到的地址信息;所述交易属性信息是指所述待上链交易数据在所述初始区块的区块体中的属性信息;所述交易属性信息包括所述待上链交易数据在所述初始区块的区块体中的位置偏移量,以及用于组成所述待上链交易数据的交易编码字符串所对应的编码长度;所述位置偏移量基于所述用于组成所述待上链交易数据的交易编码字符串所确定;所述位置偏移量与所述编码长度,用于表征所述待上链交易数据在所述初始区块的区块体中的位置;
根据所述目标区块的区块头中所存储的,所述压缩地址信息与所述交易属性信息之间的索引关系,在所述目标区块中获取所述目标账户地址信息对应的目标关联交易数据,将所述目标关联交易数据发送至所述目标节点。
10.根据权利要求9所述的方法,其特征在于,所述压缩地址信息是根据地址压缩标准对所述账户地址信息进行压缩处理所得到的;所述压缩地址信息的数量为至少两个;
所述根据所述目标区块的区块头中所存储的,所述压缩地址信息与所述交易属性信息之间的所述索引关系,在所述目标区块中获取所述目标账户地址信息对应的目标关联交易数据,包括:
按照所述地址压缩标准对所述目标账户地址信息进行压缩处理,得到目标压缩地址信息;
将所述目标区块的区块头所包括的至少两个压缩地址信息中,与所述目标压缩地址信息相匹配的压缩地址信息作为匹配压缩地址信息;
将所述目标区块的区块头中,与所述匹配压缩地址信息具有索引关系的交易属性信息,确定为待验证交易属性信息;
根据所述待验证交易属性信息,在所述目标区块中获取所述目标账户地址信息对应的目标关联交易数据。
11.根据权利要求10所述的方法,其特征在于,所述根据所述待验证交易属性信息,在所述目标区块中获取所述目标账户地址信息对应的目标关联交易数据,包括:
在所述目标区块的区块体中,获取所述待验证交易属性信息所指示的待验证交易数据;
获取所述待验证交易数据对应的真实地址信息,根据所述真实地址信息与所述目标账户地址信息,对所述待验证交易数据进行交易验证;
若所述待验证交易数据的交易验证结果为验证通过结果,则将所述待验证交易数据确定为所述目标账户地址信息对应的目标关联交易数据。
12.根据权利要求11所述的方法,其特征在于,所述根据所述真实地址信息与所述目标账户地址信息,对所述待验证交易数据进行交易验证,包括:
将所述真实地址信息与所述目标账户地址信息进行匹配;
若所述真实地址信息与所述目标账户地址信息相匹配,则将所述待验证交易数据的交易验证结果确定为所述验证通过结果;
若所述真实地址信息与所述目标账户地址信息不匹配,则将所述待验证交易数据的交易验证结果确定为验证失败结果。
13.一种基于区块链的数据处理装置,其特征在于,包括:
地址信息获取模块,用于获取待上链交易数据,以及所述待上链交易数据对应的账户地址信息;
地址压缩模块,用于对所述账户地址信息进行压缩处理,得到压缩地址信息;
区块生成模块,用于生成包含所述待上链交易数据的初始区块;
属性信息获取模块,用于获取所述待上链交易数据在所述初始区块的区块体中的交易属性信息;所述交易属性信息包括所述待上链交易数据在所述初始区块的区块体中的位置偏移量,以及用于组成所述待上链交易数据的交易编码字符串所对应的编码长度;所述位置偏移量基于所述用于组成所述待上链交易数据的交易编码字符串所确定;所述位置偏移量与所述编码长度,用于表征所述待上链交易数据在所述初始区块的区块体中的位置;
信息添加模块,用于在所述压缩地址信息与所述交易属性信息之间建立索引关系,将所述压缩地址信息与所述交易属性信息之间的索引关系,添加至所述初始区块的区块头中,得到目标区块;
上链模块,用于将所述目标区块上链至区块链中;所述上链至所述区块链中的所述目标区块的区块头,用于在接收到目标节点发送的携带目标账户地址信息的目标交易查询请求时,基于所述目标区块的区块头中所存储的所述压缩地址信息与所述交易属性信息之间的索引关系,在所述目标区块中获取所述目标账户地址信息对应的目标关联交易数据;所述目标关联交易数据对应的压缩地址信息与目标压缩地址信息相匹配,所述目标压缩地址信息是指将所述目标账户地址信息进行压缩处理后所得到的信息。
14.一种区块链,其特征在于,包括:一个或多个区块;
所述一个或多个区块中的每个区块包括区块头与区块体,所述区块体用于存储交易数据,所述区块头用于存储所述区块体中所述交易数据对应的压缩地址信息与交易属性信息之间的索引关系;所述压缩地址信息是指将所述交易数据对应的账户地址信息进行压缩处理所得到的地址信息;所述交易属性信息包括所述交易数据在所述区块体中的位置偏移量,以及用于组成所述交易数据的交易编码字符串所对应的编码长度;所述位置偏移量基于所述用于组成所述交易数据的交易编码字符串所确定;所述位置偏移量与所述编码长度,用于表征所述交易数据在所述区块体中的位置;所述区块头用于在接收到目标节点发送的携带目标账户地址信息的目标交易查询请求时,基于所述区块头中所存储的所述压缩地址信息与所述交易属性信息之间的索引关系,在所述一个或多个区块中获取所述目标账户地址信息对应的目标关联交易数据;所述目标关联交易数据对应的压缩地址信息与目标压缩地址信息相匹配,所述目标压缩地址信息是指将所述目标账户地址信息进行压缩处理后所得到的信息。
15.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以使所述计算机设备执行权利要求1-12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111389908.2A CN113821536B (zh) | 2021-11-23 | 2021-11-23 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111389908.2A CN113821536B (zh) | 2021-11-23 | 2021-11-23 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821536A CN113821536A (zh) | 2021-12-21 |
CN113821536B true CN113821536B (zh) | 2022-03-18 |
Family
ID=78919804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111389908.2A Active CN113821536B (zh) | 2021-11-23 | 2021-11-23 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821536B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396443B (zh) * | 2022-10-31 | 2022-12-27 | 安徽中科晶格技术有限公司 | 基于时间因子的联盟链共识方法、装置、设备及存储介质 |
CN117034369B (zh) * | 2023-10-09 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 地址数据处理方法、装置、设备以及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535732A (zh) * | 2021-07-23 | 2021-10-22 | 东北大学 | 面向信誉-行为关联双区块链的可验证查询优化方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210042744A1 (en) * | 2018-03-14 | 2021-02-11 | Jieqian Zheng | Block chain data processing method, management terminal, user terminal, conversion device, and medium |
CN109242699A (zh) * | 2018-06-28 | 2019-01-18 | 平安科技(深圳)有限公司 | 基于区块链的医疗保险理赔方法、系统及计算机设备 |
US11062042B1 (en) * | 2018-09-26 | 2021-07-13 | Splunk Inc. | Authenticating data associated with a data intake and query system using a distributed ledger system |
CN109508334B (zh) * | 2018-11-23 | 2019-10-11 | 中科驭数(北京)科技有限公司 | 针对区块链数据库的数据压缩方法、访问方法和系统 |
CN111224793B (zh) * | 2018-11-27 | 2021-06-01 | 华为技术有限公司 | 数据存储方法、装置、计算机设备及可读存储介质 |
US20200394651A1 (en) * | 2019-06-13 | 2020-12-17 | Gridplus, Inc. | Dynamic off-chain digital currency transaction processing |
CN111047321A (zh) * | 2019-12-27 | 2020-04-21 | 支付宝实验室(新加坡)有限公司 | 业务处理方法及装置、电子设备、存储介质 |
CN111047324B (zh) * | 2020-03-16 | 2020-08-04 | 支付宝(杭州)信息技术有限公司 | 用于更新区块链节点处的公钥集合的方法及装置 |
CN111461719A (zh) * | 2020-04-13 | 2020-07-28 | 江苏恒为信息科技有限公司 | 一种区块链账户身份标识方法 |
CN112511629B (zh) * | 2020-11-30 | 2022-11-11 | 上海简苏网络科技有限公司 | 一种mpt结构的账户树的数据压缩方法及系统 |
CN112685422A (zh) * | 2020-12-31 | 2021-04-20 | 卓尔智联(武汉)研究院有限公司 | 一种处理utxo数据库的方法、装置及电子设备 |
CN113051622B (zh) * | 2021-03-11 | 2023-05-12 | 杭州趣链科技有限公司 | 索引构建方法、装置、设备和存储介质 |
-
2021
- 2021-11-23 CN CN202111389908.2A patent/CN113821536B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535732A (zh) * | 2021-07-23 | 2021-10-22 | 东北大学 | 面向信誉-行为关联双区块链的可验证查询优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113821536A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708825B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113821536B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN108111585B (zh) | 基于区块链的分布式存储方法 | |
US11418349B2 (en) | Block chain-based node device, method for operating node device, and data processing system | |
CN108572986B (zh) | 一种数据更新的方法及节点设备 | |
WO2022134951A1 (zh) | 一种数据同步方法、装置、设备以及计算机可读存储介质 | |
CN111143358A (zh) | 报表配置方法和系统 | |
CN101894081A (zh) | 媒体传送通信的串行化 | |
CN105741095A (zh) | 一种区块链动态压缩存取方法 | |
CN102810089A (zh) | 基于内容的短链接系统及实现方法 | |
WO2021237467A1 (zh) | 文件上传方法、文件下载方法和文件管理装置 | |
CN106547911B (zh) | 一种海量小文件的存取方法和系统 | |
JP5753946B2 (ja) | フォントファイルをダウンロードする方法およびシステム | |
CN106874348A (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN113326165B (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN112784112A (zh) | 报文校验方法及装置 | |
CN101194234A (zh) | 媒体传送通信的串行化 | |
CN112988667A (zh) | 一种基于区块链网络的数据存储方法及装置 | |
CN115114372A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113051622B (zh) | 索引构建方法、装置、设备和存储介质 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN112506869A (zh) | 文件处理方法、装置及系统 | |
CN114065269B (zh) | 无绑定型非同质化代币的生成方法和解析方法和存储介质 | |
CN111444542A (zh) | 一种针对版权文件的数据处理方法、装置及存储介质 | |
CN117010889A (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 |