基于区块链的数据快照方法、装置及计算机可读存储介质制造方法及图纸

技术编号:25187524 阅读:24 留言:0更新日期:2020-08-07 21:14
本申请公开了一种基于区块链的数据快照方法、装置及计算机可读存储介质,该方法包括:获取快照触发指令,获取快照触发指令的触发时刻;根据快照触发指令,对在触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;快照账户状态是与交易区块中的交易数据相关的账户数据;获取目标区块的预写日志;目标区块为交易区块中具有最高区块高度的区块;预写日志为包含目标区块对应的账户数据的日志;根据预写日志对快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;脏数据是基于账本中包含目标区块中的不完整的交易数据所生成的。采用本申请,可保证针对交易账户的快照处理的实时性。

【技术实现步骤摘要】
基于区块链的数据快照方法、装置及计算机可读存储介质
本申请涉及数据处理的
,尤其涉及一种基于区块链的数据快照方法、装置及计算机可读存储介质。
技术介绍
在时刻A,对交易账户进行快照处理,即为在时刻A,对交易账户的账户状态进行备份。其中,交易账户的账户状态可以指交易账户的账户余额的状态。区块链网络中可以存在共识节点,交易账户的账户状态是通过共识节点的账本中所提交的每个区块中的交易数据对交易账户进行执行后,所得到的账户数据。由于,在触发快照的触发时刻(假设为时刻B),很大可能共识节点正在向账本中提交某个区块,且正在提交的该个区块在该时刻B并未完全提交到账本中。因此,现有技术中,需要在触发快照之后,等待共识节点将当前正在提交的区块完全提交到账本中之后,才能对交易账户的账户状态进行快照处理,这会导致针对交易账户的快照处理有较大延时。申请内容本申请提供了一种基于区块链的数据快照方法、装置及计算机可读存储介质,可保证针对交易账户的快照处理的实时性。本申请一方面提供了一种基于区块链的数据快照方法,包括:获取快照触发指令,获取快照触发指令的触发时刻;根据快照触发指令,对在触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;快照账户状态是与交易区块中的交易数据相关的账户数据;获取目标区块的预写日志;目标区块为交易区块中具有最高区块高度的区块;目标区块的预写日志为包含目标区块对应的账户数据的日志;根据目标区块的预写日志对快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;所述脏数据是基于账本中包含目标区块中的不完整的交易数据所生成的。本申请一方面提供了一种基于区块链的数据快照装置,包括:指令获取模块,用于获取快照触发指令,获取快照触发指令的触发时刻;快照模块,用于根据快照触发指令,对在触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;快照账户状态是与交易区块中的交易数据相关的账户数据;日志获取模块,用于获取目标区块的预写日志;目标区块为交易区块中具有最高区块高度的区块;目标区块的预写日志为包含目标区块对应的账户数据的日志;修正模块,用于根据目标区块的预写日志对快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;脏数据是基于账本中包含目标区块中的不完整的交易数据所生成的。其中,数据快照装置,还包括:区块获取模块,用于生成目标区块,将目标区块进行共识;日志生成模块,用于当检测到目标区块的共识通过率大于或者等于通过率阈值时,生成目标区块的预写日志;日志存储模块,用于存储目标区块的预写日志,将目标区块添加至账本中。其中,日志生成模块,包括:第一日志生成单元,用于生成目标区块的重做日志;重做日志包括对交易账户进行执行与目标区块对应的交易后,交易账户的账户状态;第二日志生成单元,用于根据重做日志,生成目标区块的预写日志。其中,日志生成模块,包括:第三日志生成单元,用于生成目标区块的撤销日志;撤销日志包括对交易账户进行执行与目标区块对应的交易前,交易账户的账户状态;第四日志生成单元,用于根据撤销日志,生成目标区块的预写日志。其中,修正模块,还用于:根据目标区块的预写日志中的重做日志,对快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;修正后的快照账户状态包括对交易账户进行执行与目标区块对应的交易后,交易账户的账户状态。其中,修正模块,还用于:根据目标区块的预写日志中的撤销日志,对快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;修正后的快照账户状态包括对交易账户进行执行与目标区块对应的交易前,交易账户的账户状态。其中,日志存储模块,包括:高度获取单元,用于获取目标区块的区块高度;关联存储单元,用于将目标区块的区块高度和目标区块的预写日志,关联存储至账本;目标区块的区块高度用于关联检索目标区块的预写日志;区块添加单元,用于根据目标区块的区块高度将目标区块添加至账本中。其中,关联存储单元,包括:关联信息生成子单元,用于根据目标区块的区块高度和目标区块的预写日志,生成关联信息;打包子单元,用于将关联信息进行打包,得到关联区块;区块添加子单元,用于将关联区块添加至账本中。其中,日志获取模块,包括:遍历单元,用于根据目标区块的区块高度,遍历账本中包含目标区块的区块高度的关联区块;关联信息获取单元,用于从关联区块中获取包含目标区块的区块高度的关联信息;日志确定单元,用于将关联信息中的预写日志,确定为目标区块的预写日志。其中,数据快照装置,还用于:当交易账户的账户状态遭到非法篡改时,根据所存储的修正后的快照账户状态对遭到非法篡改后的交易账户的账户状态进行状态恢复,得到恢复后的账户状态;恢复后的账户状态与修正后的快照账户状态相同。其中,账本中包括主数据库和快照数据库;主数据库用于存储交易区块;快照数据库中同步存储有对交易账户执行交易区块中的交易数据所属的交易后,交易账户的账户状态;快照模块,具体用于:根据快照触发指令,控制快照数据库暂停同步对交易账户执行触发时刻后的交易数据所属的交易后,交易账户的账户状态,对在触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;主数据库用于在进行快照处理的期间内继续添加触发时刻后的交易数据;则,数据快照装置具体用于:当存储修正后的快照账户状态后,控制快照数据库继续同步对交易账户执行主数据库中触发时刻后的交易数据所属的交易后,交易账户的账户状态。其中,快照模块,包括:状态获取单元,用于从快照数据库中,获取触发时刻时交易账户的最终状态;状态确定单元,用于将交易账户的最终状态,确定为交易账户的快照账户状态。本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如本申请中一方面中的方法。本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述一方面中的方法。本申请可以获取快照触发指令,获取快照触发指令的触发时刻;根据快照触发指令,对在触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;快照账户状态是与交易区块中的交易数据相关的账户数据;获取目标区块的预写日志;目标区块为交易区块中具有最高区块高度的区块;目标区块的预写日志为包含目标区块对应的账户数据的日志;根据目标区块的预写日志对快照账户状态中的脏数据进行修正,得到修正后的快照账户状态,存储修正后的快照账户状态;脏数据是基于账本中包含目标区块中的不完整的交易数据所生成的。由此可见,本申请提出的方法由于可以通过目标区块的预写日志,对快照时由于存在不完整本文档来自技高网...

