一种区块链时空数据查询方法、系统及电子设备技术方案

技术编号:19057633 阅读:40 留言:0更新日期:2018-09-29 12:19
本申请涉及一种区块链时空数据查询方法、系统及电子设备。所述方法包括:步骤a:将区块链系统中的时空数据插入基于Merkle树与kd树相结合的树形索引结构中,并存储在区块链模块中;对于所述区块链模块中的每个区块,在块头中引入时间元信息;步骤b:给定时空数据对应的时间范围和空间范围,利用所述区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块;步骤c:读取所述符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合所述空间范围的键数据,再根据所述键数据得到对应的时空数据。本申请非常高效,能够做到“在线式”的迅速返回符合给定要求的结果。

【技术实现步骤摘要】
一种区块链时空数据查询方法、系统及电子设备
本申请属于互联网数据库
,特别涉及一种区块链时空数据查询方法、系统及电子设备。
技术介绍
区块链技术,也被称作分布式账本技术,是一种互联网数据库技术,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新的去中心化基础架构与分布式计算范式。由于区块链具有去中心化、时序数据、集体维护、安全可信等优点,近年,它已经被广泛地应用在金融、医疗、教育等行业中,工业界与学术界也在探索区块链更多的应用场景。随着区块链技术的兴起激发了包括时空数据管理在内的各种领域的大量新应用的产生,例如,考虑在运输过程中跟踪物品的供应链场景。运输过程中要求不仅需要不断更新时空信息,还应支持时空数据的快速查询,如列出在t时间位于l处的所有数据,或者从t1到t2时间段内位于l处的所有数据。但是,当前的区块链技术并不能高效响应时空数据的查询,而针对时空数据的高效查询研究在数据库中一直备受瞩目,若能在区块链上进行高效时空数据查询,将具有广泛的应用前景。区块链利用Merkle树对区块中的事务数据进行哈希,其中每个区块包含块头和块身,块头的作用是链接到前面的块为区块链提供完整性,块身则包含验证过的块创建过程中的数据记录。当需要查询区块链中的数据时,通过块身可以查询到当前区块的事务数据,通过块头可以找到区块链中当前区块的前一个区块。目前,对区块链中某种数据模式下数据的查询,需要从区块链上最新加入的区块开始,先查询该块块身中的事务数据,再通过块头回溯到前一个区块中查询,以此类推,遍历整条区块链的事务数据。综上所述,现有区块链技术存在的缺点在于:1)、不支持对时空数据进行高效的管理,包括对时空数据有效的存储和对时空数据的高效查询;2)、当前区块链对数据的查询,需要从区块链上最新加入的区块开始,通过其块头追溯到前一个区块这样一个区块一个区块的进行查询,最坏情况下,查询完需要便利整条区块链的数据,显然,这样的查询十分低效与耗时,并不适合快速查询;3)、当前区块链数据查询响应方法并不适合频繁变动的时空数据的查询;4)、对于空间坐标数据也没有一些索引以加速整个过程;5)、在区块链系统中针对时空数据这些多维数据建立索引往往需要超过一个复杂索引,这样不仅十分繁琐而且开销会较大。
技术实现思路
本申请提供了一种区块链时空数据查询方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。为了解决上述问题,本申请提供了如下技术方案:一种区块链时空数据查询方法,包括以下步骤:步骤a:将区块链系统中的时空数据插入基于Merkle树与kd树相结合的树形索引结构中,并存储在区块链模块中;对于所述区块链模块中的每个区块,在块头中引入时间元信息;步骤b:给定时空数据对应的时间范围和空间范围,利用所述区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块;步骤c:读取所述符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合所述空间范围的键数据,再根据所述键数据得到对应的时空数据;其中,所述拓扑结构G的节点集为V,所述拓扑结构G的边集为E。本申请实施例采取的技术方案还包括:在所述步骤b中,所述利用区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合时间范围的区块具体为:对所述有向无环图的区块按所述时间范围搜索以宽度优先算法实现,所述拓扑结构G对于每个v∈V具有多个源节点s,由所述源节点s开始查询,对之后的查询均考虑追溯当前点的最近前面节点。本申请实施例采取的技术方案还包括:在所述步骤b中,所述利用区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块具体包括:步骤b1:给定时间范围β,利用GetRobustAccepted函数返回的当前最新的验证区块,开始运行宽度优先算法;步骤b2:在所述宽度优先算法的运行过程中,如果区块块头中的时间元信息在所述时间范围β内,则将该区块放入结果集中;步骤b3:当搜索到区块在所述时间范围β外或者所有下一个区块块头中的时间元信息的结束时间均小于所述时间范围β的开始时间,则终止运行宽度优先算法。本申请实施例采取的技术方案还包括:在所述步骤c中,所述读取符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合空间范围的键数据具体包括:从所述符合时间范围的区块块头中得到基于所述Merkle树与kd树相结合的树型索引结构的根节点,从所述根节点开始往下沿着一条简单路径一直将所述空间范围与树节点进行比较;如果所述空间范围比树节点大,则所述路径进入树的右子树,如果所述空间范围比树节点小,则所述路径进入树的左子树,直到访问到一个符合所述空间范围的超矩形,并将所述超矩形中的哈希值数据返回。本申请实施例采取的技术方案还包括:在所述步骤c中,所述根据键数据得到对应的时空数据具体为:在所述符合时间范围的区块块头中找到基于MerklePatricia-trie技术的键值对索引的根节点,并根据基于所述MerklePatricia-trie技术的键值对索引,将所述哈希值数据转换为原始时空数据,并返回原始时空数据。本申请实施例采取的另一技术方案为:一种区块链时空数据查询系统,包括:区块链模块:用于存储区块数据;数据插入模块:与所述区块链模块连接,用于将区块链系统中的时空数据插入基于Merkle树与kd树相结合的树形索引结构中,并存储在所述区块链模块中;对于所述区块链模块中的每个区块,在块头中引入时间元信息;时间范围搜索模块:与所述区块链模块连接,用于给定时空数据对应的时间范围和空间范围,利用所述区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块;空间范围搜索模块:与所述时间范围搜索模块连接,用于读取所述符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合所述空间范围内的键数据,再根据所述键数据得到对应的时空数据;其中,所述拓扑结构G的节点集为V,所述拓扑结构G的边集为E。本申请实施例采取的技术方案还包括:所述时间范围搜索模块利用区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合时间范围的区块具体为:对所述有向无环图的区块按所述时间范围搜索以宽度优先算法实现,所述拓扑结构G对于每个v∈V具有多个源节点s,由所述源节点s开始查询,对之后的查询均考虑追溯当前节点的最近前面节点。本申请实施例采取的技术方案还包括:所述时间范围搜索模块利用区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G(V,E)中搜索出符合时间范围的区块具体包括:给定时间范围β,利用GetRobustAccepted函数返回的当前最新的验证区块,开始运行宽度优先算法;在所述宽度优先算法的运行过程中,如果区块块头中的时间元信息在所述时间范围β内,则将该区块放入结果集中;当搜索到区块在所述时间范围β外或者所有下一个区块块头中的时间元信息的结束时间均小于所述时间范本文档来自技高网
...

