[发明专利]基于区块链的键值存储方法、装置、终端设备及介质有效
申请号: | 202011465232.6 | 申请日: | 2020-12-14 |
公开(公告)号: | CN112765155B | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 李伟;蔡亮;匡立中;曾磊;边书豪 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06F16/28;G06F16/31;G06F16/901 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 张瑞志 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 区块 键值 存储 方法 装置 终端设备 介质 | ||
本申请适用于区块链技术领域,尤其涉及一种基于区块链的键值存储方法、装置、终端设备及介质。该方法通过对智能合约进行搜索,将搜索确定的数据层的每个数据节点的key值与待插入key值比较,得到满足预设条件的目标数据节点,将待插入数据插入空数据节点,并将该空数据节点的指针指向目标数据节点的指针指向的节点,将目标数据节点的指针指向该空数据节点,使得目标数据节点、空数据节点和目标数据节点的指针指向的节点形成有序链表,以有序的形式存储可以便于后续的查询使用,查询时可以在有序链表中找到key值与待查询key值较为接近的数据节点,再根据该数据节点的前后顺序找到确定查询结果,无需遍历整个智能合约,查询效率较高。
技术领域
本申请属于区块链技术领域,尤其涉及一种基于区块链的键值存储方法、装置、终端设备及介质。
背景技术
在区块链技术的应用中,为了保证数据的不可篡改和可溯源性,会将所有数据和计算放在智能合约中。现有的智能合约存储是基于键值(Key-Value,K-V)的哈希映射结构表的存储方式,而由于该K-V的哈希映射结构表是一种无序结构,使得查询一组K-V时需要遍历全表,查询的效率较低。
发明内容
本申请实施例提供了一种基于区块链的键值存储方法、装置、终端设备及介质,可以解决现有的键值的无序存储方式导致查询的效率较低的问题。
第一方面,本申请实施例提供了一种基于区块链的键值存储方法,所述键值存储方法包括:
获取待插入key值和所述待插入key值对应的数据值;
对智能合约进行搜索,确定所述智能合约的数据层;
获取所述数据层的所有数据节点的key值;
将所有数据节点的key值分别与所述待插入key值比较,确定目标数据节点,其中,所述目标数据节点为与所述待插入key值的比较结果满足第一预设条件的key值对应的节点;
确定所述数据层中的空数据节点,所述空数据节点是指未被插入键值数据的节点;
将所述待插入key值和所述数据值插入所述空数据节点,将所述空数据节点的指针指向所述目标数据节点的指针指向的节点,将所述目标数据节点的指针指向所述空数据节点。
第二方面,本申请实施例提供了一种基于区块链的键值存储装置,所述键值存储装置包括:
插入数据获取模块,用于获取待插入key值和所述待插入key值对应的数据值;
数据层确定模块,用于对智能合约进行搜索,确定所述智能合约的数据层;
key值获取模块,用于获取所述数据层的所有数据节点的key值;
比较模块,用于将所有数据节点的key值分别与所述待插入key值比较,确定目标数据节点,其中,所述目标数据节点为与所述待插入key值的比较结果满足第一预设条件的key值对应的节点;
空节点确定模块,用于确定所述数据层中的空数据节点,所述空数据节点是指未被插入键值数据的节点;
插入模块,用于将所述待插入key值和所述数据值插入所述空数据节点,将所述空数据节点的指针指向所述目标数据节点的指针指向的节点,将所述目标数据节点的指针指向所述空数据节点。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的键值存储方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的键值存储方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011465232.6/2.html,转载请声明来源钻瓜专利网。