一种基于区块链的时空数据查询处理方法

专利检索2025-03-29  11


本发明涉及区块链,尤其是涉及一种基于区块链的时空数据查询处理方法。


背景技术:

1、在互联网与生活密不可分的背景下,各种应用产生的数据的指数增长,其中时空数据记录了物质活动的空间和时间坐标因此具有重大的使用价值与意义,在智能城市建设、地理信息研究、物联网领域都发挥着巨作用。而目前时空数据基本上都由相关的机构、部门、公司单独持有,没能高效地实现数据共享的数据经济活动,所以,研究出能安全的存储、查询、共享时空数据的技术具有广泛的社会以及经济价值。

2、区块链技术拥有不可篡改、能追溯、透明公开的特性,恰好能与时空数据的共享管理结合起来,从而对时空数据的高效安全的存储与查询。如公开号为cn116663053a的中国专利文献公开了一种支持丰富检索的区块链高效可验证查询方法。然而,目前的区块链的数据结构还不能很好的支持时空数据的管理,主要表现在不能达到时空查询场景的要求,而且对此类数据的查询效率不够。

3、传统的区块链技术在数据查询方面查询效率很低,通常会先从最新的区块开始查询,然后根据区块头中的哈希指针依次回溯之前的区块继续查询,直到查询到创世区块为止。

4、文献“qu q,nurgaliev i,muzammal m,et al.on spatiotemporal blockchainquery processing.future generation computer systems,2019,98:208–218”通过引入加密签名的默克尔区块空间索引来支持快速的时空数据查询,但是这种方法会先根据时间筛选要查找的区块,如果要查找的时间间隔不被包含在该区块的时间间隔内,则这个区块不会被查询,而可能会存在需要查找的时间区间不被包含在该区块时间区间内,但会与区块时间区间相交的情况,这样就会导致有部分满足查询条件的数据未被查询到。


技术实现思路

1、本发明提供了一种基于区块链的时空数据查询处理方法,解决现有传统区块链技术对于时空数据管理的支持度有限的技术问题,能够快速处理产生的时空数据,并支持时空数据的快速查询。

2、一种基于区块链的时空数据查询处理方法,包括以下步骤:

3、(1)对区块链中的区块头数据结构进行改造,给区块头加入两个额外的属性,第一个是区块头所包含的所有交易的时间戳范围,第二个是由区块中所有交易的时空数据生成的完美哈希r树的树根节点;

4、(2)对区块内的时空数据建立基于完美哈希的r树数据结构,实现以[经度,维度,时间戳]三个维度进行查询;

5、(3)用户发送查询请求,根据要查询的时间和空间信息,处理成对应的[经度,纬度,时间戳]三个维度的格式,在区块链中利用区块头中的时间戳范围信息筛出有交集的区块,再对区块进行查询,得到查询结果。

6、本发明针对传统区块链对时空数据支持度不足的问题,首先研究了在对时空数据查询的场景下,区块链中的存储时空数据的索引结构,目的在于能实现存储在区块链中的时空数据的高效查询,以及数据的透明性,安全性。本发明将多维查询的索引结构r-tree与完美哈希函数结合并引入区块链,赋能区块链的时空数据查询效率,实现高效精准的区块链上的点查询和范围查询。

7、进一步地,步骤(1)中,所述的时间戳范围是由交易的最早交易时间t1以及最晚交易时间t2组成的范围(t1,t2)。

8、步骤(2)中,对区块内的时空数据建立基于完美哈希的r树数据结构,具体过程为:

9、向一个空的r树依次插入时空数据,先根据要插入的时空数据来找到数据所属的叶节点,若该叶节点包含的数据数量已经达到了阈值r,就需要对该叶节点进行四分裂操作,将其分裂成四个新的叶节点;然后,数据会被插入到叶节点中;在插入完成后,将该数据使用完美哈希函数进行哈希,将哈希值存入到叶节点及其所有祖先节点的完美哈希表中,直到根节点为止;

10、将一个区块内的所有时空数据都插入完成后,就将该区块内的时空数据的时间戳范围信息存到该区块的区块头内,所生成的完美哈希r树的树根节点也保存在区块头中。

11、步骤(3)中,查询请求分为两种情况,第一种情况是查找单个时空数据,即查询经度为lo,纬度为la,时间为t的时空数据;第二种情况是查找某个范围内的时空数据,即查询经度、纬度、时间在[lo1,la1,t1]到[lo2,la2,t2]之间的时空数据。

12、查询请求为第一种情况时,先使用广度优先遍历算法从最新生成地区块开始查询,即判断每个区块地区块头内存储的时间戳范围是否包含查询请求中所要查询的时间维度t,若包含,则将当前遍历的该区块放入备选的区块列表中,若不包含,则继续遍历;当遍历到的区块的区块头内时间戳范围的最大值小于所要查询的时间维度t或者遍历到了创世区块,则停止遍历;

