[发明专利]一种区块链状态数据的存储、回滚方法、设备和存储介质有效
申请号: | 202010048669.3 | 申请日: | 2020-01-16 |
公开(公告)号: | CN111274318B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 蔡亮;李伟;邱炜伟;匡立中;叶晨宇 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/23;G06F16/21 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 状态 数据 存储 方法 设备 介质 | ||
本发明提供一种区块链状态数据的存储、回滚方法、设备和存储介质,该方法设置检查点的区块高度,及检查区间包括:将第一区块的第一状态数据写入第一预写日志中,第一预写日志与第一区块唯一对应;将第一预写日志存储在临时数据库中;判断第一区块的第一区块高度是否为设置的第一稳定检查点,若是,则遍历临时数据库,将内容持久化到底层数据库中,同时删除临时数据库中的第一检查区间的预写日志。本发明将稳定检查点前的状态数据持久化到磁盘数据库中,保证存储到磁盘的状态数据是通过共识后的,大大提高状态数据的正确性,并在回滚的时候可以不用通过删除磁盘重新计算日志的方式生成新的状态数据,大大提高了回滚的效率。
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链状态数据的存储、回滚方法、设备和存储介质。
背景技术
在区块链账户模型中(Account Model),数据可以分为区块链数据与账户数据,前者包括区块、交易、回执等数据,后者指的是区块链中账户的状态信息。节点在接收到一个区块后,在原有的的状态基础上依次执行区块中的交易,并且不断的更新账户状态,直到这批交易执行结束,从而使得区块链的状态实现了变迁。在这里,区块链状态指的是区块链上所有账户状态的集合,该状态集统称为世界状态,该部分数据称为账户数据,又称为状态数据。
在传统的区块链系统中,交易的执行过程会产生大量状态数据(如账户地址、账户余额、合约状态等),这些数据在产生后会直接写入区块链底层数据库,效率较低,而当发生了回滚事件(如发生分叉、区块根哈希不一致等)时,必须要通过重做日志(Journal)的方式来进行世界状态的回滚,在回滚的区块数目较大时,需要重做的日志数目也会非常庞大,这种方式的效率非常低。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种高效的区块链状态数据的存储、回滚方法、设备和存储介质。
第一方面,本发明提供一种区块链状态数据的存储方法,该方法设置检查点的区块高度,及检查区间包括:
将第一区块的第一状态数据写入第一预写日志中,第一预写日志与第一区块唯一对应;将第一预写日志存储在临时数据库中;
判断第一区块的第一区块高度是否为设置的第一稳定检查点,若是,则遍历临时数据库,将内容持久化到底层数据库中,同时删除临时数据库中的第一检查区间的预写日志;
其中,所述检查点为进行状态数据共识判断的区块高度,稳定检查点为共识通过的检查点,设定检查区间为设定区块高度区间。
进一步,第一预写日志通过第一区块的区块高度命名,以保证与第一区块唯一对应。
进一步,若是,则遍历临时数据库,将内容存储在底层数据库中包括:
判断状态数据是否具备合法性,是,则遍历所述临时数据库,将临时数据库中状态数据存储在底层数据库中。
进一步,内容持久化到底层数据库中为异步进行。
第二方面,一种区块链状态数据的回滚方法,该方法的状态数据存储时按照上述存储方法存储,包括:
判断第一区块的区块高度是否为设置的检查点:是,则验证第一区块的状态数据是否共识成功:否,则依次判断第一检查区间的各区块的状态是否共识成功,并将区块回滚到共识成功的第二区块,同时删除临时数据库;
将第一检查区间中共识成功的各第二区块对应的各第二预写日志重新写入临时数据库,并执行后生成第二区块的状态。
进一步,若第二区块为稳定检查点,则第二区块高度之前的区块不能再被回滚;其中所述稳定检查点为共识通过的检查点,所述第二区块高度小于所述第一区块高度。
进一步,方法还包括:
判断待回滚的区块的第三区块高度是否大于第二区块高度小于第一区块高度,若否,则执行回滚操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010048669.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多节点数据同步的方法和装置,以及计算机设备
- 下一篇:桔梗采收设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置