区块链数据恢复方法、装置及系统与流程-j9九游会真人

文档序号:35754681发布日期:2023-10-16 20:00阅读:0来源:国知局


1.本发明涉及区块链技术领域,具体地,涉及一种区块链数据恢复方法、装置及系统。


背景技术:

2.当前越来越多的区块链业务应用上线。由于区块链交易的链式结构不可篡改和账本联盟多方共同维护的复杂性,可能导致账本数据量大场景下的数据应急恢复时间过长以及网络带宽瓶颈,影响线上交易。
3.现有技术主要基于共识算法,通常采用多副本机制在不同的区块链共识同步数据,在存在大量数据的情况下,当某一联盟链参与方或者联盟链机构持有节点出现数据丢失时,需要从其他节点获取区块数据,并基于区块历史数据重放状态数据。
4.现有技术主要缺点体现在:一个新节点加入区块链或者异常节点需要恢复时,需要从其他特定节点拉取区块,在数据量大的情况下会恢复时间会比较长;区块链节点间同步数据可能带来网络带宽瓶颈影响线上交易,降低区块链的交易吞吐量。特别在区块链网络中影响尤为明显。


技术实现要素:

5.本发明实施例的主要目的在于提供一种区块链数据恢复方法、装置及系统,以实现区块链数据的快速同步和实时恢复。
6.为了实现上述目的,本发明实施例提供一种区块链数据恢复方法,包括:
7.发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据;
8.根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块;
9.接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数据。
10.在其中一种实施例中,还包括:
11.根据所述存储节点的标识号生成密钥对;
12.发送所述密钥对中的公钥和所述待恢复数据块中的哈希值至所述存储节点,以使所述存储节点根据所述公钥生成持有标识号,根据所述哈希值生成持有哈希值;
13.根据所述标识号、所述哈希值、以及来自所述存储节点的所述持有标识号和所述持有哈希值发送所述恢复请求至非对应存储节点。
14.在其中一种实施例中,所述待恢复数据块包括所述对应的存储节点根据本地备份区块数据和所述故障数据块集合从本地获取的本地待恢复数据块和从非对应存储节点获取的非本地待恢复数据块。
15.在其中一种实施例中,所述备份区块数据包括所述原始区块数据和所述存储节点根据所述原始区块数据得到的校验区块数据。
16.在其中一种实施例中,还包括:
17.接收来自控制台的用户认证证书,根据所述用户认证证书生成网络配置信息;
18.根据所述网络配置信息和对应的存储节点的资源在线数据执行智能合约的准入接口逻辑得到准入凭证;
19.返回所述网络配置信息和所述准入凭证至所述控制台,以使所述控制台根据所述网络配置信息和所述准入凭证调用智能合约初始化备份恢复策略。
20.本发明实施例还提供一种区块链数据恢复装置,包括:
21.区块发送模块,用于发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据;
22.智能合约执行模块,用于根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块;
23.数据恢复模块,用于接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数据。
24.本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现所述的区块链数据恢复方法的步骤。
25.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现所述的区块链数据恢复方法的步骤。
26.本发明实施例还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现所述的区块链数据恢复方法的步骤。
27.本发明实施例还提供一种区块链数据恢复系统,包括:
28.共识记账节点、对应的存储节点和控制台,其中,所述共识记账节点和所述存储节点构成区块链网络;
29.所述共识记账节点包括权利要求6所述的区块链数据恢复装置;
30.所述存储节点根据来自所述共识记账节点的原始区块数据确定备份区块数据,根据所述备份区块数据和故障数据块集合获取待恢复数据块;
31.所述控制台根据来自所述共识记账节点的网络配置信息和准入凭证调用智能合约初始化备份恢复策略。
32.本发明实施例的区块链数据恢复方法、装置及系统先发送原始区块数据至存储节点,以确定备份区块数据,再根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合以使存储节点根据备份区块数据和故障数据块集合获取待恢复数据块,最后根据待恢复数据块恢复区块链数据,以实现区块链数据的快速同步和实时恢复。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些
实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1是本发明实施例中区块链数据恢复方法的流程图;
35.图2是本发明另一实施例中区块链数据恢复方法的示意图;
36.图3是本发明实施例中备份恢复策略初始化的流程图;
37.图4是本发明实施例中恢复数据验证的流程图;
38.图5是本发明实施例中原始区块数据和校验区块数据的分布示意图;
39.图6是本发明实施例中区块链数据恢复装置的结构框图;
40.图7是本发明实施例中共识记账节点的示意图;
41.图8是本发明实施例中存储节点的示意图;
42.图9为本技术实施例的电子设备9600的系统构成的示意框图;
43.图10是本发明实施例中区块链数据恢复系统的示意图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
46.本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。本技术实施例中的用户信息均是通过合法合规途径获得,并且对用户信息的获取、存储、使用、处理等均经过客户授权同意。
47.关键术语定义:
48.区块链分布式共识记账:是一种基于密码学技术生成的分布式共享数据库,其本质是通过去中心化的方式集体维护一个可靠数据库的技术方案。凭借该方案中的多个节点,形成点对点网络关系,再利用数学基础建立信任效果,成为一个不需要基于彼此信任、也不需要依赖单一中心化机构就可以运作的分散式系统。这套系统可以保证数据的真实性,并且用极低的成本实现了信任与价值的可靠传递,构建起一个更为开放共享、透明可信并且可核查追溯的系统。
49.鉴于现有技术的数据恢复时间长,影响交易,本发明实施例提供一种区块链数据恢复方法、装置及系统,通过构建基于区块的分布式数据文件备份系统进行数据的准实时备份归档,并通过点对点协议实现区块的多方分块同步,实现数据异常块的快速检测恢复和数据在弱网络环境下的异常块快速同步;通过区块链节点设计应急恢复模块保证数据的实时恢复,通过应急恢复智能合约进行多方共识恢复,实现基于策略规则的自动执行,而无需认为干预增加数据恢复时间。以下结合附图对本发明进行详细说明。
50.图1是本发明实施例中区块链数据恢复方法的流程图;图2是本发明另一实施例中区块链数据恢复方法的示意图。如图1-图2所示,区块链数据恢复方法包括:
51.s101:发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据。
52.具体实施时,分布式共识记账节点通过数据备份和恢复智能合约执行数据快照备份操作,可以对分布式共识记账节点4的状态数据库,区块数据以及私有数据(包括结构化和非结构化的数据格式保存)哈希进行快照备份,将以上述数据以文件的方式快照归档备份到分散式存储节点3中。数据区块文件包含区块链数据和元数据信息展示,实例如下:
53.·
header,即区块头,这里又包含了三项数据,包括:
54.·
number:block number,即区块号,用来标识每个区块。
55.·
previoushash:前一个区块头的hash值
56.·
datahash:data域的hash值,这里没有包含metadata
57.·
data,即区块数据,这里包含的就是所有的transaction数据
58.·
metadata,元数据就是由一个value和相应的签名组成,包括:
59.·
metadata[blockmetadataindex_signatures]:签名信息
[0060]
·
metadata[blockmetadataindex_last_config]:通道最新配置区块索引
[0061]
·
metadata[blockmetadataindex_transactions_filter]:交易是否合法的标记
[0062]
·
metadata[blockmetadataindex_consensus]:共识节点服务信息
[0063]
·
metadata[blockmetadataindex_dstorage]:分散式存储节点锚定的节点signer(nodeid,pubkey)
[0064]
·
metadata[blockmetadataindex_pos]:分散式存储节点锚定的节点signer(nodeid,cid)
[0065]
图3是本发明实施例中备份恢复策略初始化的流程图。如图3所示,在执行s101之前,还包括:
[0066]
s201:接收来自控制台的用户认证证书,根据所述用户认证证书生成网络配置信息。
[0067]
具体实施时,用户持有区块链接入和发起交易的用户证书和密钥,并可通过可视化交互或者通过后端接口的方式(控制台)将用户证书和密钥发送到分布式共识节点4(共识记账节点),并调用节点认证模块431进行本地分布式共识节点的接入验证。
[0068]
验证通过本地节点接入后,根据用户认证证书生成网络配置信息。网络配置信息包括备份恢复交易证书、节点地址和通道等,并调用访问授权模块432配置相关访问权限设置。
[0069]
s202:根据所述网络配置信息和对应的存储节点的资源在线数据执行智能合约的准入接口逻辑得到准入凭证。
[0070]
具体实施时,根据网络配置信息和分散式存储节点3的资源在线情况,执行数据备份和恢复合约5(智能合约)的联盟准入验证接口逻辑得到准入凭证。,
[0071]
s203:返回所述网络配置信息和所述准入凭证至所述控制台,以使所述控制台根据所述网络配置信息和所述准入凭证调用智能合约初始化备份恢复策略。
[0072]
具体实施时,将准入凭证经过共识节点的分布式共识后,返回执行区块链网络“区块数据备份和恢复”操作的准入凭证和网络配置信息到控制台2。
[0073]
控制台根据所述网络配置信息和所述准入凭证调用数据备份和恢复智能合约5中
的初始化接口初始化配置数据备份和恢复策略规则。恢复策略包括约定联盟链中共同提供分散式存储备份节点3执行联盟链的共享存储资源,备份恢复的时间点,以及备份的区块高度区间范围等信息。
[0074]
s102:根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块。
[0075]
其中,待恢复数据块包括所述对应的存储节点根据本地备份区块数据和所述故障数据块集合从本地获取的本地待恢复数据块和从非对应存储节点获取的非本地待恢复数据块。备份区块数据包括所述原始区块数据和所述存储节点根据所述原始区块数据得到的校验区块数据。
[0076]
具体实施时,分散式存储节点3通过链下请求收发装置31接收到分布式共识记账节点4的数据快照模块423中的快照备份文件(故障数据块集合),格式转换模块321根据区块链备份的数据类型按照分散式存储节点3可识别的文件json,cbor,pb,block等进行对应的数据转换处理,然后根据转换后的数据文件调用数据分块模块322的不同分块算法进行分块处理并创建哈希索引,支持的哈希分块算法包括size,rabin,buzhansh等算法实现。
[0077]
数据分块需要基于分块编码模块323进行数据编码处理,假设当前联盟链网络中存在6个区块(b1-b6)数据,按照四节点的区块链,每个节点都会有6个区块链原始块(k),4节点网络将总共有24个区块。本发明通过引入纠删码算法设计,每个节点不需要进行完整区块数据,结合纠删码算法和区块链拜占庭容错设计,将区块链中的区块划分为完整块和索引块两种区块,其中完整块包含区块头和数据,索引块只包括区块链不包含数据。
[0078]
以r(n=k p=10,k=6)参数涉及编码算法,首先将区块链节点的所有区块完整块分为g1(b1,b3,b5)和g2(b2,b4,b5)两个组,计算校验块p=4,其中g1组关联完整校验块p1和索引校验块p3,g2组计算完整校验块p2和索引校验块p4。
[0079]
根据原始区块数据获得校验块的计算过程简化说明如下,下文以r(n=10,k=6)进行过程说明:
[0080]
1、原始区块数据采用m(x)多项式编码表示如下:
[0081]
m(x)=(mkxk

m2x m1)
×
x
2t

