在基于区块链的系统中执行映射迭代技术方案

技术编号:24366037 阅读:31 留言:0更新日期:2020-06-03 04:48
本文公开了用于由区块链网络的网络节点执行映射迭代的方法、系统、装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:所述网络节点接收用于获得包括在映射中的多个键的请求,所述映射存储包括多个键和与所述多个键相对应的多个值的多个键值对。所述网络节点维护表示存储有在所述映射中存储的所述多个键的森林的数据。所述森林包括多棵树,每棵树包括多达相应数量的存储节点,每个存储节点存储多个键的子集。网络节点遍历所述森林以检索存储在所述森林中的多个键,并返回所述多个键。

Perform mapping iterations in blockchain based systems

【技术实现步骤摘要】
【国外来华专利技术】在基于区块链的系统中执行映射迭代
本文涉及例如在基于区块链的系统中执行映射迭代。
技术介绍
在计算机科学的背景中,映射(map)是一种数据结构,可以用于存储键值(kv)对的集合并记录从键到对应值/数据对象的映射。映射被提供在各种计算机系统中,并且可以被设计为具有永久性特征,这些特征允许开发人员简单、透明地读取和写入磁盘数据,从而减轻了开发负担。可以执行映射迭代或遍历以检索存储在映射中的键值对的键和/或值。映射迭代通常涉及访问存储在映射中的每个键值(kv)对,以按顺序检索键和/或值。在一些情况下,区块链系统中的某些应用或用例可能需要检索映射中的键值对的所有键或所有值,但不一定两者都需要检索。期望开发一种映射迭代方案以便以一种有效的方式检索所有键或值。
技术实现思路
所描述的主题的实施例可以单独或组合地包括一个或多个特征。例如,在一个实施例中,区块链网络的网络节点接收用于获得包括在映射中的多个键的请求。所述映射存储包括多个键和与所述多个键相对应的多个值的多个键值对。所述网络节点维护表示存储有在所述映射中存储的所述多个键的森林的数据。所述森林包括多棵树,每棵树包括多达相应数量的存储节点。每个存储节点存储映射的多个键的子集。网络节点遍历所述森林以检索存储在所述森林中的多个键,并返回所述多个键。在一些实施例中,可以使用系统、方法或计算机程序或系统、方法和计算机程序的任意组合来实现这些一般和特定方面。上述和其他描述的实施例可以各自可选地包括一个或多个以下方面:在一些实施例中,所述网络节点通过迭代所述森林的每个存储节点以及检索存储在所述森林的每个存储节点中的一个或多个键来遍历所述森林。在一些实施例中,所述网络节点通过对所述森林执行深度优先搜索或对所述森林执行广度优先搜索来遍历所述森林。在一些实施例中,所述多棵树中的每棵树包括相应数量的级,并且每级包括一个或多个存储节点。在一些实施例中,所述相应数量的级对应于多个不同的哈希函数,基于使用所述多个不同哈希函数中的一个或多个哈希函数计算出的所述键的一个或多个哈希值,将每个键存储在所述森林中。在一些实施例中,所述网络节点响应于键值对被存储在所述映射中,接收用于将所述键值对的键添加到所述森林的请求。所述网络节点基于使用所述多个不同哈希函数中的一个或多个哈希函数计算出的所述键的一个或多个哈希值,确定所述森林中要插入所述键的存储节点,以及将所述键存储到所述存储节点。在一些实施例中,所述网络节点响应于所述键值对被从所述映射中删除,接收用于从所述森林中删除所述键值对的键的请求。所述网络节点基于使用所述多个不同哈希函数中的一个或多个哈希函数计算出的所述键的一个或多个哈希值,确定所述森林中存储有所述键的存储节点,以及从所述存储节点中删除所述键。在一些实施例中,所述网络节点响应于多个键值对被存储在所述映射中,接收用于将所述多个键值对各自的键添加到所述森林中的一个以上请求。所述网络节点基于使用多个不同哈希函数中的一个或多个哈希函数计算出的所述键的一个或多个哈希值,确定森林中要插入所述键的不同的存储节点;以及将各个所述键存储到所述不同的存储节点。在一些实施例中,所述多棵树中的每棵树包括多个叶存储节点和一个或多个非叶存储节点,所述一个或多个非叶存储节点中的每个非叶存储节点对应于可配置数量的子节点。在一些实施例中,所述森林中的每个存储节点存储可配置数量的键。应当理解的是,根据本文的方法可以包括本文描述的方面和特征的任何组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任何组合。在附图和以下描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求书,本文的其他特征和优点将显现。附图说明图1是示出可以用于执行本文实施例的环境的示例的图。图2是示出根据本文实施例的架构的示例的图。图3是示出根据本文实施例的用于执行映射迭代的基于区块链的系统的示例的图。图4是示出根据本文实施例的森林数据结构的示例的图。图5是示出根据本文实施例的执行可以被执行的映射迭代的处理的流程图。图6是示出根据本文实施例的可以被执行的键插入的处理的流程图。图7是示出根据本文实施例的可以被执行的键删除的处理的流程图。图8是示出根据本文实施例的装置的模块的示例的图。在各个附图中,相同的附图标记和名称表示相同的元件。具体实施方式本文描述了用于执行映射迭代以检索存储在映射中的键和/或值的技术。所述映射可以是存储多个键值对的数据结构,所述键值对包括多个键和与所述多个键对应的多个值。在本文中,执行映射迭代可以包括在返回映射中存储的键和/或值时实现映射迭代的目标、而不必遍历映射本身的操作。例如,用于执行映射迭代的技术可以包括维护存储所述多个键和/或值的副本的森林数据结构,以及遍历该森林数据结构而不遍历所述映射,以便以更有效的方式检索所述多个键和/或值。为简洁起见,本文描述了用于执行映射迭代以检索存储在映射中的键值对的多个键的技术。对于本领域技术人员将理解或显现的是,该技术可以被应用于检索存储在映射中的键值对的多个值、或检索存储在映射中的键值对的多个键和多个值二者,例如分别通过将键的角色替换为键的相应值以及将键的角色替换为相应的键值对。本文中描述的技术产生若干技术效果。在一些实施例中,区别于存储键值对的映射数据结构(也被简称为映射),引入森林数据结构(也被简称为森林)来存储在映射数据结构中存储的键值对的所有键。森林数据结构可以包括多棵树,这些树允许对森林数据结构的多个同时访问,使能在基于区块链的系统中的高并发处理。例如,森林数据结构的多树配置可以使能在森林的各棵树上并行执行对森林的多个同时或并发数据访问或其他操作。这可以避免仅单点数据访问的瓶颈,并减少可能以其他方式发生在单棵树或其他串行或顺序数据结构(例如队列(queue)或阵列(array))上的数据访问冲突的可能性。在一些实施例中,森林数据结构可以使用哈希函数来在其存储节点中分发键。森林数据结构可以将树结构的低复杂度与哈希函数的去中心化映射功能结合起来,以提供低延迟、高并发的映射迭代请求。在一些实施例中,所描述的映射迭代方案可以显著降低键插入和删除的I/O复杂度。在一些实施例中,所描述的映射迭代方案通过配置森林数据结构的参数(例如,树的数量、每棵树的宽度和/或深度)来提供可配置且可定制的多通道并发性、数据访问/检索速度以及其他性能指标。因此,所描述的映射迭代方案可以用于具有改进的整体系统性能的各种应用,或为这些应用专门定制。例如,所描述的映射迭代方案可以在基于区块链的系统中的智能合约中实现,该智能合约提供适用于基于区块链的系统提供的一个或多个服务的可配置且可定制的数据检索服务。为了提供本文实施方式的进一步背景,并且如上所述,分布式账本系统(DLS),又可以被称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、本文档来自技高网...

