一种区块链数据归档方法、装置和计算机可读存储介质制造方法及图纸

技术编号:24331175 阅读:26 留言:0更新日期:2020-05-29 19:39
本发明专利技术实施例公开了一种区块链数据归档方法、装置和计算机可读存储介质;本发明专利技术实施例在第一记账节点与共识节点进行区块链数据同步后,并确定同步后区块链数据的同步区块高度后,当同步区块高度达到预设归档点对应的区块高度时,第一记账节点在状态数据中确定当前交易所需的目标状态数据,并对目标状态数据进行备份,然后,根据备份后的目标状态数据生成同步区块高度的状态数据快照,并将状态数据快照、同步区块高度和签名信息作为归档点信息发送至第二记账节点,第一记账节点接收第二记账节点针对归档点信息的背书信息,第一记账节点根据背书信息和归档点信息对同步后区块链数据进行归档;该方案可以提升区块链数据的归档效率和归档效果。

【技术实现步骤摘要】
一种区块链数据归档方法、装置和计算机可读存储介质
本专利技术涉及通信
,具体涉及一种区块链数据归档方法、装置和计算机可读存储介质。
技术介绍
近年来,随着区块链技术的发展,区块链系统的在交易领域应用也越来越广泛。随着区块链系统运行的时间增加,就会导致区块链系统中各节点的区块链数据占用的存储空间越来越大。为了避免区块链数据占用较大的空间,就需要周期性的对区块链数据进行归档。现有的区块链数据归档方法是通过周期性的生成账本快照,然后将账本快照存储至专门的分布式存储系统,最后将快照点之前的区块、交易信息和回执等区块数据在本地进行删除来降低存储空间。在对现有技术的研究和实践过程中,本专利技术的专利技术人发现对于现有的区块链数据归档方法来说,由于在生成账本快照时,区块链系统仍然在正常的提供交易服务,如果对记账节点的状态数据进行快照读写时,还存在交易时,就会与交易产生冲突,导致快照读取失败或者快照读取的数据不准确,而且生成的状态数据快照还缺乏公信力,因此,就会导致区块链数据的归档效率和归档效果大大降低。
技术实现思路
本专利技术实施例提供一种区块链数据归档方法、装置和计算机可读存储介质。可以提升区块链数据的归档效率和归档效果。一种区块链数据归档方法,包括:所述第一记账节点与共识节点进行区块链数据同步,并确定同步后区块链数据的同步区块高度,所述同步后区块链数据包括状态数据;当所述同步区块高度达到预设归档点对应的区块高度时,所述第一记账节点在所述状态数据中确定当前交易所需的目标状态数据,并对所述目标状态数据进行备份;所述第一记账节点根据备份后的目标状态数据生成所述同步区块高度的状态数据快照,并将所述状态数据快照、所述同步区块高度和所述第一记账节点的签名信息作为归档点信息发送至所述第二记账节点;所述第一记账节点接收所述第二记账节点针对所述归档点信息的背书信息,所述背书信息用于指示所述第二记账节点对所述归档点信息的认可;所述第一记账节点根据所述背书信息和所述归档点信息对所述同步后区块链数据进行归档。相应的,本专利技术实施例提供一种区块链数据归档装置,包括:同步单元,用于所述第一记账节点与共识节点进行区块链数据同步,并确定同步后区块链数据的同步区块高度,所述同步后区块链数据包括状态数据;确定单元,用于当所述同步区块高度达到预设归档点对应的区块高度时,所述第一记账节点在所述状态数据中确定当前交易所需的目标状态数据,并对所述目标状态数据进行备份;生成单元,用于所述第一记账节点根据备份后的目标状态数据生成所述同步区块高度的状态数据快照,并将所述状态数据快照、所述同步区块高度和所述第一记账节点的签名信息作为归档点信息发送至所述第二记账节点;接收单元,用于所述第一记账节点接收所述第二记账节点针对所述归档点信息的背书信息,所述背书信息用于指示所述第二记账节点对所述归档点信息的认可;归档单元,用于所述第一记账节点根据所述背书信息和所述归档点信息对所述同步后区块链数据进行归档。可选的,在一些实施例中,所述确定单元,具体可以用于所述第一记账节点获取所述子状态数据对应的区块高度和在本地数据库中的存储标签;所述第一记账节点将所述子状态数据对应的区块高度添加至所述存储标签进行标记,得到标记后存储标签;所述第一记账节点根据所述标记后存储标签,在所述状态数据中筛选出当前交易所需的目标子状态数据,得到所述目标状态数据;所述第一记账节点对所述目标子状态数据进行备份。可选的,在一些实施例中,所述确定单元,具体可以用于所述第一记账节点获取所述当前交易对应的交易信息;所述第一记账节点根据所述交易信息,确定所述第一记账节点的当前区块链数据的当前区块高度;当所述当前区块高度超过所述同步区块高度时,所述第一记账节点确定在所述当前区块链数据中存在新区块;所述第一记账节点在所述当前区块链数据中筛选出所述新区块中交易需要的调用信息,所述调用信息用于指示调用的所述子状态数据;所述第一记账节点根据所述调用信息和标记后存储标签,在所述状态数据中筛选出所述目标子状态数据,得到所述目标状态数据。可选的,在一些实施例中,所述确定单元,具体可以用于所述第一记账节点在所述交易信息中筛选出所述新区块交易需要的交易操作信息;所述第一记账节点根据所述交易操作信息,确定所述目标子状态数据对应的交易操作类型;当所述交易操作类型为更新操作时,所述第一记账节点将所述更新操作对应的目标子状态数据进行备份,得到备份后的目标状态数据;当所述交易操作类型为删除操作时,所述第一记账节点将所述删除操作对应的目标子状态数据进行备份,对备份后的目标子状态数据添加删除标签,得到备份后的目标状态数据,所述备份后的目标状态数据在交易执行时不能被读取。可选的,在一些实施例中,所述生成单元,具体可以用于所述第一记账节点在所述状态数据中筛选出区块高度不超过所述同步区块高度的同步子状态数据,得到同步子状态数据集合;所述第一记账节点将所述备份后的目标子状态数据添加至所述同步子状态数据集合,以更新所述同步子状态数据集合;所述第一记账节点对更新后的同步子状态数据集合中的同步子状态数据进行哈希运算,以生成目标结构的状态数据;所述第一记账节点对所述目标结构的状态数据进行拷贝,以生成所述状态数据对应的状态数据快照。可选的,在一些实施例中,所述归档单元,具体可以用于所述第一记账节点根据所述背书信息,确定发送所述背书信息的第二记账节点的背书数量;当所述背书数量超过预设数量阈值时,所述第一记账节点将所述背书信息添加至所述归档点信息进行更新,得到更新后归档点信息;所述第一记账节点将所述更新后归档点信息发送至所述共识节点;当所述第一记账节点接收到所述共识节点发送的配置区块数据时,所述第一记账节点对所述同步后区块链数据进行归档。可选的,在一些实施例中,所述归档单元,具体可以用于所述第一记账节点对所述更新后归档点信息进行拷贝,以生成所述第一记账节点在所述同步区块高度的数据快照;所述第一记账节点将所述配置区块数据添加至所述第一区块数据进行更新,得到更新后第一区块数据;所述第一记账节点在所述更新后第一区块数据中筛选出区块高度未超过所述同步区块高度的目标区块数据;所述第一记账节点将所述目标区块数据进行删除。可选的,在一些实施例中,所述归档单元,具体可以用于所述共识节点在所述更新后归档点信息中筛选出所述背书信息和所述签名信息;所述共识节点对所述背书信息和所述签名信息进行校验;当所述背书信息和所述签名信息校验通过时,所述共识节点生成配置区块,并将所述更新后归档点信息存储至所述配置区块,得到配置区块数据;所述共识节点将所述配置区块数据发送至所述第一记账节点和第二记账节点。可选的,在一些实施例中,所述区块链数据归档装置还可以包括背书单元和更新单元。所述背书单元,具体可以用于当所述第一记账节点接收到所述第二记账节点发送的所述归档点信息时,所述第一记账节点在所述归档点信息中提取出所述第二记账节点的状态数据的根哈希值,所述第一记账节点将所述第二记账节点的本文档来自技高网...