【技术保护点】
1.一种区块链时空数据查询方法,其特征在于,包括以下步骤:步骤a:将区块链系统中的时空数据插入基于Merkle树与kd树相结合的树形索引结构中,并存储在区块链模块中;对于所述区块链模块中的每个区块,在块头中引入时间元信息;步骤b:给定时空数据对应的时间范围和空间范围,利用所述区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块;步骤c:读取所述符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合所述空间范围的键数据,再根据所述键数据得到对应的时空数据;其中,所述拓扑结构G的节点集为V,所述拓扑结构G的边集为E。

【技术特征摘要】
1.一种区块链时空数据查询方法,其特征在于,包括以下步骤:步骤a:将区块链系统中的时空数据插入基于Merkle树与kd树相结合的树形索引结构中,并存储在区块链模块中;对于所述区块链模块中的每个区块,在块头中引入时间元信息;步骤b:给定时空数据对应的时间范围和空间范围,利用所述区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块;步骤c:读取所述符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合所述空间范围的键数据,再根据所述键数据得到对应的时空数据;其中,所述拓扑结构G的节点集为V,所述拓扑结构G的边集为E。2.根据权利要求1所述的区块链时空数据查询方法,其特征在于,在所述步骤b中,所述利用区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合时间范围的区块具体为:对所述有向无环图的区块按所述时间范围搜索以宽度优先算法实现,所述拓扑结构G对于每个v∈V具有多个源节点s,由所述源节点s开始查询,对之后的查询均考虑追溯当前节点的最近前面节点。3.根据权利要求2所述的区块链时空数据查询方法,其特征在于,在所述步骤b中,所述利用区块链模块中每个区块块头中的时间元信息在有向无环图的拓扑结构G中搜索出符合所述时间范围的区块具体包括:步骤b1:给定时间范围β,利用GetRobustAccepted函数返回的当前最新的验证区块,开始运行宽度优先算法;步骤b2:在所述宽度优先算法的运行过程中,如果区块块头中的时间元信息在所述时间范围β内,则将该区块放入结果集中;步骤b3:当搜索到区块在所述时间范围β外或者所有下一个区块块头中的时间元信息的结束时间均小于所述时间范围β的开始时间,则终止运行宽度优先算法。4.根据权利要求3所述的区块链时空数据查询方法,其特征在于,在所述步骤c中,所述读取符合时间范围的区块块头中的基于所述Merkle树与kd树相结合的树型索引结构的根节点信息,搜索出符合空间范围的键数据具体包括:从所述符合时间范围的区块块头中得到基于所述Merkle树与kd树相结合的树型索引结构的根节点,从所述根节点开始往下沿着一条简单路径一直将所述空间范围与树节点进行比较;如果所述空间范围比树节点大,则所述路径进入树的右子树,如果所述空间范围比树节点小,则所述路径进入树的左子树,直到访问到一个符合所述空间范围的超矩形,并将所述超矩形中的哈希值数据返回。5.根据权利要求4所述的区块链时空数据查询方法,其特征在于,在所述步骤c中,所述根据键数据得到对应的时空数据具体为:在所述符合时间范围的区块块头中找到基于MerklePatricia-trie技术的键值对索引的根节点,并根据基于所述MerklePatricia-trie技术的键值对索引,将所述哈希值数据转换为原始时空数据,并返回原始时空数据。6.一种区块链时空数据查询系统,其特征在于,包括:区块链模块:用于存储区块数据;数据插入模块:与所述区块链模块连接,用于将区块链系统中的时空数据插入基于Merkle树与kd树相结合的树形索引结构中,并存储在所述区块链模块中;对于所述区块链模块中的每个区块,在块头中引入时间元信息;时间范围搜索模块:与所述区块链模块连接,用于给定时空数据对应的时间范围和空间范围,利用所述区块链模块中每个区块块头中的时间元信息在有向无环图的拓...

【专利技术属性】
技术研发人员:曲强
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:广东,44

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

1