【技术保护点】
1.一种基于区块链的数据快照方法,其特征在于,包括:/n获取快照触发指令,获取所述快照触发指令的触发时刻;/n根据所述快照触发指令,对在所述触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;所述快照账户状态是与由所述交易区块中的交易数据相关的账户数据;/n获取目标区块的预写日志;所述目标区块为所述交易区块中具有最高区块高度的区块;所述目标区块的预写日志为包含所述目标区块对应的账户数据的日志;/n根据所述目标区块的预写日志对所述快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;所述脏数据是基于所述账本中包含所述目标区块中的不完整的交易数据所生成的。/n

【技术特征摘要】
1.一种基于区块链的数据快照方法,其特征在于,包括:
获取快照触发指令,获取所述快照触发指令的触发时刻;
根据所述快照触发指令,对在所述触发时刻时的账本中的交易区块进行快照处理,得到交易账户的快照账户状态;所述快照账户状态是与由所述交易区块中的交易数据相关的账户数据;
获取目标区块的预写日志;所述目标区块为所述交易区块中具有最高区块高度的区块;所述目标区块的预写日志为包含所述目标区块对应的账户数据的日志;
根据所述目标区块的预写日志对所述快照账户状态中的脏数据进行修正,得到修正后的快照账户状态;所述脏数据是基于所述账本中包含所述目标区块中的不完整的交易数据所生成的。


2.根据权利要求1所述的方法,其特征在于,还包括:
生成所述目标区块,将所述目标区块进行共识;
当检测到所述目标区块的共识通过率大于或者等于通过率阈值时,生成所述目标区块的预写日志;
存储所述目标区块的预写日志,将所述目标区块添加至所述账本中。


3.根据权利要求2所述的方法,其特征在于,所述生成所述目标区块的预写日志,包括:
生成所述目标区块的重做日志;所述重做日志包括对所述交易账户进行执行与所述目标区块对应的交易后,所述交易账户的账户状态;
根据所述重做日志,生成所述目标区块的预写日志。


4.根据权利要求2所述的方法,其特征在于,所述生成所述目标区块的预写日志,包括:
生成所述目标区块的撤销日志;所述撤销日志包括对所述交易账户进行执行与所述目标区块对应的交易前,所述交易账户的账户状态;
根据所述撤销日志,生成所述目标区块的预写日志。


5.根据权利要求3所述的方法,其特征在于,所述根据所述目标区块的预写日志对所述快照账户状态中的脏数据进行修正,得到修正后的快照账户状态,包括:
根据所述目标区块的预写日志中的所述重做日志,对所述快照账户状态中的所述脏数据进行修正,得到所述修正后的快照账户状态;所述修正后的快照账户状态包括对所述交易账户进行执行与所述目标区块对应的交易后,所述交易账户的账户状态。


6.根据权利要求4所述的方法,其特征在于,所述根据所述目标区块的预写日志对所述快照账户状态中的脏数据进行修正,得到修正后的快照账户状态,包括:
根据所述目标区块的预写日志中的所述撤销日志,对所述快照账户状态中的所述脏数据进行修正,得到所述修正后的快照账户状态;所述修正后的快照账户状态包括对所述交易账户进行执行与所述目标区块对应的交易前,所述交易账户的账户状态。


7.根据权利要求2所述的方法,其特征在于,所述存储所述目标区块的预写日志,将所述目标区块添加至所述账本中,包括:
获取所述目标区块的区块高度;
将所述目标区块的区块高度和所述目标区块的预写日志,关联存储至所述账本;所述目标区块的区块高度用于关联检索所述目标区块的预写日志;
根据所述目标区块的区块高度将所述目标区块添加至所述账本中。


8.根据权利要求7所述的方法,其特征在于,所述将所述目标区块的区块高度和所述目标区块的预写日志,关联存储至所述账本,包括:
根据所述目标区块的区块高度和所述目标区块的预写日志,生成关联信息;
将所述关联信息进行打包,得到关联区块;
...

【专利技术属性】
技术研发人员:李茂材杨常青周开班刘区城朱耿良张劲松黄焕坤
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1