[0082]
该多项式和下文的多项式需要遵从遵守有限域的运算法则,m表示实际的区块数据通过二进制或者十六进制进行编码,mk表示第k个原始区块数据对应的编码,xk是对应第k个原始数据取值在有限域中的映射,其中k为多项式的标签(非自然数),作为占位符保证所有的原始区块数据编码后数据块都是固定长度,以方便计算。如以256kb大小(需要大于区块大小的最大值)为数据分块大小,当区块数据大小小于256kb时,需要通过调整参数x进行数据分块大小对齐。
[0083]
2、结合校验块p的数量进行后补零,获得编码后的数据多项式c
temp
(x)(包含原始数据块和校验块)表示如下:
[0084]ctemp
(x)=mkxn

m1x
2t 1
m0x
2t
0x
2t-1


0x1;
[0085]
其中数据块k=6,原始区块数据编码大小为长度m的二进制或者十六进制数据,校验块p=2t=4,校验块多项式的具体参数需要根据数据编码所使用的字典多项式用g(x)计算,字典多项式g(x)表示如下:
[0086][0087]
其中2t=p为校验块数量,参数j取值(1《=j《=2t),α是根据编码数据多项式的根,结合不同的多项式根的选择,可以生成不同的生成多项式,g为计算的系数,数据编码多项式c
temp
(x)除以生成多项式g(x),取余下的多项式为校验多项式p(x),表示如下:
[0088]ctemp
(x)%g(x)=p(x)=p
2t
x
2t