【技术保护点】
1.一种区块链数据归档方法,其特征在于,用于区块链系统,所述区块链系统包括共识节点、第一记账节点和至少一个第二记账节点,所述方法包括:/n所述第一记账节点与共识节点进行区块链数据同步,并确定同步后区块链数据的同步区块高度,所述同步后区块链数据包括状态数据;/n当所述同步区块高度达到预设归档点对应的区块高度时,所述第一记账节点在所述状态数据中确定当前交易所需的目标状态数据,并对所述目标状态数据进行备份;/n所述第一记账节点根据备份后的目标状态数据生成所述同步区块高度的状态数据快照,并将所述状态数据快照、所述同步区块高度和所述第一记账节点的签名信息作为归档点信息发送至所述第二记账节点;/n所述第一记账节点接收所述第二记账节点针对所述归档点信息的背书信息,所述背书信息用于指示所述第二记账节点对所述归档点信息的认可;/n所述第一记账节点根据所述背书信息和所述归档点信息对所述同步后区块链数据进行归档。/n

【技术特征摘要】
1.一种区块链数据归档方法,其特征在于,用于区块链系统,所述区块链系统包括共识节点、第一记账节点和至少一个第二记账节点,所述方法包括:
所述第一记账节点与共识节点进行区块链数据同步,并确定同步后区块链数据的同步区块高度,所述同步后区块链数据包括状态数据;
当所述同步区块高度达到预设归档点对应的区块高度时,所述第一记账节点在所述状态数据中确定当前交易所需的目标状态数据,并对所述目标状态数据进行备份;
所述第一记账节点根据备份后的目标状态数据生成所述同步区块高度的状态数据快照,并将所述状态数据快照、所述同步区块高度和所述第一记账节点的签名信息作为归档点信息发送至所述第二记账节点;
所述第一记账节点接收所述第二记账节点针对所述归档点信息的背书信息,所述背书信息用于指示所述第二记账节点对所述归档点信息的认可;
所述第一记账节点根据所述背书信息和所述归档点信息对所述同步后区块链数据进行归档。


