【技术实现步骤摘要】
一种区块链状态数据的存储、回滚方法、设备和存储介质
本申请涉及区块链
,具体涉及一种区块链状态数据的存储、回滚方法、设备和存储介质。
技术介绍
在区块链账户模型中(AccountModel),数据可以分为区块链数据与账户数据,前者包括区块、交易、回执等数据,后者指的是区块链中账户的状态信息。节点在接收到一个区块后,在原有的的状态基础上依次执行区块中的交易,并且不断的更新账户状态,直到这批交易执行结束,从而使得区块链的状态实现了变迁。在这里,区块链状态指的是区块链上所有账户状态的集合,该状态集统称为世界状态,该部分数据称为账户数据,又称为状态数据。在传统的区块链系统中,交易的执行过程会产生大量状态数据(如账户地址、账户余额、合约状态等),这些数据在产生后会直接写入区块链底层数据库,效率较低,而当发生了回滚事件(如发生分叉、区块根哈希不一致等)时,必须要通过重做日志(Journal)的方式来进行世界状态的回滚,在回滚的区块数目较大时,需要重做的日志数目也会非常庞大,这种方式的效率非常低。
技术实现思路
...
【技术保护点】
1.一种区块链状态数据的存储方法,其特征在于,设置检查点及检查区间包括:/n将第一区块的第一状态数据写入第一预写日志中,所述第一预写日志与第一区块唯一对应;将第一预写日志存储在临时数据库中;/n判断所述第一区块的第一区块高度是否为第一稳定检查点,若是,则遍历所述临时数据库,将内容持久化到底层数据库中,同时删除临时数据库中的第一检查区间的预写日志;/n其中,所述检查点为进行状态数据共识判断的区块高度,稳定检查点为共识通过的检查点,设定检查区间为设定区块高度区间。/n
【技术特征摘要】
1.一种区块链状态数据的存储方法,其特征在于,设置检查点及检查区间包括:
将第一区块的第一状态数据写入第一预写日志中,所述第一预写日志与第一区块唯一对应;将第一预写日志存储在临时数据库中;
判断所述第一区块的第一区块高度是否为第一稳定检查点,若是,则遍历所述临时数据库,将内容持久化到底层数据库中,同时删除临时数据库中的第一检查区间的预写日志;
其中,所述检查点为进行状态数据共识判断的区块高度,稳定检查点为共识通过的检查点,设定检查区间为设定区块高度区间。
2.根据权利要求1所述的方法,其特征在于,所述第一预写日志通过第一区块的区块高度命名,以保证与第一区块唯一对应。
3.根据权利要求1所述的方法,其特征在于:所述若是,则遍历所述临时数据库,将内容存储在底层数据库中包括:
判断状态数据是否具备合法性,是,则遍历所述临时数据库,将临时数据库中状态数据存储在底层数据库中。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述内容持久化到底层数据库中为异步进行。
5.一种区块链状态数据的回滚方法,其特征在于,所述方法的状态数据存储时按照权利要求1所述的存储方法存储,包括:...
【专利技术属性】
技术研发人员:蔡亮,李伟,邱炜伟,匡立中,叶晨宇,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。