【技术实现步骤摘要】
一种区块链数据恢复方法、装置、设备及介质
本专利技术涉及区块链数据处理
,具体涉及一种区块链数据恢复方法、装置、设备及介质。
技术介绍
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,其本质是一个去中心化的数据库,底层是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证交易的有效性(防伪)和生成下一个区块。根据区块链的特性,存储在区块链中的数据一旦产生将无法修改,而在实际应用中,不可避免地会出现由于技术原因或人为原因导致存储在区块链中的数据产生错误,由于区块链中的数据一旦产生无法修改的特性,目前对区块链中的数据进行恢复大多是从第一个区块开始,依次完成整个区块链的数据恢复,恢复速度慢,无法做到数据快速恢复,恢复成本高。
技术实现思路
本专利技术所要解决的技术问题是目前对区块链中的数据进行恢复大多是从第一个区块开始,依次完成整个区块链的数据恢复,恢复速度慢,无法做到数据快速恢复,恢复成本高。因此,提供一种区块链数据恢复方法、装置、设备及介质,以提高区块链中的数据恢复的速度,降低数据恢复成本。本专利技术通过下述技术方案实现:一种区块链数据恢复方法,包括:获取待回滚高度,基于所述待回滚高度查询数据库,获取所述待回滚高度对应的所有待回滚根节点哈希值;基于所述待回滚根节点哈希值,从所述数据库中获取每一所述待回滚根节点哈希值对应的待回滚根节点 ...
【技术保护点】
1.一种区块链数据恢复方法,其特征在于,包括:/n获取待回滚高度,基于所述待回滚高度查询数据库,获取所述待回滚高度对应的所有待回滚根节点哈希值;/n基于所述待回滚根节点哈希值,从所述数据库中获取每一所述待回滚根节点哈希值对应的待回滚根节点数据;/n基于每一所述待回滚根节点数据,生成待回滚MPT树,将所述待回滚MPT树更新到内存中,将所述内存中的账本MPT树替换为待回滚MPT树;/n基于所述待回滚MPT树,将所述区块链的账本状态回滚到对应的待回滚高度;/n基于所述待回滚高度,删除原始待恢复区块链中所述待回滚高度之后的区块数据,并基于所述待回滚高度从同步的区块链节点中获取正常区块数据,恢复所述原始待恢复区块链中待回滚高度之后的区块数据,获取目标恢复区块链;/n当获取所述目标恢复区块链后,获取基于所述待回滚MPT树恢复后的恢复MPT树,并将所述恢复MPT树的根节点哈希值与所述同步的区块链节点对应的根节点哈希值进行比较,若所述恢复MPT树的根节点哈希值与所述同步的区块链节点对应的根节点哈希值一致,则所述区块链数据恢复完成。/n
【技术特征摘要】 【专利技术属性】
1.一种区块链数据恢复方法,其特征在于,包括:
获取待回滚高度,基于所述待回滚高度查询数据库,获取所述待回滚高度对应的所有待回滚根节点哈希值;
基于所述待回滚根节点哈希值,从所述数据库中获取每一所述待回滚根节点哈希值对应的待回滚根节点数据;
基于每一所述待回滚根节点数据,生成待回滚MPT树,将所述待回滚MPT树更新到内存中,将所述内存中的账本MPT树替换为待回滚MPT树;
基于所述待回滚MPT树,将所述区块链的账本状态回滚到对应的待回滚高度;
基于所述待回滚高度,删除原始待恢复区块链中所述待回滚高度之后的区块数据,并基于所述待回滚高度从同步的区块链节点中获取正常区块数据,恢复所述原始待恢复区块链中待回滚高度之后的区块数据,获取目标恢复区块链;
当获取所述目标恢复区块链后,获取基于所述待回滚MPT树恢复后的恢复MPT树,并将所述恢复MPT树的根节点哈希值与所述同步的区块链节点对应的根节点哈希值进行比较,若所述恢复MPT树的根节点哈希值与所述同步的区块链节点对应的根节点哈希值一致,则所述区块链数据恢复完成。
2.根据权利要求1所述的一种区块链数据恢复方法,其特征在于,所述基于每一所述待回滚根节点数据,生成待回滚MPT树,包括:
基于每一所述待回滚根节点数据,递归查找所述数据库,获取所述根节点数据对应的所有子节点数据;
所述根节点数据和所述子节点数据根据各自的节点属性生成待回滚MPT树。
3.根据权利要求1所述的一种区块链数据恢复方法,其特征在于,所述区块链数据恢复方法还包括:
获取创世块,所述创世块中存储有不同数据类型的账本数据,每一所述账本数据中包括账本数据键值对;
对每一所述账本数据的值进行哈希计算,获取所述账本数据对应的哈希值;
将所述账本数据的哈希值和所述账本数据的键输入到MPT树模型中,生成各数据类型对应的账本MPT树;
将所述账本MPT树的根节点哈希值存储在区块头中,所述账本数据键值对存储在区块体中,生成正常区块。
4.根据权利要求1所述的一种区块链数据恢复方法,其特征在于,所述区块链数据恢复方法还包括:
将同步的区块链的账本状态进行比较,若所述同步的区块链中一区块的账本状态与其他同步的区块的账本状态不相同,则将账本状态异常的所述区块作为异常区块,获取所述异常区块的高度作为异常高度;
将所述异常高度的上一个区块高度作为待回滚高度。
5.根据权利要求3所述的一种区块链数据恢复方法,其特征在于,所述区块链数据恢复方法还包括:
获取待接收数据,所述待接收数据包括待接收键值对,所述待接收数据携带有数据类型;
基于所述数据类型,获取内存中存储的所述数据类型对应的账本MPT树;
对所述待接收数据中的值进行哈希计算,获取待接收数据的哈希值;
技术研发人员:李成才,雷罡,高勇,邓柯,
申请(专利权)人:成都质数斯达克科技有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。