[发明专利]基于区块链的键值存储方法、装置、终端设备及介质有效
申请号: | 202011465232.6 | 申请日: | 2020-12-14 |
公开(公告)号: | CN112765155B | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 李伟;蔡亮;匡立中;曾磊;边书豪 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06F16/28;G06F16/31;G06F16/901 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 张瑞志 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 区块 键值 存储 方法 装置 终端设备 介质 | ||
1.一种基于区块链的键值存储方法,其特征在于,所述键值存储方法包括:
获取待插入key值和所述待插入key值对应的数据值;
对智能合约进行搜索,确定所述智能合约的数据层;
获取所述数据层的所有数据节点的key值;
将所有数据节点的key值分别与所述待插入key值比较,确定目标数据节点,其中,所述目标数据节点为与所述待插入key值的比较结果满足第一预设条件的key值对应的节点;所述第一预设条件是根据所述所有数据节点的排序方式设置的,所述目标数据节点的key值是最接近所述待插入key值的key值;
确定所述数据层中的空数据节点,所述空数据节点是指未被插入键值数据的节点;
将所述待插入key值和所述数据值插入所述空数据节点,将所述空数据节点的指针指向所述目标数据节点的指针指向的节点,将所述目标数据节点的指针指向所述空数据节点,所述目标数据节点的指针指向的节点是所述目标数据节点的后继节点。
2.如权利要求1所述的键值存储方法,其特征在于,在所述对智能合约进行搜索,确定所述智能合约的数据层之后,还包括:
检测所述数据层的第一个数据节点是否为空数据节点;
相应地,所述获取所述数据层的所有数据节点的key值包括:
若所述第一个数据节点不为空数据节点,则获取所述数据层的所有数据节点的key值。
3.如权利要求2所述的键值存储方法,其特征在于,所述检测所述数据层的第一个数据节点是否为空数据节点之后,还包括:
若所述第一个数据节点为空数据节点,则将所述待插入key值和所述数据值插入所述第一个数据节点,将所述第一个数据节点的指针指向所述第一个数据节点的后继节点。
4.如权利要求1所述的键值存储方法,其特征在于,所述确定所述数据层中的空数据节点包括:
获取所述数据层的第一个数据节点的指针,并将所述第一个数据节点的指针作为参考指针;
检测所述参考指针所指向的数据节点中是否存储有键值数据;
若所述参考指针所指向的数据节点中未存储键值数据,则确定该数据节点为空数据节点;
若所述参考指针所指向的数据节点中存储有键值数据,则将该数据节点的指针作为所述参考指针,并返回执行所述检测所述参考指针所指向的数据节点中是否存储有键值数据。
5.如权利要求1所述的键值存储方法,其特征在于,在将所述待插入key值和所述数据值插入所述空数据节点之后,还包括:
获取所述智能合约的索引层的最大层数;
获取目标层数,所述目标层数为大于零且小于所述最大层数的整数;
将所述待插入key值插入每个目标索引层的空索引节点中,其中,所述目标索引层包括所述目标层数对应的索引层、所述最大层数对应的索引层以及层数位于所述目标层数与所述最大层数之间的索引层,所述空索引节点是指未插入key值的节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011465232.6/1.html,转载请声明来源钻瓜专利网。