【技术实现步骤摘要】
区块链数据存储方法及装置、电子设备
[0001]本说明书一个或多个实施例涉及区块链
,尤其涉及一种区块链数据存储方法及装置、电子设备。
技术介绍
[0002]区块链技术,也被称之为分布式账本技术,是一种由若干台节点设备共同参与“记账”,共同存储和维护一份完整的分布式数据库的新兴技术。对于区块链的节点设备来说,需要存储和维护的区块链数据,通常包括区块数据、区块链中的区块链账户对应的账户状态数据;而区块数据又可以进一步包括区块头数据、区块中的区块交易数据、以及与区块中的区块交易数据对应的交易收据,等等。
[0003]区块链的节点设备在存储以上示出的各种区块链数据时,通常可以将上述各种区块链数据以key
‑
value键值对的形式,组织成Merkle树在数据库中存储。当需要查询节点设备存储的上述各种区块链数据时,可以通过将上述各种区块链数据的key作为查询索引,遍历上述Merkle树来高效的查询数据。
技术实现思路
[0004]提出一种区块链数据存储方法,所述方法包括:
[0005]获取待存储的区块链数据的key
‑
value键值对;
[0006]将所述待存储的区块链数据的key
‑
value键值对转换成逻辑的树形结构上的根节点、中间节点和叶子节点;所述根节点、中间节点包括主位置和用于存放所述区块链数据的key中的字符的多个子位置;所述主位置包括多个分别与各子位置对应的,用于存放各子位置中的存储内容的hash值的槽位;所述子位 ...
【技术保护点】
【技术特征摘要】
1.一种区块链数据存储方法,所述方法包括:获取待存储的区块链数据的key
‑
value键值对;所述区块链数据的key对应的字符串包括字符前缀和字符后缀;将所述待存储的区块链数据的key
‑
value键值对转换成逻辑的树形结构上的根节点、中间节点和叶子节点;所述根节点、中间节点用于存储所述字符前缀中的字符;所述叶子节点用于存储所述字符后缀和所述区块链数据的Value;所述根节点、中间节点包括主位置和用于存放所述区块链数据的key中的字符的多个子位置;所述主位置包括多个分别与各子位置对应的,用于存放各子位置的hash值的槽位;所述子位置包括多个用于存放所述区块链数据的key中的字符的槽位;所述子位置中的槽位用于存储与该槽位所在的节点链接的下一层节点的hash值;所述子位置的hash值用所述子位置中的各个槽位所填充的hash值进行拼接后进行hash计算得到的hash值表示;所述根节点、中间节点的hash值为所述根节点、中间节点中的主位置中的存储内容的hash;将所述根节点、中间节点和叶子节点的key
‑
value键值对存储在数据库中。2.根据权利要求1所述的方法,所述叶子节点、所述中间节点和所述根节点的key
‑
value键值对中,value为节点的存储内容,key为节点的存储内容的hash值。3.根据权利要求1所述的方法,所述方法还包括:确定所述树形结构上的叶子节点的存储容量是否满足节点分裂条件;如果所述叶子节点的存储容量满足节点分裂条件,从所述叶子节点中分裂出至少一个所述中间节点;所述中间节点用于存储从所述叶子节点存放的字符后缀中分裂出的字符。4.根据权利要求3所述的方法,所述根节点、所述中间节点存储的字符,为所述根节点、所述中间节点中的各子位置所代表的字符,与所述各子位置中填充了hash值的槽位所代表的字符,进行拼接生成的字符串。5.根据权利要求4所述的方法,所述根节点、所述中间节点包括的子位置的数量,与所述子位置包括的槽位的数量相同。6.根据权利要求5所述的方法,所述根节点、所述中间节点包括分别代表不同的16进制字符的16个子位置;所述子位置包括16个分别代表不同的16进制字符的槽位;所述主位置包括与各子位置对应的16个槽位。7.根据权利要求1所述的方法,所述叶子节点为bucket数据桶;所述bucket数据桶包含若干条数据记录;所述数据记录中存储的数据内容包括所述字符后缀和所述区块链数据的Value。8.根据权利要求3所述的方法,所述确定所述树形结构上的叶子节点的存储容量是否满足节点分裂条件,包括:确定所述树形结构上的叶子节点是否发生数据更新;如果所述树形结构上的任一叶子节点发生数据更新,在重新计算所述叶子节点的hash值,并基于该hash值与所述叶子节点上一层的节点进行重新链接之前,进一步确定所述叶子节点的存储容量是否满足节点分裂条件。9.根据权利要求8所述的方法,所述方法还包括:确定所述树形结构上的中间节点是否发生数据更新;如果所述树形结构上的任一中间节点发生数据更新,在重新计算所述中间节点的hash
值,并基于该hash值与该中间节点上一层的节点进行重新链接之前,确定所述中间节点的存储容量是否满足节点合并条件;如果所述中间节点的存储容量满足节点合并条件,进一步将所述中间节点,合并至与该中间节点链接的下一层的叶子节点。10.根据权利要求9所述的...
【专利技术属性】
技术研发人员:俞本权,卓海振,陆钟豪,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。