一种数据查询方法技术

技术编号:39423481 阅读:11 留言:0更新日期:2023-11-19 16:11
本公开提供了一种数据查询方法

【技术实现步骤摘要】
一种数据查询方法、装置、设备及存储介质


[0001]本公开涉及计算机
,尤其涉及一种数据查询方法

装置

设备及存储介质


技术介绍

[0002]区块链在使用过程中会产生大量交易数据,查询端若想要获取区块链上的交易数据,需要频繁向服务端发送查询指令,以获取服务端侧区块链新产生节点的数据信息

现有技术主要通过服务端提供的按块查询接口获取区块链上的交易数据,然而,按块查询接口不仅需要频繁地调用查询指令,而且还受每秒查询率
(QPS

Queries Per Second)
的限制,对于区块链上大量数据的查询很容易超过
QPS
的限制,查询效率较低,另外,按块查询的接口还具有查询内容的限制,如不能获取合约交易的发起方地址等信息,需要先查询到合约交易账号,然后根据合约交易账号对发起方地址等信息进行二次查询


技术实现思路

[0003]本公开提供了一种数据查询方法

装置

设备及存储介质,以至少解决现有技术中存在的以上技术问题

[0004]根据本公开的第一方面,提供了一种数据查询方法,该方法包括:获取第一区块高度和第二区块高度,所述第一区块高度为区块链上已扫描区块的区块高度,所述第二区块高度为区块链上最新块的区块高度;计算所述第一区块高度与第二区块高度的差值,得到区块链上的未扫描区块高度;根据被查询交易的交易频次和查询接口的截断数量,确定查询步长;根据所述未扫描区块高度和所述查询步长,确定查询范围;根据所述查询范围和所述被查询交易对应的筛选条件,生成查询请求,并将所述查询请求发送至服务端;接收所述服务端根据所述查询请求扫描得到的查询结果

[0005]在一可实施方式中,所述获取第一区块高度和第二区块高度,包括:基于扫描记录查询所述第一区块高度,所述扫描记录用于记录区块链上已扫描区块的区块高度;获取检测线程返回的所述第二区块高度,所述检测线程用于每隔目标时间向服务端发送高度查询指令,以获取区块链上最新块的区块高度

[0006]在一可实施方式中,所述根据被查询交易的交易频次和查询接口的截断数量,确定查询步长,包括:计算所述截断数量与所述交易频次的商,得到所述被查询交易的交易次数达到所述截断数量所需的时长;计算所述区块链上区块的生成速率与所述时长的乘积,得到步长最大值;基于所述步长最大值确定所述查询步长,所述查询步长小于或等于所述步长最大值

[0007]在一可实施方式中,所述根据所述未扫描区块高度和所述查询步长,确定查询范围,包括:所述未扫描区块高度大于或等于所述查询步长,则将从最后一个已扫描区块开始一个查询步长范围内的区块确定为所述查询范围;所述未扫描区块高度小于所述查询步长且大于1,则将从最后一个已扫描区块开始到所述最新块之间的范围确定为所述查询范围;
所述未扫描区块高度小于所述查询步长且等于1,则将所述最新块确定为所述查询范围

[0008]在一可实施方式中,所述根据所述查询范围和所述被查询交易对应的筛选条件,生成查询请求,包括:所述查询范围对应的区块数大于1,则确定所述服务端对应的查询接口的查询范围参数;所述查询范围参数为高度参数,则根据所述查询范围对应的起止块高度和所述被查询交易对应的筛选条件,生成所述查询请求;所述查询范围参数为时间参数,则将所述查询范围对应的起止块高度转换为起止时间戳,并根据所述起止时间戳和所述被查询交易对应的筛选条件,生成所述查询请求;所述查询范围对应的区块数为1,则根据所述最新块的区块高度和所述被查询交易对应的筛选条件,生成所述查询请求

[0009]在一可实施方式中,所述筛选条件包括:所述被查询交易对应的账户信息

被查询交易的合约地址和被查询交易的交易类型中的至少之一

[0010]在一可实施方式中,所述根据所述查询范围和所述被查询交易对应的筛选条件,生成查询请求,还包括:根据区块链上未扫描区块对应的所有查询范围和所述被查询交易对应的筛选条件,依次生成所有查询范围对应的查询请求;相应地,所述将所述查询请求发送至服务端,包括:依次将所有所述查询请求发送至服务端;或,同时将所有所述查询请求发送至服务端

[0011]在一可实施方式中,一种数据查询方法还包括:从所述查询结果中解析出实际需要的数据;将所述实际需要的数据按照交易账号唯一保存至存储结构中

