全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210908663.8 (22)申请日 2022.07.29 (71)申请人 蚂蚁区块链科技 (上海) 有限公司 地址 200010 上海市黄浦区外马路618号8 层803室 (72)发明人 陆钟豪 俞本权 卓海振 任充慧  田世坤  (74)专利代理 机构 北京博思佳知识产权代理有 限公司 1 1415 专利代理师 周嗣勇 (51)Int.Cl. G06F 16/22(2019.01) G06F 16/23(2019.01) G06F 16/2455(2019.01) G06F 16/27(2019.01) (54)发明名称 区块链数据存 储方法及装置、 电子设备 (57)摘要 一种区块链数据存储方法, 区块链数据的 key‑value键值对以逻辑的树形结构上的根节 点、 中间节点和叶子节点的形式, 存储在数据库 中; 根节点、 中间节点用于存 放区块链数据的key 中的字符; 叶子节点用于存放区块链数据的 value; 包括: 获取待存储的区块链数据的key ‑ value键值对; 将区块链数据的key ‑value键值对 转换成逻辑的树形结构上的根节 点、 中间节点和 叶子节点; 将根节点、 中间节点中的至少部分节 点缓存至支持覆盖式写入数据的存储介质; 生成 用于记录针对至少部分节点的修改更新详情的 数据记录, 并将数据记录和所述根节点、 中间节 点和叶子节点中除所述至少部分节点 以外的其 他节点写 入数据库进行持久化存 储。 权利要求书2页 说明书18页 附图8页 CN 115221176 A 2022.10.21 CN 115221176 A 1.一种区块链数据存储方法, 所述区块链数据的key ‑value键值对以逻辑的树形结构 上的根节点、 中间节点和叶子节点的形式, 存储在数据库中; 所述根节点、 中间节点用于存 放所述区块链数据的key中的字符; 所述叶子节点用于存放所述区块链数据的value; 所述 树形结构上的任一节点 通过其hash值与上一层的节点链接; 所述方法包括: 获取待存 储的区块链数据的key ‑value键值对; 将所述区块链数据的key ‑value键值对转换成逻辑的树形结构上的根节点、 中间节点 和叶子节点; 将所述根节点、 中间节点中的至少部分节点缓存至支持覆盖式写入数据的存储介质, 以在所述存储介质中针对所述至少 部分节点进行修改更新; 以及, 生成用于记录针对所述 至少部分节点的修改更新详情的数据记录, 并将所述数据记录和所述根节点、 中间节点和 叶子节点中除所述至少部分节点以外的其 他节点写入所述数据库进行持久化存 储。 2.根据权利要求1所述的方法, 所述至少部分节点包括多个用于存放所述区块链数据 的key中的字 符的槽位; 所述槽位用于存储与该节 点链接的下一层节 点的hash值; 所述数据 记录用于记录针对所述至少部分节点中的各个槽位的修改更新详情。 3.根据权利要求2所述的方法, 所述逻辑的树状结构包括融合了字典树的树形结构的 Merkle树。 4.根据权利要求3所述的方法, 所述区块链数据包括与所述区块链上的区块链账户对 应的账户状态数据; 基于所述区块链中的各个区块链账户对应的账户状态数据的key ‑value键值对生成的 Merkle树包括: 基于所述各个区块链账户的最新账户状态数据生成的当前Merkle状态树; 以及, 基于所述各个区块链账户的历史账户状态数据组织成的历史Merkle状态树; 所述逻 辑的树形 结构为所述当前Merk le状态树。 5.根据权利要求3所述的方法, 所述逻辑的树状结构包括MPT树; 所述根节点为所述MPT树上的扩展节点extens  ion node; 所述中间节点为所述MPT树 上的所述扩展节点extension  node或者分支节点branch  node; 所述至少部分节点为所述 MPT树上的branc h node。 6.根据权利要求3所述的方法, 所述逻辑的树状结构包括FDMT树; 其中, 所述FDMT树上的根节点、 中间节点均包括多个用于存放所述区块链数据的key中 的字符的位置; 每个位置中进一步包括多个用于存放所述区块链数据的key中的字符的槽 位; 所述槽位用于存放链接至该节点的下一层的节点的hash; 所述至少部分节点为所述 FDMT树上的根节点和中间节点。 7.根据权利要求1所述的方法, 所述方法还 包括: 确定所述存 储介质中缓存的所述至少部分节点是否满足持久化存 储条件; 如果所述存储介质中缓存的所述至少部分节点满足持久化存储条件, 将所述存储介质 中缓存的所述至少部分节点写入所述数据库中进行持久化存 储。 8.根据权利要求7 所述的方法, 所述方法还 包括: 在将所述存储介质中缓存的所述至少部分节点成功写入所述数据库中进行持久化存 储之后, 进一 步将所述存 储介质中缓存的所述至少部分节点删除。 9.根据权利要求7 所述的方法, 所述方法还 包括:权 利 要 求 书 1/2 页 2 CN 115221176 A 2在将所述存储介质中缓存的所述至少部分节点成功写入所述数据库中进行持久化存 储之后, 进一步将所述数据库中持久化存储的与所述至少部分节点对应的所述数据记录删 除。 10.根据权利要求1所述的方法, 所述持久化存储条件, 包括以下示出的任一或者多个 的组合: 所述数据库中持久化存 储的数据记录的条 数达到阈值; 所述数据库中持久化存 储的数据记录的存 储容量达到阈值; 接收到了针对所述存 储介质中存 储的所述至少部分节点的持久化存 储指令。 11.根据权利要求1所述的方法, 所述方法还 包括: 响应于针对所述逻辑的树状结构上的节点的读取指令, 从所述存储介质中读取所述节 点, 并在从所述存 储介质中未读取到所述节点时, 进一 步从所述数据库中读取 所述节点。 12.根据权利要求1所述的方法, 所述数据记录包括 WAL日志。 13.根据权利要求12所述的方法, 所述方法还 包括: 接收针对所述存 储介质中缓存的所述至少部分节点的异常恢复指令; 响应于所述异常恢复指令, 基于所述数据库中存储的所述WAL日志, 对所述存储介质中 缓存的所述至少部分节点进行 数据恢复。 14.根据权利要求1所述的方法, 所述存 储介质包括内存。 15.一种区块链数据存储装置, 所述区块链数据的key ‑value键值对以逻辑的树形结构 上的根节点、 中间节点和叶子节点的形式, 存储在数据库中; 所述根节点、 中间节点用于存 放所述区块链数据的key中的字符; 所述叶子节点用于存放所述区块链数据的value; 所述 树形结构上的任一节点 通过其hash值与上一层的节点链接; 所述装置包括: 获取模块, 获取待存 储的区块链数据的key ‑value键值对; 转换模块, 将所述区块链数据的key ‑value键值对转换成逻辑的树形结构上的根节点、 中间节点和叶子节点; 存储模块, 将所述根节点、 中间节点中的至少部分节点缓存至支持覆盖式写入数据的 存储介质, 以在所述存储介质中针对所述至少部分节点进行修改更新; 以及, 生成用于记录 针对所述至少 部分节点的修改更新详情的数据记录, 并将所述数据记录和所述根节点、 中 间节点和叶子节点中除所述至少部分节点以外的其他节点写入所述数据库进行持久化存 储。 16.一种电子设备, 包括: 处理器; 用于存储处理器可执行指令的存 储器; 其中, 所述处理器通过运行所述可执行指令以实现如权利要求1 ‑14中任一项所述的方 法的步骤。 17.一种计算机可读存储介质, 其上存储有计算机指令, 该指令被处理器执行时实现如 权利要求1 ‑14中任一项所述方法的步骤。权 利 要 求 书 2/2 页 3 CN 115221176 A 3

PDF文档 专利 区块链数据存储方法及装置、电子设备

文档预览
中文文档 29 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共29页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 区块链数据存储方法及装置、电子设备 第 1 页 专利 区块链数据存储方法及装置、电子设备 第 2 页 专利 区块链数据存储方法及装置、电子设备 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:40:03上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。