CN117762971A - 面向区块链交易检索的高效查询方法、系统、设备及介质 - Google Patents
面向区块链交易检索的高效查询方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN117762971A CN117762971A CN202311541319.0A CN202311541319A CN117762971A CN 117762971 A CN117762971 A CN 117762971A CN 202311541319 A CN202311541319 A CN 202311541319A CN 117762971 A CN117762971 A CN 117762971A
- Authority
- CN
- China
- Prior art keywords
- tree
- transaction
- block
- retrieval
- blockchain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 241000544061 Cuculus canorus Species 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 11
- 238000003491 array Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 3
- 238000002474 experimental method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机信息检索技术领域,尤其是指面向区块链交易检索的高效查询方法、系统、设备及介质,所述查询方法包括:基于区块链上的交易信息,构建基于Cmerkle树的区块结构;通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,且每个账户地址关联与其对应的区块结构,以此构建查询索引结构;针对待查询交易,以账户地址作为索引节点,检索待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。本发明实现了用户地址和时间戳的多特征检索,提升了区块链交易的信息检索速度,有效地解决了现有技术中区块链交易信息查询会出现无法确定包含目标区块的位置,导致增加通信成本且查询效率低下的问题。
Description
技术领域
本发明涉及计算机信息检索技术领域,尤其是指面向区块链交易检索的高效查询方法、系统、设备及介质。
背景技术
区块链技术作为一种去中心化账本技术,起源于中本聪发明的比特币项目。这种新颖的去中心化账本技术已经在数字版权、供应链管理、边缘计算等多个领域得到了应用和探索,并取得了显著的成果。随着区块链应用的快速发展,区块链也暴露出一些问题。例如,由于区块链数据具有只追加的特性,在不断积累的情况下,会给区块链节点带来巨大的存储压力。每个区块链节点都需要存储区块链账本数据的完整副本,账本数据的数量给节点的存储带来了巨大的压力。同时,成千上万的区块链节点都需要存储账本数据,这会导致存储资源的巨大浪费。单点存储的压力太大会限制新的区块链节点加入区块链网络,导致区块链系统的中心化,直接影响区块链系统的可扩展性。
区块链交易检索问题是由于区块链节点在第三方存储网络中存储区块链账本时,不再拥有完整的区块链账本数据。当用户试图访问目标交易记录时,区块链节点无法找到包含目标交易的目标块。这就要求区块链节点定期从存储网络中获取整个区块链账本,以便访问交易,导致相当大的通信成本和较差的用户体验。因此,如何根据交易记录特征在大量区块中检索交易成为区块链交易检索挑战的最重要方面。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中区块链采用第三方存储系统存储块数据以减轻节点存储负担,会出现无法确定包含特定交易的块的位置,导致巨大的通信成本且查询效率低下的问题。
为解决上述技术问题,本发明提供了一种面向区块链交易检索的高效查询方法,该方法包括以下步骤:
S1:基于区块链上的交易信息,构建基于Cmerkle树的区块结构;
S2:通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,将相同类型的账户地址存入同一个B+树中,且每个账户地址关联与其对应的区块结构,并按照时间戳对区块结构进行排序,以此构建查询索引结构;
S3:针对待查询交易,以账户地址作为索引节点,在所述查询索引结构中检索到待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。
在本发明的一个实施例中,构建基于CMerkle树的区块结构的方法为:构建基于CMerkle树的区块结构的方法为:将所述交易信息分别计算哈希值作为叶子节点,所述叶子节点两两配对后再计算哈希值作为非叶子节点,所述非叶子节点两两配对后再计算哈希值,以此类推,直到仅剩下一个节点,作为根节点,以此来构建Merkle树,利用布谷鸟过滤器计算所述非叶子节点和所述根节点的指纹信息存放于其中,并将所述布谷鸟过滤器加入所述Merkle树中,最终构成了基于CMerkle树的区块结构。
在本发明的一个实施例中,构建查询索引结构的具体方法包括:
利用布隆过滤器计算出每个账户地址的位数组,将位数组相同的账户地址放在同一个B+树中进行管理,若账户地址经过布隆过滤器计算得到新的位数组,则创建一个新的B+树对该账户地址进行管理;
将账户地址作为索引节点存入B+树后,按照与账户地址相关的区块结构的创建时间对区块结构进行排序,将所有区块结构存放于B+树的最底层节点中,最终构成了查询索引结构。
在本发明的一个实施例中,构建查询索引结构的具体方法还包括:当已经存入索引中的账户地址更新时,将更新与账户地址相关的B+树,将新增区块的哈希值按时间戳更新到B+树中。
在本发明的一个实施例中,定位目标区块的的方法包括:
通过哈希函数计算账户地址对应的布隆过滤器位数组,并根据所述布隆过滤器位数组检索到相应的B+树;
判断检索到的B+树中所有相关区块结构的根节点的布谷鸟过滤器中是否存在待查询交易的指纹信息:若不存在指纹信息,则直接查找下一个区块结构;若存在指纹信息,则该区块结构为目标区块。
在本发明的一个实施例中,得到所述目标区块中的交易信息的方法为:利用广度优先算法顺序查找目标区块的所有节点,若一个节点中不存在指纹信息,则不再查找该节点的子节点,直接查找同一层级的另一个节点,依次类推,直至检索到待查询交易信息。
在本发明的一个实施例中,所述根节点的指纹信息包含所有叶子节点和非叶子节点的指纹信息。
基于同一发明构思,本发明还提供一种面向区块链交易检索的高效查询系统,包括以下模块:
区块结构构建模块,用于基于区块链上的交易信息,构建基于Cmerkle树的区块结构;
查询索引结构构建模块,用于通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,将相同类型的账户地址存入同一个B+树中,且每个账户地址关联与其对应的区块结构,并按照创建时间对区块结构进行排序,以此构建查询索引结构;
待查询交易信息检索模块,用于针对待查询交易,以账户地址作为索引节点,在所述查询索引结构中检索到待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述面向区块链交易检索的高效查询方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一项所述面向区块链交易检索的高效查询方法。
本发明的上述技术方案相比现有技术具有以下优点:
1、本发明结合布谷鸟过滤器与Merkle树提出一种基于CMerkle树的区块结构,用于快速确认交易是否在区块中并获取区块中的具体交易信息。
2、利用布隆过滤器占用空间少、计算速度快的特点,在大量账户地址检索项目中提供较好的可扩展性和检索效率,使用B+树构建出高效的区块定位结构,在保证区块链数据不可篡改的情况下能够有效地提高查询效率。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是本发明所述面向区块链交易检索的高效查询方法实现流程图;
图2是本发明实施例中的CMerkle树区块结构图;
图3是本发明实施例中的布隆过滤器计算过程图;
图4是本发明实施例中查询索引结构图;
图5是本发明实施例中的CMerkle树区块链结构图;
图6是本发明实施例中不同交易数量区块大小与查询时间;
图7是本发明实施例中不同查询方式交易查询时间;
图8是本发明实施例中不同检索结构查询相应时间;
图9(a)~(b)依次是本发明实施例中不同检索结构查询结果方差对比和平均值对比;
图10是本发明所述方法、本地全节点查询和区块链浏览器查询的响应时间。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一
参照图1所示,本发明一种面向区块链交易检索的高效查询方法,该方法包括以下步骤:
S1:基于区块链上的交易信息,利用布谷鸟过滤器和Merkle树构建基于Cmerkle树的区块结构;
S2:通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,将相同类型的账户地址存入同一个B+树中,且每个账户地址关联与其对应的区块结构,并按照时间戳对区块结构进行排序,以此构建查询索引结构;
S3:针对待查询交易,以账户地址作为索引节点,在所述查询索引结构中检索到待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。
在S1中,构建基于CMerkle树的区块结构的方法为:构建基于CMerkle树的区块结构的方法为:将所述交易信息分别计算哈希值作为叶子节点,所述叶子节点两两配对后再计算哈希值作为非叶子节点,所述非叶子节点两两配对后再计算哈希值,以此类推,直到仅剩下一个节点,作为根节点,以此来构建Merkle树,利用布谷鸟过滤器计算所述非叶子节点和所述根节点的指纹信息存放于其中,并将所述布谷鸟过滤器加入所述Merkle树中,最终构成了基于CMerkle树的区块结构,所述根节点的指纹信息包含所有叶子节点和非叶子节点的指纹信息。
如图2所示,利用哈希函数计算交易信息TX1、TX2得到哈希值H1、H2,即叶子节点,由哈希值H1、H2再次哈希计算得到哈希值H3,即非叶子节点,利用布谷鸟过滤器计算非叶子节点的指纹信息存放于其中,从下至上构建CMerkle树。
针对区块链进行交易查询时需要遍历区块链数据的问题提出了一种解决方案,即基于B+树的区块链索引结构。该索引结构利用B+树的特性,通过构建B+树索引,将用户的账户地址作为索引键,对区块链中的交易和相关数据进行分类、排序和管理。将区块链中的交易按照账户地址进行分类,使得在查询时能够快速定位到特定账户地址的区块,而无需遍历整个区块链。此外,按照区块的时间戳对区块进行排序,以便在B+树索引中快速定位到特定时间段内的交易记录。
然而,随着账户地址数量可达数百万规模,B+树在面对快速扩张的搜索空间时存在一些限制。由于B+树缺乏灵活性和可扩展性,可能导致检索效率下降,因此直接使用B+树来管理账户地址可能不是最优选择。
为解决上述问题,本发明使用布隆过滤器来优化B+树,利用布隆过滤器占用空间少、计算速度快的特点,在大量账户地址检索项目中提供较好的可扩展性和检索率。在S2中,利用布隆过滤器和B+树来构建查询索引结构的具体方法为:
S21:利用布隆过滤器计算出每个账户地址的位数组,将位数组相同的账户地址放在同一个B+树中进行管理,若账户地址经过布隆过滤器计算得到新的位数组,则创建一个新的B+树对该账户地址进行管理;如图3所示,布隆过滤器通过位数组和一系列哈希函数将元素映射到位数组中,并判断元素是否存在于集合中;
S22:将账户地址作为索引节点存入B+树后,按照与账户地址相关的区块结构的创建时间对区块结构进行排序,将所有区块结构存放于B+树的最底层节点中,最终构成了查询索引结构如图4所示。
其中,构建查询索引结构的具体方法还包括:当已经存入索引中的账户地址更新时,将更新与账户地址相关的B+树,将新增区块的哈希值按时间戳更新到B+树中。
在S3中,定位目标区块的的方法包括:
通过哈希函数计算账户地址对应的布隆过滤器位数组,并根据所述布隆过滤器位数组检索到相应的B+树;
判断检索到的B+树中所有相关区块结构的根节点的布谷鸟过滤器中是否存在待查询交易的指纹信息:若不存在指纹信息,则直接查找下一个区块结构;若存在指纹信息,则该区块结构为目标区块。
在定位目标区块后,得到所述目标区块中的交易信息的方法为:利用广度优先算法顺序查找目标区块的所有节点,若一个节点中不存在指纹信息,则不再查找该节点的子节点,直接查找同一层级的另一个节点,依次类推,直至检索到待查询交易信息。如图5所示,若布谷鸟过滤器CF5中不存在则不再查找CF5的所有子节点,直接查找CF6这棵子树,以此类推直至检索到查询的交易信息,极大的提升了检索效率。
下面通过不同对比实验对本发明所述方法检索速度和存储占用进行分析,以此来证明所述方法的有效性。
实验中所使用的部分比特币数据均来自XBlock网站,该网站是一个提供区块链数据用于研究和探索的网站,包括比特币、以太坊目前有影响力的区块链项目的实际数据。实验环境及配置如表1所示:
表1
实验1、CMerkle树查询性能分析
比特币区块的大小限制为1兆字节(1MB),每个区块内可以容纳多个交易。具体的平均每个交易占用的内存大小取决于交易的大小和数量。比特币交易的大小可以根据交易的输入和输出数量、脚本的复杂性以及其他附加数据而有所不同。平均每个比特币交易的大小大约在200至500字节之间。实验比较了在区块内不同交易数量的情况下,CMerkle树内布谷鸟过滤器节点的总占用空间大小,如图6所示。在布谷鸟过滤器最佳的空间效率的节点均摊占用内存大小情况下,过滤器对区块的空间压力很小。在区块内交易数量为1000至5000条的条件下,实验测试了CMerkle树和Merkle树查询某一随机交易的平均查询时间。在目标区块中,Merkle树按顺序遍历交易列表,或者使用交易索引或交易哈希等标识符来快速定位目标交易。CMerkle树通过每层节点中存储的布谷鸟过滤器直接判断交易是否存在于该节点的子树中,进行多次剪枝操作,无需遍历所有节点,可进行快速定位。
实验对比了使用CMerkle树结构打包交易的区块结构和将交易信息存储在外部数据库的LevelDB、MySQL、Redis查询方式的交易查找效率,在区块内交易数量为1000~5000条的情况下,实验结果如图7所示。随着交易数量的增加,关系型数据库MySQL的交易查找时间也逐渐增大。MongoDB是一个面向文档的NoSQL数据库,数据模型灵活但可能会占用更多的存储空间,查询速度优于Mysql数据库。CMerkle结构与LevelDB查询的时间复杂度都为O(logn),所以查找效率相近。但使用外部数据库存在的数据丢失、数据被篡改等问题。
综上所述,本发明通过对Merkle树使用布谷鸟过滤器进行改进,在不改变原有Merkle树功能的前提下,成功提高了区块内交易检索的查询效率,并在可接受的空间占用范围内实现了优化。布谷鸟过滤器的引入使得在查找特定交易时,可以通过对节点的布谷鸟过滤器进行动态判断,快速确定目标交易是否可能存在于该节点的子树中。这种优化方式避免了对整个子树的遍历,从而大幅减少了查询所需的计算时间和资源消耗。同时,布谷鸟过滤器的空间占用相对较小,能够在可接受的范围内满足区块链系统的要求。
实验2、基于B+树的多特征查询方法性能分析
实验2搭建了一个区块链检索系统,从XBlock官网提供的比特币数据中提取账户地址和时间,交易数据如表2所示,其中,Transaction Hash表示交易的哈希值,SenderAddress和ReceiverAddress分别为交易的发起者和接受者的账户地址,TimeStamp为创建交易时间的时间戳。
表2
用提取出来的区块链数据中的账户地址分别构建B+树和使用布隆过滤器改进的B+树,然后进行普通B+树、仅账户地址的布隆过滤器改进B+树和使用账户地址及区块时间戳多特征的布隆过滤器改进B+树检索实验,实验结果如图8所示。检索结构中包含目标,目标的个数是固定的。在1000块的规模下进行了多次随机检索实验快速定位目标区块。
从实验结果中可以明显看出,使用布隆过滤器改进的B+树的查询效率明显优于普通B+树。而使用账户地址和时间戳的多特征查询速度总体优于仅使用单一账户地址进行查询,时间特征的加入大大提高了检索效率。将这三组数据进行进一步的分析,如图9所示。
图9对实验中每个检索结构的稳定性分析,可以看出使用布隆过滤器对B+树进行优化不影响B+树的稳定性且稳定性有所提高。加入的时间戳检索特征,在查询过程中定位到账户地址的位置后,可以更快、更准确地定位到目标区块。
实验3、整体查询性能分析
实验3对本发明所述方法整体进行查询性能仿真实验,分别与本地全节点查询和区块链浏览器查询进行查询性能对比。实验时在5000个区块每块4000个交易的规模下进行多次随机交易查询。取区块号1000、1500、2000、2500、3000、3500、4000进行查询,比较查询时间。
如图10所示,根据区块链浏览器和本地全节点查询方法原理进行仿真实验,然后与本发明所述方法进行对比。本地全节点查询将区块链数据全部下载存储于本地后进行遍历查询,速度明显慢于区块链浏览器查询,而本发明所述方法的查询时间优于区块链浏览器查询。
实施例二
基于与实施例一同样的发明构思,本发明还提供一种面向区块链交易检索的高效查询系统,包括以下模块:
区块结构构建模块,用于基于区块链上的交易信息,构建基于Cmerkle树的区块结构;
查询索引结构构建模块,用于通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,将相同类型的账户地址存入同一个B+树中,且每个账户地址关联与其对应的区块结构,并按照创建时间对区块结构进行排序,以此构建查询索引结构;
待查询交易信息检索模块,用于针对待查询交易,以账户地址作为索引节点,在所述查询索引结构中检索到待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。
实施例三
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一中所述面向区块链交易检索的高效查询方法。
实施例四
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现实施例一中所述面向区块链交易检索的高效查询方法。
综上,针对区块链查询系统检索效率较低以及引入外部数据库会面临数据篡改的风险问题,本发明首先提出了一种基于布谷鸟过滤器和Merkle树的区块结构,在没有影响区块原Merkle树功能的前提下,在空间占用可接受的范围内提高了检索效率,其次提出了一种基于B+树的多特征查询方法,使用布隆过滤器对B+树进行优化,并利用优化后的B+树对区块链中用户的账户地址进行管理,实现了用户地址和时间戳的多特征检索,提升了区块链交易的信息检索速度。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种面向区块链交易检索的高效查询方法,其特征在于,包括以下步骤:
S1:基于区块链上的交易信息,构建基于Cmerkle树的区块结构;
S2:通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,将相同类型的账户地址存入同一个B+树中,且每个账户地址关联与其对应的区块结构,并按照时间戳对区块结构进行排序,以此构建查询索引结构;
S3:针对待查询交易,以账户地址作为索引节点,在所述查询索引结构中检索到待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。
2.根据权利要求1所述的面向区块链交易检索的高效查询方法,其特征在于:构建基于CMerkle树的区块结构的方法为:构建基于CMerkle树的区块结构的方法为:将所述交易信息分别计算哈希值作为叶子节点,所述叶子节点两两配对后再计算哈希值作为非叶子节点,所述非叶子节点两两配对后再计算哈希值,以此类推,直到仅剩下一个节点,作为根节点,以此来构建Merkle树,利用布谷鸟过滤器计算所述非叶子节点和所述根节点的指纹信息存放于其中,并将所述布谷鸟过滤器加入所述Merkle树中,最终构成了基于CMerkle树的区块结构。
3.根据权利要求1所述的面向区块链交易检索的高效查询方法,其特征在于:构建查询索引结构的具体方法包括:
利用布隆过滤器计算出每个账户地址的位数组,将位数组相同的账户地址放在同一个B+树中进行管理,若账户地址经过布隆过滤器计算得到新的位数组,则创建一个新的B+树对该账户地址进行管理;
将账户地址作为索引节点存入B+树后,按照与账户地址相关的区块结构的创建时间对区块结构进行排序,将所有区块结构存放于B+树的最底层节点中,最终构成了查询索引结构。
4.根据权利要求1或3所述的面向区块链交易检索的高效查询方法,其特征在于:构建查询索引结构的具体方法还包括:当已经存入索引中的账户地址更新时,将更新与账户地址相关的B+树,将新增区块的哈希值按时间戳更新到B+树中。
5.根据权利要求1所述的面向区块链交易检索的高效查询方法,其特征在于:定位目标区块的的方法包括:
通过哈希函数计算账户地址对应的布隆过滤器位数组,并根据所述布隆过滤器位数组检索到相应的B+树;
判断检索到的B+树中所有相关区块结构的根节点的布谷鸟过滤器中是否存在待查询交易的指纹信息:若不存在指纹信息,则直接查找下一个区块结构;若存在指纹信息,则该区块结构为目标区块。
6.根据权利要求5所述的面向区块链交易检索的高效查询方法,其特征在于:得到所述目标区块中的交易信息的方法为:利用广度优先算法顺序查找目标区块的所有节点,若一个节点中不存在指纹信息,则不再查找该节点的子节点,直接查找同一层级的另一个节点,依次类推,直至检索到待查询交易信息。
7.根据权利要求1所述的面向区块链交易检索的高效查询方法,其特征在于:所述根节点的指纹信息包含所有叶子节点和非叶子节点的指纹信息。
8.一种面向区块链交易检索的高效查询系统,其特征在于,包括:
区块结构构建模块,用于基于区块链上的交易信息,构建基于Cmerkle树的区块结构;
查询索引结构构建模块,用于通过布隆过滤器按照交易信息中的账户地址进行分类,为每个分类构建一个B+树,将相同类型的账户地址存入同一个B+树中,且每个账户地址关联与其对应的区块结构,并按照创建时间对区块结构进行排序,以此构建查询索引结构;
待查询交易信息检索模块,用于针对待查询交易,以账户地址作为索引节点,在所述查询索引结构中检索到待查询交易对应的B+树,并定位目标区块,得到所述目标区块中的交易信息。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~7任一项面向区块链交易检索的高效查询方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~7任一项面向区块链交易检索的高效查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541319.0A CN117762971A (zh) | 2023-11-17 | 2023-11-17 | 面向区块链交易检索的高效查询方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541319.0A CN117762971A (zh) | 2023-11-17 | 2023-11-17 | 面向区块链交易检索的高效查询方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762971A true CN117762971A (zh) | 2024-03-26 |
Family
ID=90320962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311541319.0A Pending CN117762971A (zh) | 2023-11-17 | 2023-11-17 | 面向区块链交易检索的高效查询方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762971A (zh) |
-
2023
- 2023-11-17 CN CN202311541319.0A patent/CN117762971A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762876B2 (en) | Data normalization using data edge platform | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
CN111046034B (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
US9870382B2 (en) | Data encoding and corresponding data structure | |
CN111801665B (zh) | 用于大数据应用的分层局部敏感哈希(lsh)分区索引 | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
WO2009031915A1 (fr) | Système et procédés de stockage, de recherche et d'extraction des informations sur la base d'ensembles de données faiblement organisés et décentralisés | |
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
US20220222233A1 (en) | Clustering of structured and semi-structured data | |
US10599614B1 (en) | Intersection-based dynamic blocking | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
Khan et al. | Set-based unified approach for attributed graph summarization | |
Zhang et al. | Sparx: Distributed outlier detection at scale | |
WO2017065795A1 (en) | Incremental update of a neighbor graph via an orthogonal transform based indexing | |
Firth et al. | TAPER: query-aware, partition-enhancement for large, heterogenous graphs | |
Kvet et al. | Relational pre-indexing layer supervised by the DB_index_consolidator Background Process | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 | |
CN102725754A (zh) | 一种索引数据处理方法及设备 | |
CN117762971A (zh) | 面向区块链交易检索的高效查询方法、系统、设备及介质 | |
CN114398373A (zh) | 应用于数据库存储的文件数据存储读取方法及装置 | |
CN115225308A (zh) | 大规模群体攻击流量的攻击团伙识别方法及相关设备 | |
CN114416741A (zh) | 基于多级索引的kv数据写入读取方法、装置及存储介质 | |
CN113254720A (zh) | 一种基于新型存储器的存储内哈希排序构建方法 | |
CN113448957A (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 |