【技术实现步骤摘要】
基于区块链的键值存储方法、装置、终端设备及介质
本申请属于区块链
,尤其涉及一种基于区块链的键值存储方法、装置、终端设备及介质。
技术介绍
在区块链技术的应用中,为了保证数据的不可篡改和可溯源性,会将所有数据和计算放在智能合约中。现有的智能合约存储是基于键值(Key-Value,K-V)的哈希映射结构表的存储方式,而由于该K-V的哈希映射结构表是一种无序结构,使得查询一组K-V时需要遍历全表,查询的效率较低。
技术实现思路
本申请实施例提供了一种基于区块链的键值存储方法、装置、终端设备及介质,可以解决现有的键值的无序存储方式导致查询的效率较低的问题。第一方面,本申请实施例提供了一种基于区块链的键值存储方法,所述键值存储方法包括:获取待插入key值和所述待插入key值对应的数据值;对智能合约进行搜索,确定所述智能合约的数据层;获取所述数据层的所有数据节点的key值;将所有数据节点的key值分别与所述待插入key值比较,确定目标数据节点,其中,所述目标数据节点为与所述待插入key值的比较结果满足第一预设条件的key值对应的节点;确定所述数据层中的空数据节点,所述空数据节点是指未被插入键值数据的节点;将所述待插入key值和所述数据值插入所述空数据节点,将所述空数据节点的指针指向所述目标数据节点的指针指向的节点,将所述目标数据节点的指针指向所述空数据节点。第二方面,本申请实施例提供了一种基于区块链的键值存储装置,所述键值存储装置包括:< ...
【技术保护点】
1.一种基于区块链的键值存储方法,其特征在于,所述键值存储方法包括:/n获取待插入key值和所述待插入key值对应的数据值;/n对智能合约进行搜索,确定所述智能合约的数据层;/n获取所述数据层的所有数据节点的key值;/n将所有数据节点的key值分别与所述待插入key值比较,确定目标数据节点,其中,所述目标数据节点为与所述待插入key值的比较结果满足第一预设条件的key值对应的节点;/n确定所述数据层中的空数据节点,所述空数据节点是指未被插入键值数据的节点;/n将所述待插入key值和所述数据值插入所述空数据节点,将所述空数据节点的指针指向所述目标数据节点的指针指向的节点,将所述目标数据节点的指针指向所述空数据节点。/n
【技术特征摘要】
1.一种基于区块链的键值存储方法,其特征在于,所述键值存储方法包括:
获取待插入key值和所述待插入key值对应的数据值;
对智能合约进行搜索,确定所述智能合约的数据层;
获取所述数据层的所有数据节点的key值;
将所有数据节点的key值分别与所述待插入key值比较,确定目标数据节点,其中,所述目标数据节点为与所述待插入key值的比较结果满足第一预设条件的key值对应的节点;
确定所述数据层中的空数据节点,所述空数据节点是指未被插入键值数据的节点;
将所述待插入key值和所述数据值插入所述空数据节点,将所述空数据节点的指针指向所述目标数据节点的指针指向的节点,将所述目标数据节点的指针指向所述空数据节点。
2.如权利要求1所述的键值存储方法,其特征在于,在所述对智能合约进行搜索,确定所述智能合约的数据层之后,还包括:
检测所述数据层的第一个数据节点是否为空数据节点;
相应地,所述获取所述数据层的所有数据节点的key值包括:
若所述第一个数据节点不为空数据节点,则获取所述数据层的所有数据节点的key值。
3.如权利要求2所述的键值存储方法,其特征在于,所述检测所述数据层的第一个数据节点是否为空数据节点之后,还包括:
若所述第一个数据节点为空数据节点,则将所述待插入key值和所述数据值插入所述第一个数据节点,将所述第一个数据节点的指针指向所述第一个数据节点的后继节点。
4.如权利要求1所述的键值存储方法,其特征在于,所述确定所述数据层中的空数据节点包括:
获取所述数据层的第一个数据节点的指针,并将所述第一个数据节点的指针作为参考指针;
检测所述参考指针所指向的数据节点中是否存储有键值数据;
若所述参考指针所指向的数据节点中未存储键值数据,则确定该数据节点为空数据节点;
若所述参考指针所指向的数据节点中存储有键值数据,则将该数据节点的指针作为所述参考指针,并返回执行所述检测所述参考指针所指向的数据节点中是否存储有键值数据。
5.如权利要求1所述的键值存储方法,其特征在于,在将所述待插入key值和所述数据值插入所述空数据节点之后,还包括:
获取所述智能合约的索引层的最大层数;
获取目标层数,所述目标层数为大于零且小于所述最大层数的整数;
将所述待插入key值插入每个目标索引层的空索引节点中,其中,所述目标索引层包括所述目标层数对应的索引层、所述最大层数对应的索引层以及层数位于所述目标层数与所述最大层数之间的索引层,所述空索引节点是指未插入key值的节点。
6.如权利要求5所述的键值存储方法,其特征在于,所述智能合约的索引层的索引节点中还包括:用于指向表示该索引节点所在层的下一层级的节点数据结构的指针、用于指向下一层级中与该索引节点对应的节点的指针以及用于指向该索引节点的后继节点...
【专利技术属性】
技术研发人员:李伟,蔡亮,匡立中,曾磊,边书豪,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。