p1x1;
[0089]
最终生产代码编码后的数据多项式表示如下:
[0090]
c(x)=m(x) p(x)。
[0091]
通过上述的数据编码存储保证数据分块的效率和完整行校验的均衡,以r(n=10,k=6,p=4)为例,通过上述计算从6个原始数据块计算出4个校验块。
[0092]
以pbft共识算法的联盟链网络为例,pbft的3f 1的容错(f为拜占庭节点数),通过根据纠删码rs编码的算法原理,最终将已有的k(=6)数区块原始块映射到n(=k t)个编码数据块中,允许1个节点为拜占庭或异常节点,支持通过局部的分散式存储节点获取完整的原始区块数据(b1-b6)。
[0093]
图5是本发明实施例中原始区块数据和校验区块数据的分布示意图。如图5所示,将所有6个原始区块和4个校验块按照区块链网络的节点数量分别存储在4个联盟链的区块链节点中。为保证区块链(3f 1)的故障容错,需要支持所有数据分片冗余和完整性校验,每个节点最少有两个数据完整块(上图以两个为例说明)并保证所有的数据索引块和校验块,同时需要基于merkle树结构进行区块完整块和索引块的组织。
[0094]
一实施例中,如果存储网络中存在故障节点(包括新加入或者节点异常故障),分布式共识记账节点4中内置的异常检测模块441会触发数据恢复指令到数据备份和恢复智能合约中,执行合约中的数据恢复逻辑,并调用数据恢复模块424中的逻辑到分散式存储节点的merkle中校验并获得缺失的数据块e(x)集合(故障数据块集合),然后从请求获取需要恢复的数据集。
[0095]
故障分布式共识记账节点4先调用分散式存储节点3的链下请求收发装置31,并将请求指令转发到分散式存储节点的分块解码模块333,根据错误数据集e(x)和本地分散式存储节点存储的编码后的数据块集合c(x)快速计算能获取错误出现的位置和值,并解码得到需要得到的数据块集合r(x)(待恢复数据块)。然后通过分散式存储节点的p2p型通道模块,基于p2p协议临近传输设计和多节点并行传输实现,由邻近一个或者多个节点的数据块和校验块的快速寻址和同步需要恢复的数据。
[0096]
s103:接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数据。
[0097]
图4是本发明实施例中恢复数据验证的流程图。如图4所示,考虑到区块链共识记账节点和分散式存储节点支持自主退出和加入的特殊要求,需要支持快速的数据冗余的动态完整性检测,并实现数据区块文件在分散式存储节点网络中的数据自平衡分布,需要在网络中实现基于挑战和验证的存储的区块的完整性验证。
[0098]
一实施例中,接收来自所述存储节点的待恢复数据块之后,还包括:
[0099]
s301:根据所述存储节点的标识号生成密钥对。
[0100]
s302:发送所述密钥对中的公钥和所述待恢复数据块中的哈希值至所述存储节点,以使所述存储节点根据所述公钥生成持有标识号,根据所述哈希值生成持有哈希值。
[0101]
具体实施时,分布式共识记账节点4接收来自分散式存储节点3的区块数据文件中的merklecrh根哈希作为挑战信息。当挑战信息通过备份恢复智能合约记录在共识记账节点的账本中,则说明共识记账节点4接受了该分散式存储节点3的挑战委托。
[0102]
分布式记账节点4传入分散式存储节点3的唯一id作为入参,调用智能合约5的密钥对生成接口生成属于自己的可验证随机函数的密钥对(包括密钥和公钥),并将密钥对中的公钥发送给分散式存储节点3。
[0103]
分散式存储节点3收到分布式共识记账节点4密钥对中的公钥和merklecrh哈希等挑战信息后,通过使用各分散式存储节点的密钥对其进行解密验证,若验证通过,则生成对应的数据持有性证据,即merklecrh根哈希(持有哈希值)和对应的存储节点的唯一id(持有标识号),发回分布式共识记账节点4。
[0104]
s303:根据所述标识号、所述哈希值、以及来自所述存储节点的所述持有标识号和所述持有哈希值发送所述恢复请求至非对应存储节点。
[0105]
具体实施时,其他分布式共识记账节点4根据存储的merklecrh根哈希和密钥对中的公钥等挑战信息,对收到的数据持有性证据依次解密验证,如果解密验证成功可表明分散式存储节点3正确且完整地存储了快照数据文件分配,如检测到未存储或哈希值与持有哈希值不一致,或标识号与持有标识号不一致,则需要通过数据备份和恢复智能合约触发数据块的同步,保证存储网络中的区块副本的数量足够,重新发送所述恢复请求至非对应存储节点。
[0106]
图1所示的区块链数据恢复方法的执行主体为共识记账节点和位于共识记账节点的数据备份和恢复合约。如图1所示,区块链数据恢复方法先发送原始区块数据至存储节点,以确定备份区块数据,再根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合以使存储节点根据备份区块数据和故障数据块集合获取待恢复数据块,最后根据待恢复数据块恢复区块链数据,以实现区块链数据的快速同步和实时恢复。
[0107]
基于同一发明构思,本发明实施例还提供了一种区块链数据恢复装置,由于该装置解决问题的原理与区块链数据恢复方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0108]
图6是本发明实施例中区块链数据恢复装置的结构框图。如图6所示,区块链数据恢复装置包括:
[0109]
区块发送模块,用于发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据;
[0110]
智能合约执行模块,用于根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块;
[0111]
数据恢复模块,用于接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数据。
[0112]
在其中一种实施例中,还包括:
[0113]
密钥对生成模块,用于根据所述存储节点的标识号生成密钥对;
[0114]
第一发送模块,用于发送所述密钥对中的公钥和所述待恢复数据块中的哈希值至所述存储节点,以使所述存储节点根据所述公钥生成持有标识号,根据所述哈希值生成持有哈希值;
[0115]
第二发送模块,用于根据所述标识号、所述哈希值、以及来自所述存储节点的所述持有标识号和所述持有哈希值发送所述恢复请求至非对应存储节点。
[0116]
在其中一种实施例中,所述待恢复数据块包括所述对应的存储节点根据本地备份区块数据和所述故障数据块集合从本地获取的本地待恢复数据块和从非对应存储节点获取的非本地待恢复数据块。
[0117]
在其中一种实施例中,所述备份区块数据包括所述原始区块数据和所述存储节点根据所述原始区块数据得到的校验区块数据。
[0118]
在其中一种实施例中,还包括:
[0119]
网络配置生成模块,用于接收来自控制台的用户认证证书,根据所述用户认证证书生成网络配置信息;
[0120]
准入凭证模块,用于根据所述网络配置信息和对应的存储节点的资源在线数据执行智能合约的准入接口逻辑得到准入凭证;
[0121]
返回模块,用于返回所述网络配置信息和所述准入凭证至所述控制台,以使所述控制台根据所述网络配置信息和所述准入凭证调用智能合约初始化备份恢复策略。
[0122]
图7是本发明实施例中共识记账节点(分布式共识记账节点)的示意图。图8是本发明实施例中存储节点的示意图。如图7-图8所示,在实际应用中,分布式共识记账节点的功能结构图包括链上请求收发装置41、备份恢复装置42,安全处理装置43和链上链下协同装置44。
[0123]
备份恢复装置42涉及包括策略配置模块421,数据归档模块422,数据快照模块423和数据恢复模块424。
[0124]
策略配置模块421包括网络配置生成模块、准入凭证模块和返回模块,需要结合数据节点的恢复场景进行联盟链组织机构信息的配置,包括公私钥证书文件,网络配置信息和通道信息等。
[0125]
数据归档模块422集成了分散式存储节点3的客户端,调用数据备份装置执行数据备份,按“时间区间”或者“区块高度”进行快照归档,分为两个阶段:链上节点数据快照归档和链下节点数据分布同步。首先,链上节点数据快照归档:该步骤需要归档支持合约的支持,归档支持合约主要存储链上数据的标识信息(数据id)以及数据存储时间。当归档时,先查询该合约得到需要归档的数据列表,根据这个数据列表,去分散式节点与其锚定的数据。整个过程包括“查询-写入-删除”,查询链上数据和链下数据,将查询得到的数据信息写入到归档库,一旦写入成功,将摘要写入到归档摘要文件,最后删除数据;其次,链下节点数据分布同步,该步骤归档节点的业务数据,落到时间区间的数据即可执行查询-写入-删除操作,对于文件数据,需要查询元信息,写入k/v键值归档库,再取文件块写入到分散式存储系统。
[0126]
数据快照模块423包括区块发送模块、智能合约执行模块、数据恢复模块,可以对共识记账节点的通道信息,私有数据集的哈希,交易id等状态数据和区块链文件进行快照,新节点可以通过快照加入该联盟链网络或者当某些节点异常是通过基于快照进行数据恢
复,通过快照功能可以实现快照数据恢复异步同步,同时不影响新增的节点或者故障恢复的节点参与共识。
[0127]
数据恢复模块424集成了分散式存储节点3的客户端,调用数据备份装置执行数据块恢复逻辑,支持新增节点或者因为导致奔溃的节点的快速的恢复,可靠的网络下可以定向从特定的存储节点恢复,同时在在不可靠的网络情况下基于分散式存储节点邻近节点实现就近传输和并发传输。
[0128]
安全处理装置43针涉及的包括组织节点认证模块431、访问控制模块432、密钥生成模块433、账本校验模块434等。节点认证模块根据pki规范生成的一组证书和密钥文件,保证记录在区块链的数据具有不可逆,防篡改,联盟参与方的备份恢复执行交易都会加上发起者的标签(签名证书),同时用发起人的私钥进行加密。如果数据备份或者恢复交易需要其他组织的节点提供背书功能,那么背书节点也会在交易中加入自己的签名。同时针对不同的业务通道的数据基于通道的方式进行数据备份和恢复的操作的隔离。
[0129]
链上链下协同装置44包括节点监控模块441、合约执行模块442、、账本同步模块443、证明验证模块444等,功能详述如下:
[0130]
节点监控模块441通过标准的适配不同的文件存储协议如http协议或者s3协议以及grpc支持链上链下的交互。
[0131]
合约执行模块442基于标准的智能合约模块数据备份和恢复操作的全生命周期管理。
[0132]
账本同步模块443实现链下分散式存储节点的数据同步和分散式存储节点3的共享资源管理。
[0133]
存储证明验证模块444包括密钥对生成模块、第一发送模块、第二发送模块,用于证明分散式存储基于共享的存储资源在特定时间内存储了特定数量的数据块,并支持基于merkle根哈希的链上链下的快速的数据文件完整性校验。
[0134]
分散式存储节点包括链下请求收发装置31,数据备份装置32和数据恢复装置33,其中数据备份装置32包括格式转换模块321,数据分块模块322,分块编码模块323和分块同步模块324。
[0135]
链下请求收发装置31主要实现基于rest和grpc等标准协议接口,用于支持链上分散式存储节点3的数据文件的存取,并支持节点的管理接口。
[0136]
格式转换模块321用于转换格式,可以按其希望的任何方式表示对象类型和树结构,包括现有的表示形式(json,cbor,pb,block等)以及其他自定义序列化。转换格式是数据块链接和梅可尔树跟到叶子节点路径的标准化表示,描述了如何在结构化数据和二进制数据之间转换。
[0137]
数据分块模块322支持按照一定数据文件类型/数据文件大小进行,支持size,rabin,buzhansh三种分块算法,并根据实际业务场景的安全等级要求和数据文件的大小进行数据文件的分块加密处理。
[0138]
分块编码模块323采用可插拔的分块编码设计,综合rs(reed-solomon)编码,ldpc码等,通过结合数据分块模块322实现不同原始数据分块大小的自适应适配,从而满足性能效率和计算,存储和带宽成本的均衡,默认情况下n=k m,根据冗余度计算(k m)/k需求进行设置,同时对m纠错块的设置结合数据分块数量和分布式存储节点存储情况进行分组基
于merkle树结构进行子树分组计算校验块,即m(g l)。
[0139]
分块同步模块324根据分散式存储节点网络的资源供给情况和链上智能合约的分布策略,并根据分块编码的冗余要求,进行数据文件在不同存储节点的存储数据块的自动分布,同时在分块分布完成后调用区块链分布式共识记账节点4进行数据文件原数据的链上存储。
[0140]
数据恢复装置包括恢复指令模块331,p2p寻址模块332,分块解码模块333,异常恢复模块334,详述如下:
[0141]
恢复指令模块331通过链下请求处理模块31接收分布式记账节点4发出的数据恢复请求,并执行链上智能合约5的数据恢复的联盟链协商,并对具体的恢复操作进行记录存证。
[0142]
p2p寻址模块332基于p2p通讯协议和dht分布式哈希表,实现在分散式存储网络中基于节点和数据块内容标识的跨节点路由,并在分散式存储节点3中通过密码哈希即唯一id来引用数据文件内容,且由于标识符未指定检索方法,可以完全分散内容,并且提供了一种验证内容的安全方法。
[0143]
分块解码模块333进行数据分块的定时校验,基于链上的元数据信息根据一定周期检测链下分散式存储节点数据副本保持的完整性。
[0144]
异常恢复模块334:用于进行分块合并,大致步骤包括:1.数据恢复请求者需要对请求进行编码并将其发送给响应者;2.存储网络中邻近节点需要接收请求,并根据请求执行数据块选择器查询;3.邻近节点需要从本地存储中加载块,以便可以执行选择器查询;4.如果确认本地存在对应数据块,则成为响应者,编码遍历的块并将有关遍历的元数据发送给数据恢复请求者;5.数据请求者需要验证收到的块实际上是所请求选择器查询的正确块,一旦验证就需要存储收到的块,响应者需要将遍历的节点返回给数据恢复请求的调用者。
[0145]
综上,本发明实施例的区块链数据恢复装置先发送原始区块数据至存储节点,以确定备份区块数据,再根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合以使存储节点根据备份区块数据和故障数据块集合获取待恢复数据块,最后根据待恢复数据块恢复区块链数据,以实现区块链数据的快速同步和实时恢复。
[0146]
图9为本技术实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
[0147]
一实施例中,区块链数据恢复方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
[0148]
发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据;
[0149]
根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块;
[0150]
接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数
据。
[0151]
从上述描述可知,本技术提供的区块链数据恢复方法先发送原始区块数据至存储节点,以确定备份区块数据,再根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合以使存储节点根据备份区块数据和故障数据块集合获取待恢复数据块,最后根据待恢复数据块恢复区块链数据,以实现区块链数据的快速同步和实时恢复。
[0152]
在另一个实施方式中,区块链数据恢复装置可以与中央处理器9100分开配置,例如可以将区块链数据恢复装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现区块链数据恢复方法的功能。
[0153]
如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
[0154]
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
[0155]
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
[0156]
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
[0157]
该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲器9141(有时被称为缓冲存储器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
[0158]
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
[0159]
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
[0160]
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可
以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
[0161]
本发明实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的区块链数据恢复方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的区块链数据恢复方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0162]
发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据;
[0163]
根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块;
[0164]
接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数据。
[0165]
综上,本发明实施例的计算机可读存储介质先发送原始区块数据至存储节点,以确定备份区块数据,再根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合以使存储节点根据备份区块数据和故障数据块集合获取待恢复数据块,最后根据待恢复数据块恢复区块链数据,以实现区块链数据的快速同步和实时恢复。
[0166]
本发明实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的区块链数据恢复方法中全部步骤的一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述实施例中的区块链数据恢复方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0167]
发送原始区块数据至存储节点,以使所述存储节点根据所述原始区块数据确定备份区块数据;
[0168]
根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合,发送包括所述故障数据块集合的数据恢复请求至对应的存储节点,以使所述存储节点根据所述备份区块数据和所述故障数据块集合获取待恢复数据块;
[0169]
接收来自所述存储节点的待恢复数据块,根据所述待恢复数据块恢复区块链数据。
[0170]
综上,本发明实施例的计算机程序产品先发送原始区块数据至存储节点,以确定备份区块数据,再根据节点故障数据执行智能合约恢复逻辑得到故障数据块集合以使存储节点根据备份区块数据和故障数据块集合获取待恢复数据块,最后根据待恢复数据块恢复区块链数据,以实现区块链数据的快速同步和实时恢复。
[0171]
基于同一发明构思,本发明实施例还提供了一种区块链数据恢复系统,由于该系统解决问题的原理与区块链数据恢复方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
[0172]
图10是本发明实施例中区块链数据恢复系统的示意图。如图10所示,区块链数据恢复系统包括:
[0173]
共识记账节点、对应的存储节点和控制台,其中,所述共识记账节点和所述存储节点构成区块链网络;
[0174]
所述共识记账节点包括如上所述的区块链数据恢复装置;
[0175]
所述存储节点根据来自所述共识记账节点的原始区块数据确定备份区块数据,根据所述备份区块数据和故障数据块集合获取待恢复数据块;
[0176]
所述控制台根据来自所述共识记账节点的网络配置信息和准入凭证调用智能合约初始化备份恢复策略。
[0177]
如图10所示,具体实施时,区块链数据恢复系统还包括:
[0178]
用户端1,包括用户所持有的各种终端,如pc端,移动端,边缘设备,云服务器等,用户可以具有完全的权限,并对其他用户控制访问权限,用户基于此进行数字资产的管理,制作数据资产文件,同时根据安全场景进行密钥的管理或者存储。
[0179]
管理控制台2是一种区块链去中心化场景下支持管理区块链共识节点和存储节点的交互式的管理平台,支持区块链联盟组织自身共识节点的计算,存储,网络等资源管理,以及联盟链服务的接入许可,可以极大的降低区块链存储网络运维管理的复杂度。
[0180]
分散式存储节点3是一种基于区块链的去中心化的可信数据存储系统。该系统是一种若中心化,点对点的对等分布式区块链存储系统,提供了一个高吞吐量,按内容寻址的块存储模型,支持存储的灵活扩容,多存储协议适配支持,掂对点分块安全加密,去冗余的对象链接,不可篡改的数据存储结构等特性,能提供安全,高效,开放,低成本的的多方共享存储网络。
[0181]
分布式共识记账节点4,是一种具有多方高效共识,强安全合约引擎,可靠隐私保护,跨链互联互通等特性的区块链联盟链网络,同时可以支持其他开源主流并提供可编程智能合约等联盟链和公链,用于提供数据资产标识的多方数据流通和治理,同时提供基本的接入授权和认证,并支持不同机构不同的业务场景进行数据资产的物理和逻辑上的隔离,保障数据的安全可信,数字资产访问和操作留痕。
[0182]
数据备份恢复智能合约5是区块链网络的核心实现,使去中心化(分布式)区块链系统具有可编程性,智能合约在可执行代码中定义不同组织之间的规则,也是一种旨在信息化方式传播验证或者执行合同的计算机协议,通过智能合约生成交易记录到区块链账本,可以在没有第三方的情况下进行交易,保证交易可以追踪,不可篡改,不可逆转,主要包括数据备份和恢复的联盟准入校验,数据备份执行,数据恢复执行等接口,用于备份和恢复的按照既定的策略自动执行。
[0183]
综上所述,本发明实施例提供的区块链数据恢复系统通过构建基于区块的分布式数据文件备份系统进行数据的准实时备份归档,并通过点对点协议实现区块的多方临近和多点并行同步,实现数据异常块的快速检测恢复,实现数据在弱网络环境下的异常块快速同步;通过区块链节点设计应急恢复模块保证数据的实时恢复,数据恢复通过应急恢复智能合约进行多方共识恢复,实现基于策略规则的自动执行,而无需认为干预增加数据恢复时间。
[0184]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件 程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0185]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围
内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0186]
虽然本技术提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
[0187]
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
[0188]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0189]
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0190]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0191]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0192]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0193]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0194]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0195]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0196]
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0197]
本说明书中的各实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0198]
本说明书中的各实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0199]
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
当前第1页1  
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图