13、再依次遍历备选地区块列表中的区块的完美哈希r树结构,首先将查询请求的查询经度lo,纬度la,时间t拼接为一个字符串s,然后使用区块对应的完美哈希函数对s求哈希值,用得到的哈希值hash在区块中完美哈希r树的根节点的哈希表中查询,若存在,则将哈希表中对应的数据放入结果集中。

14、在查找单个时空数据时,在区块内查询的时间复杂度为o(1)。

15、查询请求为第二种情况时,先使用广度优先遍历算法从最新生成地区块开始查询,即判断每个区块地区块头内存储的时间戳范围是否与查询请求中所要查询的时间范围(t1,t2)相交,若相交,则将当前遍历的该区块放入备选的区块列表中,若不相交,则继续遍历;当遍历到的区块的区块头内时间戳范围的最大值小于所要查询的时间范围最小值t1或者遍历到了创世区块,则停止遍历;

16、再依次遍历备选地区块列表中的区块的完美哈希r树结构,首先将从根节点开始,递归地遍历树;对于每个内部节点,检查查询范围[lo1,la1,t1]到[lo2,la2,t2],是否与该节点的mbr相交;如果相交,递归地检查该节点的所有子节点;对于每个叶节点,检查叶节点中的对象是否与查询范围相交;收集所有相交的对象,而这些对象就构成了查询结果。

17、在查找某个范围内的时空数据时,在区块内查询的时间复杂度为o(long(n))。

18、与现有技术相比,本发明具有以下有益效果:

19、本发明可以加快对区块链中时空数据的查询处理的速度,相较于传统的区块链的遍历查询需要o(n)的时间复杂度,本发明方法在范围查询只需o(log(n))时间复杂度以及在点查询可以达到o(1)的时间复杂度,均可符合用户的查询要求。



技术特征:

1.一种基于区块链的时空数据查询处理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于区块链的时空数据查询处理方法,其特征在于,步骤(1)中,所述的时间戳范围是由交易的最早交易时间t1以及最晚交易时间t2组成的范围(t1,t2)。

3.根据权利要求1所述的基于区块链的时空数据查询处理方法,其特征在于,步骤(2)中,对区块内的时空数据建立基于完美哈希的r树数据结构,具体过程为:

4.根据权利要求1所述的基于区块链的时空数据查询处理方法,其特征在于,步骤(3)中,查询请求分为两种情况,第一种情况是查找单个时空数据,即查询经度为lo,纬度为la,时间为t的时空数据;第二种情况是查找某个范围内的时空数据,即查询经度、纬度、时间在[lo1,la1,t1]到[lo2,la2,t2]之间的时空数据。

5.根据权利要求4所述的基于区块链的时空数据查询处理方法,其特征在于,查询请求为第一种情况时,先使用广度优先遍历算法从最新生成地区块开始查询,即判断每个区块地区块头内存储的时间戳范围是否包含查询请求中所要查询的时间维度t,若包含,则将当前遍历的该区块放入备选的区块列表中,若不包含,则继续遍历;当遍历到的区块的区块头内时间戳范围的最大值小于所要查询的时间维度t或者遍历到了创世区块,则停止遍历;

6.根据权利要求5所述的基于区块链的时空数据查询处理方法,其特征在于,在查找单个时空数据时,在区块内查询的时间复杂度为o(1)。

7.根据权利要求4所述的基于区块链的时空数据查询处理方法,其特征在于,查询请求为第二种情况时,先使用广度优先遍历算法从最新生成地区块开始查询,即判断每个区块地区块头内存储的时间戳范围是否与查询请求中所要查询的时间范围(t1,t2)相交,若相交,则将当前遍历的该区块放入备选的区块列表中,若不相交,则继续遍历;当遍历到的区块的区块头内时间戳范围的最大值小于所要查询的时间范围最小值t1或者遍历到了创世区块,则停止遍历;

8.根据权利要求7所述的基于区块链的时空数据查询处理方法,其特征在于,在查找某个范围内的时空数据时,在区块内查询的时间复杂度为o(long(n))。


技术总结
本发明公开了一种基于区块链的时空数据查询处理方法,包括:(1)对区块链中的区块头数据结构进行改造,给区块头加入两个额外的属性,第一个是区块头所包含的所有交易的时间戳范围,第二个是由区块中所有交易的时空数据生成的完美哈希R树的树根节点;(2)对区块内的时空数据建立基于完美哈希的R树数据结构,实现以[经度,维度,时间戳]三个维度进行查询;(3)用户发送查询请求,根据要查询的时间和空间信息,处理成对应的[经度,纬度,时间戳]三个维度的格式,在区块链中利用区块头中的时间戳范围信息筛出有交集的区块,再对区块进行查询,得到查询结果。利用本发明,能够快速处理产生的时空数据,并支持时空数据的快速查询。

技术研发人员:袁鑫,尹可挺
受保护的技术使用者:浙江大学
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1151631.html

最新回复(0)