[发明专利]区块链状态数据同步方法及装置、电子设备有效
申请号: | 201910703834.1 | 申请日: | 2019-07-31 |
公开(公告)号: | CN110493325B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 卓海振;陆钟豪;俞本权 | 申请(专利权)人: | 创新先进技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L9/32;G06F16/27;G06F16/22 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 周嗣勇 |
地址: | 开曼群岛大开曼岛*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 状态 数据 同步 方法 装置 电子设备 | ||
1.一种区块链状态数据同步方法,所述区块链中的账户状态数据被组织成Merkle状态树在数据库中存储,所述Merkle状态树为融合了Trie字典树的树形结构的Merkle树变种,所述Merkle状态树为Merkle Patricia Tree状态树;所述Merkle状态树包括由各区块链账户的最新账户状态组织成的当前Merkle状态树;以及,由各区块链账户的历史账户状态组织成的历史Merkle状态树;其中,所述当前Merkle状态树和所述历史Merkle状态树,是两颗独立存在的Merkle状态树;所述当前Merkle状态树与所述历史Merkle状态树之间并不存在数据节点的复用关系,所述方法包括:
接收针对所述Merkle状态树的数据同步指令;
响应于所述数据同步指令,实时获取所述区块链中的其它节点设备的数据库中存储的最新区块的当前Merkle状态树;
将获取到的所述最新区块的当前Merkle状态树存储至本地数据库,以完成针对所述Merkle状态树的实时数据同步;
响应于所述数据同步指令,在后台离线获取其它节点设备的数据库中存储的各区块的历史Merkle状态树,将获取到的各区块的历史Merkle状态树存储至本地数据库,以完成针对所述Merkle状态树中的历史Merkle状态树的离线数据同步;
确定所述其它节点设备存储的Merkle状态树对应的最新区块的第一区块号,是否小于所述区块链的最新区块的第二区块号;如果是,重新执行从所述第一区块号至所述第二区块号之间所有区块中的交易,以对同步至本地数据库的所述当前Merkle状态树和所述历史Merkle状态树上的数据节点进行更新。
2.根据权利要求1所述的方法,还包括:
在目标区块中的交易执行完毕后,基于与所述目标区块中的交易相关的目标账户更新后的最新账户状态,生成与所述目标区块的当前Merkle状态树对应的更新数据节点;基于所述目标账户更新前的历史账户状态,生成与所述目标区块的历史Merkle状态树对应的历史数据节点;
基于生成的所述更新数据节点对本地数据库中存储的所述目标区块的上一区块的当前Merkle状态树上,与所述目标账户对应的数据节点进行修改更新,以得到所述目标区块的当前Merkle状态树;以及,
基于生成的所述历史数据节点和复用的本地数据库中存储的所述目标区块的上一区块的历史Merkle状态树上与所述目标账户对应的数据节点以外的其它数据节点,为所述目标区块创建历史Merkle状态树。
3.根据权利要求1所述的方法,所述当前Merkle状态树上的数据节点被组织成B+树的数据结构在数据库中存储;所述历史Merkle状态树上的数据节点被组织成LSM树的数据结构在数据库中存储。
4.根据权利要求1所述的方法,所述数据库为Key-Value数据库;
所述Merkle状态树上的数据节点以Key-Value键值对的形式存储在所述数据库中;其中,所述当前Merkle状态树上的数据节点的key为所述数据节点的节点ID;所述历史Merkle状态树上的数据节点的key为所述数据节点包含的数据内容的hash值。
5.根据权利要求1所述的方法,所述数据库为LevelDB数据库;或者基于LevelDB架构的数据库。
6.根据权利要求5所述的方法,所述数据库为基于LevelDB架构的Rocksdb数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创新先进技术有限公司,未经创新先进技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910703834.1/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置