【技术保护点】
1.一种计算机实现的用于由区块链网络的网络节点执行映射迭代的方法,所述方法包括:/n所述网络节点接收用于获得包括在映射中的多个键的请求,所述映射存储包括所述多个键和与所述多个键相对应的多个值的多个键值对;/n维护表示存储有在所述映射中存储的所述多个键的森林的数据,所述森林包括多棵树,每棵树包括多达相应的多个存储节点,每个存储节点存储所述多个键的子集;/n遍历所述森林以检索存储在所述森林中的所述多个键;以及/n返回所述多个键。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于由区块链网络的网络节点执行映射迭代的方法,所述方法包括:
所述网络节点接收用于获得包括在映射中的多个键的请求,所述映射存储包括所述多个键和与所述多个键相对应的多个值的多个键值对;
维护表示存储有在所述映射中存储的所述多个键的森林的数据,所述森林包括多棵树,每棵树包括多达相应的多个存储节点,每个存储节点存储所述多个键的子集;
遍历所述森林以检索存储在所述森林中的所述多个键;以及
返回所述多个键。


2.根据权利要求1所述的方法,其中,遍历所述森林以检索存储在所述森林中的所述多个键包括:
迭代所述森林的每个存储节点;以及
检索存储在所述森林的每个存储节点中的一个或多个键。


3.根据前述任一权利要求所述的方法,其中,遍历所述森林包括以下中至少一个:
对所述森林上执行深度优先搜索;或
对所述森林执行广度优先搜索。


4.根据前述任一权利要求所述的方法,其中,
所述多棵树中的每棵树包括相应的多级,并且
每级包括一个或多个存储节点。


5.根据前述任一权利要求所述的方法,其中,
所述多级对应于多个不同的哈希函数,并且
基于使用所述多个不同的哈希函数中的一个或多个哈希函数计算出的每个键的一个或多个哈希值,将该键存储在所述森林中。


6.根据权利要求5所述的方法,其中,所述方法还包括:
响应于键值对被存储在所述映射中,接收用于将该键值对的键添加到所述森林的请求;
基于使用所述多个不同的哈希函数中的一个或多个哈希函数计算出的该键的一个或多个哈希值,确定所述森林中要插入该键的存储节点;以及
将该键存储到所述存储节点。


7.根据权利要求5所述的方法,其中,所述方法还包括:
响应于键值对被从所述映射中删除,接收用于从所述森林中删除该键值对的键的请求;
基于使用所述多个...

【专利技术属性】
技术研发人员:何家华俞本权
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1