[0012]根据本公开的第二方面,提供了一种数据查询装置,该装置包括:获取模块,用于获取第一区块高度和第二区块高度,所述第一区块高度为区块链上已扫描区块的区块高度,所述第二区块高度为区块链上最新块的区块高度;计算模块,用于计算所述第一区块高度与第二区块高度的差值,得到区块链上的未扫描区块高度;第一确定模块,用于根据被查询交易的交易频次和查询接口的截断数量,确定查询步长;第二确定模块,用于根据所述未扫描区块高度和所述查询步长,确定查询范围;生成模块,用于根据所述查询范围和所述被查询交易对应的筛选条件,生成查询请求;发送模块,用于将所述查询请求发送至服务端;接收模块,用于接收所述服务端根据所述查询请求扫描得到的查询结果

[0013]根据本公开的第三方面,提供了一种电子设备,包括:
[0014]至少一个处理器;以及
[0015]与所述至少一个处理器通信连接的存储器;其中,
[0016]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法

[0017]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法

[0018]本公开的一种数据查询方法

装置

设备及存储介质,首先计算已扫描区块的第一区块高度与最新块的第二区块高度之间的差值,得到区块链上的未扫描区块高度,并基于被查询交易的交易频次和查询接口的截断数量,确定查询步长,然后根据未扫描区块高度和查询步长确定查询范围,基于查询范围和被查询交易对应的筛选条件生成查询请求,并将查询请求发送至服务端,最后接收服务端根据查询请求扫描得到的查询结果

由此,本公开的数据查询方法根据未扫描区块高度和查询步长确定查询范围,相对于按块查询的方法能够减少对服务端的访问频次,降低了
QPS
对查询效率的限制,从而提高了查询效率,另外,
秒向服务端发送一个高度查询指令

[0034]步骤
S103
,根据被查询交易的交易频次和查询接口的截断数量,确定查询步长

[0035]在本实施例中,被查询交易为查询方需要查询的交易,例如,若查询本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据查询方法,其特征在于,所述方法包括:获取第一区块高度和第二区块高度,所述第一区块高度为区块链上已扫描区块的区块高度,所述第二区块高度为区块链上最新块的区块高度;计算所述第一区块高度与第二区块高度的差值,得到区块链上的未扫描区块高度;根据被查询交易的交易频次和查询接口的截断数量,确定查询步长;根据所述未扫描区块高度和所述查询步长,确定查询范围;根据所述查询范围和所述被查询交易对应的筛选条件,生成查询请求,并将所述查询请求发送至服务端;接收所述服务端根据所述查询请求扫描得到的查询结果
。2.
根据权利要求1所述的方法,其特征在于,所述获取第一区块高度和第二区块高度,包括:基于扫描记录查询所述第一区块高度,所述扫描记录用于记录区块链上已扫描区块的区块高度;获取检测线程返回的所述第二区块高度,所述检测线程用于每隔目标时间向服务端发送高度查询指令,以获取区块链上最新块的区块高度
。3.
根据权利要求1所述的方法,其特征在于,所述根据被查询交易的交易频次和查询接口的截断数量,确定查询步长,包括:计算所述截断数量与所述交易频次的商,得到所述被查询交易的交易次数达到所述截断数量所需的时长;计算所述区块链上区块的生成速率与所述时长的乘积,得到步长最大值;基于所述步长最大值确定所述查询步长,所述查询步长小于或等于所述步长最大值
。4.
根据权利要求1所述的方法,其特征在于,所述根据所述未扫描区块高度和所述查询步长,确定查询范围,包括:所述未扫描区块高度大于或等于所述查询步长,则将从最后一个已扫描区块开始一个查询步长范围内的区块确定为所述查询范围;所述未扫描区块高度小于所述查询步长且大于1,则将从最后一个已扫描区块开始到所述最新块之间的范围确定为所述查询范围;所述未扫描区块高度小于所述查询步长且等于1,则将所述最新块确定为所述查询范围
。5.
根据权利要求4所述的方法,其特征在于,所述根据所述查询范围和所述被查询交易对应的筛选条件,生成查询请求,包括:所述查询范围对应的区块数大于1,则确定所述服务端对应的查询接口的查询范围参数;所述查询范围参数为高度参数,则根据所述查询范围对应的起止块高度和所述被查询交易对应的筛选条件,生成所述查询请求;所述查询范围参数为时间参数,则将所述查询范围对应的起止块高度转换为起止时间戳...

【专利技术属性】
技术研发人员:何川
申请(专利权)人:长春吉大正元信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1