[发明专利]一种基于快照的区块链直接归档方法有效
申请号: | 201910772373.3 | 申请日: | 2019-08-21 |
公开(公告)号: | CN110543446B | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 邱炜伟;李伟;张珂杰;梁秀波;尹可挺 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/16;G06Q40/04 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 快照 区块 直接 归档 方法 | ||
1.一种基于快照的区块链直接归档方法,其特征在于,具体包括如下步骤:
S1:接收到用户对指定区块高度的归档请求,与当前区块高度进行比较;
S2:若用户指定区块高度小于或等于当前区块高度,则执行用户指定区块高度快照,生成用户指定区块高度的状态数据库快照,并将账本数据绑定到全局唯一的ID;
S3:获取当前区块链网络的创世区块的区块号,创世区块号到所述用户指定区块号则为此次归档的区块链范围;
S4:遍历此次归档的区块链范围,以及一个区块内的所有交易,以每个区块作为一个原子单位,存储迁移数据,所述迁移数据包括迁移交易回执、交易索引、区块索引、交易操作日志信息,所述迁移数据在线下归档数据库后,删除线上数据内相同的数据;然后向线上数据库写入一个由“ArchiveNumber”字符串与当前区块号构成的键值对数据,记录归档的区块号,同时在遍历区块时,统计交易数目以及回执数目;
S5:重复执行S4直到迁移区块号超出所述归档的区块链范围,迁移Gennsis区块号到用户指定区块号中存在的非法交易,迁移至线下归档数据库中去;
S6:将存储区块的Filelog数据库以及存储交易日志Journal的Filelog数据库中范围为Gennsis区块号到用户指定区块号减一的区块进行交易执行日志,迁移至线下数据库;
S7:更新区块链的记录元数据,包括Gensis信息、线上和线下的交易统计数以及回执统计数信息;
S8:更新归档记录元数据文件,所述文件中的数据表示当前线下的相关数据量:分别将本次归档过程中涉及的区块数目、交易数目、回执数目以及非法交易数目增加到文件中的相应字段下,即完成区块链直接归档。
2.根据权利要求1所述区块链直接归档方法,其特征在于,步骤S1中,当用户指定的区块号大于当前区块链的区块号时,则拒绝该次直接归档请求,视为非法请求。
3.根据权利要求1所述区块链直接归档方法,其特征在于,区块链平台第一次归档,生成两次快照,即0号区块状态数据库快照以及用户指定区块高度的状态数据库快照。
4.根据权利要求1所述区块链直接归档方法,其特征在于,若归档过程中异常退出,再次启动时,则进入异常恢复流程,具体为:
在执行模块启动时,根据filelog数据库中的Genesis区块号和当前链上的Genesis区块号做对比,分析本次启动前的归档流程是否处于异常状态;
针对所述filelog数据库中的Genesis区块号和当前链上的Genesis区块号相等的情况,则比较“ArchiveNumber”对应的区块号与本次归档的区块号范围的边界值:如果“ArchiveNumber”不存在,则不需要进入恢复流程;如果“ArchiveNumber”对应的区块号等于所述归档的区块链范围的起始区块号,则认为上次归档未发生,不需要下述恢复流程;如果“ArchiveNumber”对应的区块号等于所述归档的区块链范围的末尾区块号,则认为上次归档成功,不需要进入下述恢复流程;如果“ArchiveNumber”对应的区块号不等于任一边界值且在所述归档的区块链范围内,则进入异常恢复流程;即对Gensis区块号到“ArchiveNumber”对应的区块号范围内的区块中所有的交易对应的回执信息写入线上数据库;最后,直接从线上数据库中删除“ArchiveNumber”键值对;
针对所述filelog数据库中的Genesis区块号大于当前链上的Genesis区块号,则将filelog数据库中的存储的区块数据和Journal数据分别与区块链上Genesis区块号进行比较,如果出现不等情况,将filelog数据库中的数据按照归档记录中的范围,将之前迁移到线下路径的数据重新恢复到线上;如果所述数据重新恢复到线上执行成功,则读取“ArchiveNumber”对应的区块号,对起始区块号到“ArchiveNumber”对应的区块号范围内的每一个区块创建线上、线下数据库批处理缓冲,将区块中所有的交易对应的回执信息写入线上数据库批处理缓冲;然后依次将相应的批处理缓冲提交至线上、线下数据库;最后,直接从线上数据库中删除“ArchiveNumber”键值对。
5.根据权利要求4所述区块链直接归档方法,其特征在于,所述异常恢复流程执行完后,重复步骤S1~S8,完成区块链直接归档。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910772373.3/1.html,转载请声明来源钻瓜专利网。