一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于链的数据快照、归档、完整恢复上链方案的方法与流程

2022-12-20 02:22:52 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,具体为基于链的数据快照、归档、完整恢复上链方案的方法。


背景技术:

2.区块链是具有去中心化、不可篡改的一种新型的分布式账本,节点平等,每个节点都存储全量数据,此存储机制虽然一定程度上保证了数据的可信,信息的公开透明,降低了系统各参与方的信任成本。
3.现有技术中,随着区块链运行时间的增长链式数据的不断增长,全网节点数据剧增,这些因素都将导致区块数据的暴涨,给系统存储和运算带来巨大压力。因此需要及时进行链上数据的归档。
4.但是,业界对数据进行归档都没有一套完整、全面、易用的方案机制,很多都是简单粗暴的将单一节点成员的数据进行迁移存储,方案死板不灵活,也不完善。


技术实现要素:

5.本发明的目的在于提供基于链的数据快照、归档、完整恢复上链方案的方法,以解决上述背景技术中提出的问题,用以灵活实现区块链中各个节点在同一区块高度进行数据快照,依据快照数据之后进一步进行数据归档和恢复等操作机制。
6.为实现上述目的,本发明提供如下技术方案:基于链的数据快照、归档、完整恢复上链方案的方法,包括恢复系统,所述基于链的数据快照、归档、完整恢复上链方案的方法包括以下步骤:
7.客户端发起数据快照请求,创建指定链的数据快照的投票(vote)交易,将数据快照交易请求发送到区块链中的指定共识节点,共识节点成功收到所有组织的投票结果后,立即单独出块提交给账本;每个节点在相同高度收到单独的数据快照区块时,校验交易里的投票结果是否满足投票策略;数据快照完成后通过异步事件监听机制将快照列表信息上报给客户端;
8.获取到的快照列表等信息,各节点可结合根据自己的存储容量情况发起指定节点指定快照高度的数据归档请求;数据归档成功后,刷新并记录归档区块高度archived_num到链上,并删除对应的本地快照数据、链上对应的区块文件数据,返回客户端数据归档成功;否则,上报客户端数据归档失败,此时完成了链上数据到链外冷存储的归档功能;
9.节点归档后,链上没有全量完整的数据,如果需要恢复归档数据上链,则可发起节点的归档数据恢复上链请求,将冷存储的归档数据恢复上链。
10.优选的,投票(vote)交易包括链id、交易类型(vote类型)、投票策略内容;
11.共识节点判断交易类型是投票(vote)类型,将交易广播给链上所有的组织,每个组织进行投票,返回投票结果给共识节点;
12.校验交易里的投票结果是否满足投票策略时,若满足,则在相同区块高度执行最
新区块号的数据快照操作,快照数据包括:区块文件数据、最新状态数据,并计算快照数据的hash值作为元数据,将这些数据都保存到以区块号区分命名的快照目录下;否则,不执行数据快照操作,上报客户端数据快照错误。
13.优选的,数据归档请求时,
14.例如快照列表信息为{100,300,600,1000,1500,...},当节点1存储容量压力较大或告警时,可根据当前节点的具体需求发起指定快照高度的数据归档请求,例如快照高度为1000的归档请求;
15.节点1收到归档请求后,将区块高度是1000及以下的快照数据归档到链外冷存储中,例如是云数据库、云文件系统等更便宜的存储。
16.优选的,归档数据查询时,通过命令行工具cmc或者客户端sdk对链外冷存储的归档数据进行查询操作,因为归档数据一般是比较低频率访问的冷数据,所以支持的查询需求能力相对简单。
17.优选的,归档数据恢复上链的完整性,防篡改性保护:对冷存储的归档恢复数据按照安全规则计算hash值,与原先数据快照计算的hash元数据值进行比对,若相同则说明数据完整且未被篡改,否则数据不完整或被篡改,不进行归档数据的恢复,上报客户端数据归档恢复响应错误;
18.当新节点通过节点1加入链时,需要从节点1同步数据,此时需要判断节点1的archived_num值,如果同步起始的区块数据block_num小于等于archived_num,则从归档数据中同步数据参考恢复归档数据上链的流程;否则从节点1的链上数据进行同步,保证新节点同步到完整的数据。
19.一种基于链的数据快照、归档、完整恢复上链方案的系统,所述该系统由数据快照模块、数据归档模块以及数据恢复模块构成;
20.数据快照模块,用于客户端发起数据快照请求,创建指定链的数据快照的投票(vote)交易,将数据快照交易请求发送到区块链中的指定共识节点,共识节点成功收到所有组织的投票结果后,立即单独出块提交给账本;每个节点在相同高度收到单独的数据快照区块时,校验交易里的投票结果是否满足投票策略;数据快照完成后通过异步事件监听机制将快照列表信息上报给客户端;
21.数据归档模块,用于获取到的快照列表等信息,各节点可结合根据自己的存储容量情况发起指定节点指定快照高度的数据归档请求;数据归档成功后,刷新并记录归档区块高度archived_num到链上,并删除对应的本地快照数据、链上对应的区块文件数据,返回客户端数据归档成功;否则,上报客户端数据归档失败,此时完成了链上数据到链外冷存储的归档功能;
22.数据恢复模块,用于节点归档后,链上没有全量完整的数据,如果需要恢复归档数据上链,则可发起节点的归档数据恢复上链请求,将冷存储的归档数据恢复上链。
23.优选的,所述数据快照模块的投票(vote)交易包括链id、交易类型(vote类型)、投票策略内容;
24.共识节点判断交易类型是投票(vote)类型,将交易广播给链上所有的组织,每个组织进行投票,返回投票结果给共识节点;
25.校验交易里的投票结果是否满足投票策略时,若满足,则在相同区块高度执行最
新区块号的数据快照操作,快照数据包括:区块文件数据、最新状态数据,并计算快照数据的hash值作为元数据,将这些数据都保存到以区块号区分命名的快照目录下;否则,不执行数据快照操作,上报客户端数据快照错误。
26.优选的,所述数据归档模块的数据归档请求时,
27.例如快照列表信息为{100,300,600,1000,1500,...},当节点1存储容量压力较大或告警时,可根据当前节点的具体需求发起指定快照高度的数据归档请求,例如快照高度为1000的归档请求;
28.节点1收到归档请求后,将区块高度是1000及以下的快照数据归档到链外冷存储中,例如是云数据库、云文件系统等更便宜的存储。
29.优选的,所述数据归档模块的归档数据查询时,通过命令行工具cmc或者客户端sdk对链外冷存储的归档数据进行查询操作,因为归档数据一般是比较低频率访问的冷数据,所以支持的查询需求能力相对简单。
30.优选的,所述数据恢复模块的归档数据恢复上链的完整性,防篡改性保护:对冷存储的归档恢复数据按照安全规则计算hash值,与原先数据快照计算的hash元数据值进行比对,若相同则说明数据完整且未被篡改,否则数据不完整或被篡改,不进行归档数据的恢复,上报客户端数据归档恢复响应错误;
31.当新节点通过节点1加入链时,需要从节点1同步数据,此时需要判断节点1的archived_num值,如果同步起始的区块数据block_num小于等于archived_num,则从归档数据中同步数据参考恢复归档数据上链的流程;否则从节点1的链上数据进行同步,保证新节点同步到完整的数据。
32.与现有技术相比,本发明的有益效果是:
33.本发明提出的基于链的数据快照、归档、完整恢复上链方案的方法的方案具备较强的完整性、易用性。方案分为数据快照、数据归档、数据恢复上链的主体三个流程,数据快照操作保证分布式数据的一致性的定期多次快照;数据归档操作用户可灵活依据快照数据进行指定节点数据的冷存储的归档,简单易用;数据恢复上链操作让冷存储的归档的数据能够完整恢复上链,保证链上数据的完整性;
34.方案具有更完备的分布式安全信任机制。方案形成快照投票交易,每个组织需要对交易进行投票,并在执行交易的时候判断组织的投票结果是否满足投票策略,如果满足,则说明满足安全信任要求,执行交易;否则不执行交易;
35.方案保证了归档数据的完整性、防篡改性等。归档数据在快照时按照规则进行了数据的hash运算保存成了元数据内容,当冷存储的归档数据恢复上链前进行归档数据的hash运算与之前保存的快照的元数据进行比对,保证了归档数据的完整性、防篡改性等安全问题。
附图说明
36.图1为本发明方法流程图。
具体实施方式
37.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以
下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。
39.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
40.出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。
41.请参阅图1,本发明提供一种技术方案:基于链的数据快照、归档、完整恢复上链方案的方法,包括恢复系统,所述基于链的数据快照、归档、完整恢复上链方案的方法包括以下步骤:
42.客户端发起数据快照请求,创建指定链的数据快照的投票(vote)交易,投票(vote)交易包括链id、交易类型(vote类型)、投票策略内容,将数据快照交易请求发送到区块链中的指定共识节点,共识节点判断交易类型是投票(vote)类型,将交易广播给链上所有的组织,每个组织进行投票,返回投票结果给共识节点,共识节点成功收到所有组织的投票结果后,立即单独出块提交给账本;每个节点在相同高度收到单独的数据快照区块时,校验交易里的投票结果是否满足投票策略;校验交易里的投票结果是否满足投票策略时,若满足,则在相同区块高度执行最新区块号的数据快照操作,快照数据包括:区块文件数据、最新状态数据,并计算快照数据的hash值作为元数据,将这些数据都保存到以区块号区分命名的快照目录下;否则,不执行数据快照操作,上报客户端数据快照错误;数据快照完成后通过异步事件监听机制将快照列表信息上报给客户端;
43.获取到的快照列表等信息,各节点可结合根据自己的存储容量情况发起指定节点指定快照高度的数据归档请求;数据归档成功后,刷新并记录归档区块高度archived_num到链上,并删除对应的本地快照数据、链上对应的区块文件数据,返回客户端数据归档成功;否则,上报客户端数据归档失败,此时完成了链上数据到链外冷存储的归档功能;例如快照列表信息为{100,300,600,1000,1500,...},当节点1存储容量压力较大或告警时,可根据当前节点的具体需求发起指定快照高度的数据归档请求,例如快照高度为1000的归档
请求;节点1收到归档请求后,将区块高度是1000及以下的快照数据归档到链外冷存储中,例如是云数据库、云文件系统等更便宜的存储;归档数据查询时,通过命令行工具cmc或者客户端sdk对链外冷存储的归档数据进行查询操作,因为归档数据一般是比较低频率访问的冷数据,所以支持的查询需求能力相对简单;
44.节点归档后,链上没有全量完整的数据,如果需要恢复归档数据上链,则可发起节点的归档数据恢复上链请求,将冷存储的归档数据恢复上链;归档数据恢复上链的完整性,防篡改性保护:对冷存储的归档恢复数据按照安全规则计算hash值,与原先数据快照计算的hash元数据值进行比对,若相同则说明数据完整且未被篡改,否则数据不完整或被篡改,不进行归档数据的恢复,上报客户端数据归档恢复响应错误;当新节点通过节点1加入链时,需要从节点1同步数据,此时需要判断节点1的archived_num值,如果同步起始的区块数据block_num小于等于archived_num,则从归档数据中同步数据参考恢复归档数据上链的流程;否则从节点1的链上数据进行同步,保证新节点同步到完整的数据。
45.一种所述的基于链的数据快照、归档、完整恢复上链方案的系统,所述该系统由数据快照模块、数据归档模块以及数据恢复模块构成;
46.数据快照模块,用于客户端发起数据快照请求,创建指定链的数据快照的投票(vote)交易,将数据快照交易请求发送到区块链中的指定共识节点,共识节点成功收到所有组织的投票结果后,立即单独出块提交给账本;每个节点在相同高度收到单独的数据快照区块时,校验交易里的投票结果是否满足投票策略;数据快照完成后通过异步事件监听机制将快照列表信息上报给客户端;数据快照模块的投票(vote)交易包括链id、交易类型(vote类型)、投票策略内容;共识节点判断交易类型是投票(vote)类型,将交易广播给链上所有的组织,每个组织进行投票,返回投票结果给共识节点;校验交易里的投票结果是否满足投票策略时,若满足,则在相同区块高度执行最新区块号的数据快照操作,快照数据包括:区块文件数据、最新状态数据,并计算快照数据的hash值作为元数据,将这些数据都保存到以区块号区分命名的快照目录下;否则,不执行数据快照操作,上报客户端数据快照错误;
47.数据归档模块,用于获取到的快照列表等信息,各节点可结合根据自己的存储容量情况发起指定节点指定快照高度的数据归档请求;数据归档成功后,刷新并记录归档区块高度archived_num到链上,并删除对应的本地快照数据、链上对应的区块文件数据,返回客户端数据归档成功;否则,上报客户端数据归档失败,此时完成了链上数据到链外冷存储的归档功能;例如快照列表信息为{100,300,600,1000,1500,...},当节点1存储容量压力较大或告警时,可根据当前节点的具体需求发起指定快照高度的数据归档请求,例如快照高度为1000的归档请求;节点1收到归档请求后,将区块高度是1000及以下的快照数据归档到链外冷存储中,例如是云数据库、云文件系统等更便宜的存储;数据归档模块的归档数据查询时,通过命令行工具cmc或者客户端sdk对链外冷存储的归档数据进行查询操作,因为归档数据一般是比较低频率访问的冷数据,所以支持的查询需求能力相对简单;
48.数据恢复模块,用于节点归档后,链上没有全量完整的数据,如果需要恢复归档数据上链,则可发起节点的归档数据恢复上链请求,将冷存储的归档数据恢复上链;数据恢复模块的归档数据恢复上链的完整性,防篡改性保护:对冷存储的归档恢复数据按照安全规则计算hash值,与原先数据快照计算的hash元数据值进行比对,若相同则说明数据完整且
未被篡改,否则数据不完整或被篡改,不进行归档数据的恢复,上报客户端数据归档恢复响应错误;当新节点通过节点1加入链时,需要从节点1同步数据,此时需要判断节点1的archived_num值,如果同步起始的区块数据block_num小于等于archived_num,则从归档数据中同步数据参考恢复归档数据上链的流程;否则从节点1的链上数据进行同步,保证新节点同步到完整的数据。
49.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献