区块链数据的处理方法和装置制造方法及图纸

技术编号:33498878 阅读:11 留言:0更新日期:2022-05-19 01:09
本公开实施例公开了一种实施例的区块链数据的处理方法和装置,其中,该处理方法包括:在收到查询请求时,检测查询对象是否为链上数据,其中,所述查询请求包括请求用户和所述查询对象;若所述查询对象为链上数据,检测所述查询对象是否为账户数据;若所述查询对象为账户数据,在账户缓存中查找所述查询对象;若在所述账户缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述账户缓存中。本公开实施例可以提高区块节点的数据处理效率。节点的数据处理效率。节点的数据处理效率。

【技术实现步骤摘要】
区块链数据的处理方法和装置


[0001]本公开涉及区块链
,尤其涉及一种区块链数据的处理方法和装置。

技术介绍

[0002]区块链技术利用块链式数据结构验证与存储数据,利用分布式节点共识算法生成和更新数据,利用密码学的方式保证数据传输和访问的安全。
[0003]目前,区块链节点在存储数据时,通常会经过网络协议栈处理数据。但是经过网络协议栈处理数据的方式可能会导致频繁的硬件中断,并且耗时较多。如何提高区块节点的数据处理效率,是一个亟待解决的问题。

技术实现思路

[0004]本公开实施例提供一种区块链数据的处理方法和装置,以提高区块节点的数据处理效率。
[0005]本公开实施例的第一方面,提供一种区块链数据的处理方法,包括:在收到查询请求时,检测查询对象是否为链上数据,其中,所述查询请求包括请求用户和所述查询对象;若所述查询对象为链上数据,检测所述查询对象是否为账户数据;若所述查询对象为账户数据,在账户缓存中查找所述查询对象;若在所述账户缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述账户缓存中。
[0006]根据本公开的一个实施例,在所述若所述查询对象为链上数据,检测所述查询对象是否为账户数据之后,还包括:若所述查询对象不是账户数据,在检测所述查询对象是否为交易数据;若所述查询对象为交易数据,在所述交易缓存中查找所述查询对象;若在所述交易缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述交易缓存中。
[0007]根据本公开的一个实施例,在所述若所述查询对象为账户数据,在账户缓存中查找所述查询对象之后,还包括:若在所述账户缓存中查找的查询对象,向所述请求用户反馈查询结果。
[0008]根据本公开的一个实施例,在所述若所述查询对象为交易数据,在所述交易缓存中查找所述查询对象之后,还包括:若在所述交易缓存中查找的查询对象,向所述请求用户反馈查询结果。
[0009]根据本公开的一个实施例,还包括:使用最近最少使用LRU的方式更新所述账户缓存。
[0010]根据本公开的一个实施例,还包括:使用先入先出FIFO的方式更新所述交易缓存。
[0011]根据本公开的一个实施例,在所述若在所述交易缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象之后,还包括:若在所述区块链上未查找到所述查询对象,向所述请求用户反馈查询失败信息。
[0012]本公开实施例的第二方面,提供一种区块链数据的处理装置,其特征在于,包括:链上数据检测模块,用于在收到查询请求时,检测查询对象是否为链上数据,其中,所述查询请求包括请求用户和所述查询对象;账户数据检测模块,用于若所述查询对象为链上数据,检测所述查询对象是否为账户数据;账户缓存查询模块,用于若所述查询对象为账户数据,在账户缓存中查找所述查询对象;区块链数据查询模块,用于若在所述账户缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;反馈更新模块,用于若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述账户缓存中。
[0013]根据本公开的一个实施例,还包括:交易数据检测模块,用于若所述查询对象不是账户数据,在检测所述查询对象是否为交易数据;交易缓存查询模块,用于若所述查询对象为交易数据,在所述交易缓存中查找所述查询对象;其中,所述区块链数据查询模块还用于若在所述交易缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;所述反馈更新模块还用于若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述交易缓存中。
[0014]根据本公开的一个实施例,所述反馈更新模块还用于若在所述账户缓存中查找的查询对象,向所述请求用户反馈查询结果。
[0015]根据本公开的一个实施例,所述反馈更新模块还用于若在所述交易缓存中查找的查询对象,向所述请求用户反馈查询结果。
[0016]根据本公开的一个实施例,还包括:账户缓存更新模块,用于使用最近最少使用LRU的方式更新所述账户缓存。
[0017]根据本公开的一个实施例,还包括:交易缓存更新模块,用于使用先入先出FIFO的方式更新所述交易缓存。
[0018]根据本公开的一个实施例,所述反馈更新模块还用于若在所述区块链上未查找到所述查询对象,向所述请求用户反馈查询失败信息。
[0019]本公开实施例的第三方面,提供一种电子设备,包括:存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述第一方面所述的区块链数据的处理方法。
[0020]本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述第一方面所述的区块链数据的处理方法。
[0021]根据本公开实施例的区块链数据的处理方法和装置,在区块链节点收到查询请求时,检测查询对象是否为链上数据。在检测到查询对象为链上数据时,进一步检测查询对象是否为账户数据。在检测到查询对象为账户数据时,在用于存储账户数据的账户缓存中进行查找。若未在账户缓存中查询到该查询对象时,通过网络协议栈在区块链上进行查找。若在区块链节点上查找到该查询对象,则向请求用户查询结果并将查询对象存入账户缓存中。本公开实施例将账户数据存储账户缓存中,在接收到查询请求时,可以从账户缓存中进行查找,相比通过网络协议栈的查询方式耗时短且效率高。此外,在账户缓存中未查询到查询对象时,再通过网络协议栈在区块链上进行查找,若在区块链节点上查找到该查询对象,则表征该查询对象首次被查询或存入区块链长时间后才被查询,此时将查询对象存入账户缓存中,相对于在数据存入区块链的同时存入缓存的方式,缓存针对性强且可以降低账户缓存在单位时间下的缓存容量、提升缓存设备的使用寿命。
[0022]下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
[0023]构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
[0024]参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:图1为本公开一个实施例中区块链数据的处理方法的流程示意图;图2为本公开一个示例中区块链数据的处理方法的流程示意图;图3为本公开一个实施例中区块链数据的处理装置的结构框图;图4为本公开一个实施例中电子设备的结构框图。
具体实施方式
[0025]现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0026本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链数据的处理方法,其特征在于,包括:在收到查询请求时,检测查询对象是否为链上数据,其中,所述查询请求包括请求用户和所述查询对象;若所述查询对象为链上数据,检测所述查询对象是否为账户数据;若所述查询对象为账户数据,在账户缓存中查找所述查询对象;若在所述账户缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述账户缓存中。2.根据权利要求1所述的区块链数据的处理方法,其特征在于,在所述若所述查询对象为链上数据,检测所述查询对象是否为账户数据之后,还包括:若所述查询对象不是账户数据,在检测所述查询对象是否为交易数据;若所述查询对象为交易数据,在所述交易缓存中查找所述查询对象;若在所述交易缓存中未查找到所述查询对象,通过网络协议栈在区块链节点上查找所述查询对象;若在所述区块链节点上查找到所述查询对象,向所述请求用户反馈查询结果,并将所述查询对象存入所述交易缓存中。3.根据权利要求1所述的区块链数据的处理方法,其特征在于,在所述若所述查询对象为账户数据,在账户缓存中查找所述查询对象之后,还包括:若在所述账户缓存中查找的查询对象,向所述请求用户反馈查询结果。4.根据权利要求2所述的区块链数据的处理方法,其特征在于,在所述若所述查询对象为交易数据,在所述交易缓存中查找所述查询对象之后,还包括:若在所述交易缓存中查找的查询对象,向所述请求用户反馈查询结果。5.根据权利要求1或3所述的区块链数据的处理方法,其特征在于,还包括:使用最...

【专利技术属性】
技术研发人员:刘东坡张波李志平张志亮郭世杰
申请(专利权)人:中国信息通信研究院
类型:发明
国别省市:

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

1