2.根据权利1所述的区块链数据归档方法,其特征在于,所述状态数据包括多个子状态数据,所述第一记账节点在所述状态数据中确定当前交易所需的目标状态数据,并对所述目标状态数据进行备份,包括:
所述第一记账节点获取所述子状态数据对应的区块高度和在本地数据库中的存储标签;
所述第一记账节点将所述子状态数据对应的区块高度添加至所述存储标签进行标记,得到标记后存储标签;
所述第一记账节点根据所述标记后存储标签,在所述状态数据中筛选出当前交易所需的目标子状态数据,得到所述目标状态数据;
所述第一记账节点对所述目标子状态数据进行备份。


3.根据权利要求2所述的区块链数据归档方法,其特征在于,所述第一记账节点根据所述标记后存储标签,在所述状态数据中筛选出当前交易所需的目标子状态数据,得到所述目标状态数据,包括:
所述第一记账节点获取所述当前交易对应的交易信息;
所述第一记账节点根据所述交易信息,确定所述第一记账节点的当前区块链数据的当前区块高度;
当所述当前区块高度超过所述同步区块高度时,所述第一记账节点确定在所述当前区块链数据中存在新区块;
所述第一记账节点在所述当前区块链数据中筛选出所述新区块中交易需要的调用信息,所述调用信息用于指示调用的所述子状态数据;
所述第一记账节点根据所述调用信息和标记后存储标签,在所述状态数据中筛选出所述目标子状态数据,得到所述目标状态数据。


4.根据权利要求3所述的区块链数据归档方法,其特征在于,所述第一记账节点对所述目标子状态数据进行备份,包括:
所述第一记账节点在所述交易信息中筛选出所述新区块交易需要的交易操作信息;
所述第一记账节点根据所述交易操作信息,确定所述目标子状态数据对应的交易操作类型;
当所述交易操作类型为更新操作时,所述第一记账节点将所述更新操作对应的目标子状态数据进行备份,得到备份后的目标状态数据;
当所述交易操作类型为删除操作时,所述第一记账节点将所述删除操作对应的目标子状态数据进行备份,对备份后的目标子状态数据添加删除标签,得到备份后的目标状态数据,所述备份后的目标状态数据在交易执行时不能被读取。


5.根据权利要求3所述的区块链数据归档方法,其特征在于,所述第一记账节点根据备份后的目标状态数据生成所述同步区块高度的状态数据快照,包括:
所述第一记账节点在所述状态数据中筛选出区块高度不超过所述同步区块高度的同步子状态数据,得到同步子状态数据集合;
所述第一记账节点将所述备份后的目标子状态数据添加至所述同步子状态数据集合,以更新所述同步子状态数据集合;
所述第一记账节点对更新后的同步子状态数据集合中的同步子状态数据进行哈希运算,以生成目标结构的状态数据;
所述第一记账节点对所述目标结构的状态数据进行拷贝,以生成所述状态数据对应的状态数据快照。


6.根据权利要求1所述的区块链数据归档方法,其特征在于,所述第一记账节点根据所述背书信息和所述归档点信息对所述同步后区块链数据进行归档,包括:
所述第一记账节点根据所述背书信息,确定发送所述背书信息的第二记账节点的背书数量;
当所述背书数量超过预设数量阈值时,所述第一记账节点将所述背书信息添加至所述归档点信息进行更新,得到更新后归档点信息;
所述第一记账节点将所述更新后归档点信息发送至所述共识节点;
当所述第一记账节点接收到所述共识节点发送的配置区块数据时,所述第一记账节点对所述同步后区块链数据进行归档。


7.根据权利要求6所述的区块链数据归档方法,其特征在于,所述同步后区块链数据还包括第一区块数据,所述第一记账节点对所述同步后区...

【专利技术属性】
技术研发人员:吴小龙
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1