发明内容
有鉴于此,为解决上述问题,本发明提供一种区块链信息容灾方法、装置、计算机设备及存储介质,依赖于分布式网络实现对区块链信息的灾备,在消除全节点隐患的基础上,实现了对区块链信息的容灾,技术方案如下:
一种区块链信息容灾方法,应用于区块链中的加密参与节点,该方法包括:
确定待进行加密的第一信息,所述第一信息为待进行备份的区块或者所述区块经过加密后得到的目标区块;
利用随机生成的第一加密信息对所述第一信息进行加密得到第二信息;
采用所述加密参与节点的公钥对所述第一加密信息进行加密得到第二加密信息;
利用所述加密参与节点的私钥对所述第二信息和所述第二加密信息的加密结果进行签名得到签名信息;
确定所述区块链中是否存在下一加密参与节点;
如果所述区块链中存在下一加密参与节点,将目标信息传输至所述下一加密参与节点;所述目标信息由所述第二信息、所述第二加密信息、所述签名信息、所述区块的区块号区间,以及加密参与节点信息构成,所述加密参与节点信息指示历史依次用于对所述区块进行加密的各个加密参与节点;
如果所述区块链中不存在下一加密参与节点,根据所述目标信息将所述第二信息存储至分布式网络。
优选的,
若所述第一信息为待进行备份的区块,所述加密参与节点为所述区块链中的发起节点;
或者,
若所述第一信息为所述区块经过加密后得到的目标区块,所述确定待进行加密的第一信息,包括:接收上一加密参与节点发送的目标信息;若利用所述上一加密参与节点的公钥对所述目标信息中签名信息验签通过,将所述目标信息中的第二信息和第二加密信息确定为待进行加密的第一信息。
优选的,所述利用随机生成的第一加密信息对所述第一信息进行加密得到第二信息,包括:
根据高级加密标准aes算法生成随机的第一加密信息,所述第一加密信息由密钥和初始向量iv构成;
将所述iv作为盐值salt,通过所述密钥和所述salt对所述第一信息进行加密得到第二信息。
优选的,所述采用所述加密参与节点的公钥对所述第一加密信息进行加密得到第二加密信息,包括:
利用所述加密参与节点的公钥分别对所述密钥和所述salt进行加密,得到加密后的密钥和加密后的salt。
优选的,所述根据所述目标信息将所述第二信息存储至分布式网络,包括:
对所述目标信息中的签名信息进行哈希计算得到哈希结果;
根据所述哈希结果确定所述分布式网络中对应所述哈希结果的主节点;
将所述目标信息中的第二信息作为备份信息存储至所述主节点,所述主节点用于将所述备份信息备份至所述分布式网络中与所述主节点关联的备份节点。
优选的,还包括:
存储容灾信息至接入平台,所述容灾信息包括所述目标信息中的第二加密信息、签名信息、区块的区块号区间,以及加密参与节点信息。
优选的,还包括:
向接入平台发送数据恢复请求;
接收所述接入平台响应所述数据恢复请求从所述分布式网络中获取的至少一个目标备份信息,至少一个目标备份信息中每个目标备份信息均携带所述数据恢复请求指示恢复的区块内容;
确定与所述目标备份信息相关的加密参与节点信息指示的加密参与节点序列对应的反向序列,依次所述反向序列中每个加密参与节点对所述目标备份信息进行解密得到所述目标备份信息中的区块;
从所述至少一个目标备份信息中每个所述目标备份信息中的区块中获取所述数据恢复请求指示恢复的区块;
其中,所述接入平台响应所述数据恢复请求从所述分布式网络中获取的至少一个目标备份信息,包括:所述接入平台响应所述数据恢复请求,确定指示所述数据恢复请求所请求恢复的区块的目标容灾信息,从所述分布式网络中查询与所述目标容灾信息中的签名信息对应的备份信息,所述目标容灾信息中的加密参与节点信息与所查询到的备份信息相关。
一种区块链信息容灾装置,应用于区块链中的加密参与节点,该装置包括:
第一信息确定单元,用于确定待进行加密的第一信息,所述第一信息为待进行备份的区块或者所述区块经过加密后得到的目标区块;
第二信息生成单元,用于利用随机生成的第一加密信息对所述第一信息进行加密得到第二信息;
加密单元,用于采用所述加密参与节点的公钥对所述第一加密信息进行加密得到第二加密信息;
签名单元,用于利用所述加密参与节点的私钥对所述第二信息和所述第二加密信息的加密结果进行签名得到签名信息;
下一加密参与节点确定单元,用于确定所述区块链中是否存在下一加密参与节点;
信息传输单元,用于如果所述区块链中存在下一加密参与节点,将目标信息传输至所述下一加密参与节点;所述目标信息由所述第二信息、所述第二加密信息、所述签名信息、所述区块的区块号区间,以及加密参与节点信息构成,所述加密参与节点信息指示历史依次用于对所述区块进行加密的各个加密参与节点;
信息存储单元,用于如果所述区块链中不存在下一加密参与节点,根据所述目标信息将所述第二信息存储至分布式网络。
一种计算机设备,包括:处理器以及存储器,所述处理器以及存储器通过通信总线相连;其中,所述处理器,用于调用并执行所述存储器中存储的程序;所述存储器,用于存储程序,所述程序用于实现所述区块链信息容灾方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器加载并执行,实现所述区块链信息容灾方法的各步骤。
本申请提供一种区块链信息容灾方法、装置、计算机设备及存储介质,应用于区块链中的加密参与节点,该方法包括:确定待进行加密的第一信息;利用随机生成的第一加密信息对第一信息进行加密得到第二信息;采用加密参与节点的公钥对第一加密信息进行加密得到第二加密信息;利用加密参与节点的私钥对第二信息和第二加密信息的加密结果进行签名得到签名信息;确定区块链中是否存在下一加密参与节点;如果区块链中存在下一加密参与节点,将目标信息传输至下一加密参与节点;如果区块链中不存在下一加密参与节点,根据目标信息将第二信息存储至分布式网络。本申请依赖于分布式网络实现对区块链信息的灾备,在消除全节点隐患的基础上,实现了对区块链信息的容灾。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本申请提供一种区块链信息容灾方法,该区块链信息容灾方法可以认为是基于分布式网络的灾备和数据恢复方案,通过dht技术能够将区块链信息分散到不同的节点,同时依赖dht网络自带的节点管理来实现数据的灾备,这样一来消除了全节点的隐患,同时灾备恢复的效率也极大的提升。
示例性的,区块链可以为联盟链、区块链信息可以为区块链中的账本。以上仅仅是本申请实施例提供的一种区块链信息的优选内容,有关区块链信息的具体内容,本领域技术人员可根据自己的需求进行设置,在此不做限定。
下面结合图1所示的区块链信息容灾系统对区块链信息容灾方法进行详细说明。
本申请实施例,分布式网络中的节点可以称为分布式节点,也可以称为分布式备份节点,如图1所示的分布式备份节点采用独立的备份节点,如果参与的联盟链节点足够多,可以通过联盟链节点组建分布式节点。
本申请提供的区块链信息容灾方法主要是基于分布式网络技术进行灾备,并在此基础上提供一系列加解密算法流程和平台接入管理流程,以下主要通过三个方面进行介绍。
(一)灾难备份
灾备主要包括两个步骤:备份数据加密和分布式节点备份
示例性的,备份数据也可以称为备份信息。
1、备份数据加密
这里的数据加密,分为两个过程,对区块内容进行对称加密,对对称加密的密钥进行RSA加密。为了数据的安全,防止密钥泄露,可以引进多个参与者对数据进行多轮加密,主要流程参见图2-3。如图2-3所示,主要流程如下:
1)节点A(发起节点)通过aes算法,生成随机的密钥和随机的iv做为salt,通过密钥和salt对需要备份的区块进行加密,可以选择单个区块,也可以选择多个区块,常规做法是为了加密效率,会选择多个区块做为一个整体进行加密。
2)节点A再使用自己的RSA公钥对这里的key和salt分别进行加密,得到加密后的key和加密后的salt
3)最后,节点A对加密后的数据,加密后的key和加密后的salt进行sha256后,并使用RSA的私钥进行签名
4)节点A根据自己的需要,选择参与加密节点(随机或者指定),把加密后的数据,加密后的key和加密后的salt,签名信息,备份的区块号区间([m,n]),加密参与节点(有序数字,依据签名的数据)传给节点B
5)节点B接收到节点A的信息,首先通过节点A的公钥对A的签名进行验签,验签通过后,把加密后的数据、加密后的key和加密后的salt做为一个整体进行AES加密,重复2-4的过程并发给节点C。这里节点B的密钥,可以是专门的加密密钥,也可以根据不同节点生成不同的密钥对,为安全起见,还可以把该密钥通过发起人的公钥加密托管到一个安全的托管服务,防止节点退出密钥丢失。
6)如此循环,待所有的参加节点加密完之后,发往备份节点。这里需要注意的是,节点A选择的参与节点,加密是有顺序的,解密的时候需要逆向操作,所以需要保存参与节点的加密顺序,节点A可以保存一份,也可以在备份接入平台保存一份。
2、分布式节点备份
基于分布式节点备份,是本申请的主要亮点,分布式网络采用dht算法的对等网络,前期参与节点较少,可以委托专门的节点充当备份节点,如果参与节点达到一定的规模,可以在参与节点中构建dht网络,最大程度降低资源成本。以下的dht算法采用经典的chord算法为例,实际使用过程中,可以根据需要选用不同的算法,比如:kad,can等
1)如图4所示,通过对最终加密后的区块内容进行特定的hash算法,计算出对应的cid,通过dht算法,找到对应的“主节点”,Nid(dht网络中每个节点都可以成为主节点,主节点和备份节点是相对的),进行数据备份。
2)每个“主节点”,会选择其后面最近的n个节点做为备选节点,备选节点可以可以通过“主节点”广播或者备份节点主动发起心跳的方式,得知是否有新的数据产生,如果有,对新的数据进行备份。
3)当有新的节点加入和离开的时候,需要更新相应节点的前驱后继,这部分可以参考经典chord算法【1】,不在本申请阐述的重点,除此之外,还需要更新节点的存储。比如,新节点A加入的时候,需要复制其后继节点的所有内容,A的第1~n个后继节点,都有做为第n个后继节点备份的数据,现在已经变为第n+1个节点了,相应的内容可以置为无效,合适的时候删除,以释放更多的空间;当有节点退出的时候,相反,其后的1~n个节点,做为第n个备份节点,需要复制一部分节点内容,保证所有备份节点数据的完整性。
(二)数据恢复
数据备份过程做为灾备的逆向操作,结合图5其过程大致分为以下几个步骤:
1寻找备份内容:节点可以有选择的恢复某些区块或者全部区块,先通过节点唯一标识和需要恢复的区块区间,查到对应的一系列hashKey(备份接入平台会有介绍),通过该hashKey值可以在dht网络里查到对应的备份信息。
2发起节点请求备份节点对备份内容进行解密,同样也是逆向处理,主要是通过对应的私钥对key和salt进行解密,然后通过解密后的key和salt对加密内容进行解密,解密的流程需要遵循一定的顺序:source=sk_A(sk_B(...(sk_n(target)))
3发起节点最终拿到需要恢复的数据和数据对应的区间(起始区块号),对自己所在链进行数据恢复。
(三)备份接入平台
1、备份的接入,需要注册一些信息,只有授予了token才能在该平台进行备份。
2、备份平台,需要维护发起备份节点唯一标识,区块区间和存储的hashKey,用于查找备份数据,大致流程如图6所示,具体如下:
1)通过唯一标识,可以查找该节点的所有备份信息
2)通过区块区间,可以选择需要恢复的数据对应的hashKey列表
3)获得hashKey后,通过特定的哈希算法,可以得到对应节点的大概位置
4)最后再用dht算法,查到具体的节点,进而拿到备份的数据。
需要说明的是,本申请实例上的对称算法使用AES加密流程说明,实际业务可以选择适合自己的加密算法,比如DES之类的;非对称加密算法使用RSA的算法做为说明,实际业务可以选择适合自己的非对称加密算法,比如ECC等;本申请加密数据的维度以块为单位,单个块或者多个块,实际实施的时候可以采用时间的数序,按照时间的节点进行备份;本申请的分布式备份节点采用chord模型做为解说,实际上还可以使用kad等dht网络拓扑模式。
下面结合图7从区块链的加密参与节点的角度对本申请实施例提供的一种区块链信息容灾方法进行详细说明。
如图7所示的区块链信息容灾方法应用于区块链中的加密参与节点,该方法包括:
S701、确定待进行加密的第一信息,第一信息为待进行备份的区块或者区块经过加密后得到的目标区块;
示例性的,若加密参与节点为区块链中的发起节点时,发起节点可以确定自身待进行备份的区块,其自身待进行备份的区块可以认为是待进行加密的第一信息。
示例性的,若加密参与节点不为区块链中的发起节点,加密参与节点可以接收其他加密参与节点发送的目标信息,为了便于区分,可以将其他加密参与节点称为上一加密参与节点;进而利用上一加密参与节点的公钥对目标信息中的签名信息进行验签,在验签通过后,将目标信息中的第二信息和第二加密信息作为待进行加密的第一信息。
有关目标信息的具体内容请参见步骤S706的详细描述,在此不做赘述。
S702、利用随机生成的第一加密信息对第一信息进行加密得到第二信息;
本申请实施例,加密参与节点确定待进行加密的第一信息后,可以根据高级加密标准aes算法生成随机的第一加密信息,第一加密信息由密钥和初始向量iv构成;将iv作为盐值salt,通过密钥和salt对第一信息进行加密得到第二信息。
示例性的,加密参与节点确定待进行加密的第一信息后,可以通过aes算法生成随机的密钥和随机的iv作为salt,通过密钥和salt对第一信息进行加密,加密后的第一信息可以认为是第二信息。
S703、采用加密参与节点的公钥对第一加密信息进行加密得到第二加密信息;
本申请实施例,加密参与节点确定待进行加密的第一信息,利用随机生成的密钥和随机生成的iv作为salt对第一信息进行加密得到第二信息后,利用加密参与节点的公钥分别对密钥和salt进行加密,得到加密后的密钥和加密后的salt,加密后的密钥和加密后的salt可以称为第二加密信息。
S704、利用加密参与节点的私钥对第二信息和第二加密信息的加密结果进行签名得到签名信息;
本申请实施例,加密参与节点对第二信息和第二加密信息进行加密得到加密结果,并利用该加密参与节点的私钥对加密结果进行签名得到签名信息。
示例性的,加密参与节点确定待进行加密的第一信息,利用随机生成的密钥和随机生成的iv作为salt对第一信息进行加密得到第二信息后,利用该加密参与节点的公钥分别对密钥和salt分别进行加密,得到加密后的密钥和加密后的salt,并对加密后的密钥和加密后的salt进行sha256得到加密结果,进而使用该加密参与节点的私钥对该加密结果进行签名得到签名信息,该签名信息可以认为是hashkey。
S705、确定区块链中是否存在下一加密参与节点;如果区块链中存在下一加密参与节点,执行步骤S706;如果区块链中不存在下一加密参与节点,执行步骤S707;
示例性的,若加密参与节点为发起节点,加密参与节点可以根据当前的第二信息、第二加密信息、签名信息、第一信息的区块号区间,以及加密参与节点信息构成一个目标信息;其中,第一信息的区块号区间指示第一信息在该加密参与节点的区块号,该加密参与节点信息指示加密参与节点序列,该加密参与节点序列指示该加密参与节点。进一步的,如果该加密参与节点确定存在下一个加密参与节点,将其构成的目标信息传输至下一加密参与节点;如果该加密参与节点确定不存在下一加密参与节点,将其构成的目标信息中的第二信息存储至分布式网络。
示例性的,若加密参与节点不为发起节点,加密参与节点可以从上一加密参与节点发送的目标信息中获取加密参与节点信息,确定该加密参与节点信息指示的加密参与节点序列,将该加密参与节点序列的尾部加入该加密参与节点,以实现对加密参与节点信息的更新,得到更新后的加密参与节点信息;进而,可以根据当前的第二信息、第二加密信息、签名信息、第一信息的区块号区间,以及更新后的加密参与节点信息构成一个目标信息;其中,第一信息的区块号区间指示加密之前的第一信息在其所属区块的区块号。进一步的,如果该加密参与节点确定存在下一个加密参与节点,将其构成的目标信息传输至下一加密参与节点;如果该加密参与节点确定不存在下一加密参与节点,将其构成的目标信息中的第二信息存储至分布式网络。
比如,若区块链由5个节点构成,分别为节点1、节点2、节点3、节点4以及节点5;节点2为发起节点,节点2将其至少一个区块作为待进行备份的区块,以至少一个区块为节点2中的区块号为3、区块号为4以及区块号为5的区块为例,节点2对待进行备份的区块进行加密后构成目标信息1,目标信息1中的区块号区间指示节点2中的区块3-区块5,且目标信息1中的加密参与节点信息指示的加密参与节点序列由节点2构成;节点2若确定下一个加密参与节点为节点5,则节点2将目标信息1发送至节点5进行进一步加密,节点5在加密完成后构成目标信息2,目标信息2中的区块号区间指示节点2中的区块3-区块5,且目标信息2中的加密参与节点信息指示的加密参与节点序列依次由节点2和节点5构成。进一步的,节点2若确定不存在下一个加密参与节点,则将目标信息1中的第二信息存储至分布式网络。
S706、将目标信息传输至下一加密参与节点;目标信息由第二信息、第二加密信息、签名信息、区块的区块号区间,以及加密参与节点信息构成,加密参与节点信息指示历史依次用于对区块进行加密的各个加密参与节点;
S707、根据目标信息将第二信息存储至分布式网络。
本申请实施例中,根据目标信息将第二信息存储至分布式网络的方式可以为:对目标信息中的签名信息进行哈希计算得到哈希结果;根据该哈希结果确定分布式网络中对应哈希结果的主节点;将目标信息中的第二信息作为备份信息存储至主节点,主节点用于将备份信息备份至分布式网络中与主节点关联的备份节点。
示例性的,可以采用哈希算法对目标信息中的签名信息进行哈希计算得到哈希结果;进而采用dht算法对哈希结果进行计算,以找到分布式网络中与签名信息对应的主节点,进而将目标信息中的第二信息作为备份信息存储至分布式网络中的该主节点。进一步的,该主节点还用于将其存储的备份信息存储至分布式网络中与其对应的备份节点。
需要说明的是,根据目标信息将第二信息存储至分布式网络的方式可以为经由接入平台根据目标信息将第二信息存储至分布式网络。示例性的,接入平台可以认为是上述备份接入平台。
进一步的,本申请实施例在经由接入平台将目标信息中的第二信息存储至分布式网络后,还可以在分布式网络中存储一条容灾信息,该容灾信息包括该目标信息中的第二加密信息、签名信息、区块的区块号区间,以及加密参与节点信息。
需要说明的是,区块的区块号区间不仅指示区块的区块号,还指示区块在区块链中所属的节点。
本申请实施例提供的一种区块链信息容灾方法,不仅能够实现将区块链中区块的内容备份至分布式网络,还能够将分布式网络中的备份信息恢复至区块链。有关区块信息的恢复方法请参见图8。如图8所示,该方法包括:
S801、向接入平台发送数据恢复请求;
S802、接收接入平台响应数据恢复请求从分布式网络中获取的至少一个目标备份信息,至少一个目标备份信息中每个目标备份信息均携带数据恢复请求指示恢复的区块内容;
本申请实施例,区块链可以响应用户操作向接入平台发送数据恢复请求,数据恢复请求指示请求恢复的区块;相应的,接入平台可以响应数据恢复请求,从存储的容灾信息中确定指示数据恢复请求所请求恢复的区块的至少一个目标容灾信息,进而针对每个目标容灾信息分别执行如下过程:从分布式网络中查询与该目标容灾信息中的签名信息对应的备份信息(为了便于区分,可以将查询到的备份信息称为目标备份信息),该目标容灾信息中的加密参与节点信息与所查询到的备份信息相关。
S803、确定与目标备份信息相关的加密参与节点信息指示的加密参与节点序列对应的反向序列,依次反向序列中每个加密参与节点对目标备份信息进行解密得到目标备份信息中的区块;
示例性的,针对至少一个目标容灾信息中的每个目标容灾信息而言,从分布式网络中查询与该目标容灾信息中的签名信息对应的备份信息(为了便于区分,可以将该备份信息称为目标备份信息),确定该目标容灾信息的加密参与节点信息指示的加密参与节点序列的反向序列,依次由反向序列中每个加密参与节点信息对该目标备份信息进行解密得到的该目标备份信息中的区块。这样,针对至少一个目标容灾信息中的每个目标容灾信息均可以得到相应的目标备份信息,所有的目标备份信息可以称为至少一个目标备份信息。
S804、从至少一个目标备份信息中每个目标备份信息中的区块中获取数据恢复请求指示恢复的区块。
示例性的,获取至少一个目标备份信息中每个目标备份信息中的区块后,可以从获取到的所有区块中确定数据恢复请求至少恢复的区块,进而将所确定的区块恢复至区块链中的相应位置。
本申请实施例提供一种区块量信息容灾方法,应用于区块链中的加密参与节点,该方法包括:确定待进行加密的第一信息;利用随机生成的第一加密信息对第一信息进行加密得到第二信息;采用加密参与节点的公钥对第一加密信息进行加密得到第二加密信息;利用加密参与节点的私钥对第二信息和第二加密信息的加密结果进行签名得到签名信息;确定区块链中是否存在下一加密参与节点;如果区块链中存在下一加密参与节点,将目标信息传输至下一加密参与节点;如果区块链中不存在下一加密参与节点,根据目标信息将第二信息存储至分布式网络。本申请依赖于分布式网络实现对区块链信息的灾备,在消除全节点隐患的基础上,实现了对区块链信息的容灾。
图9为本申请实施例提供的一种区块链信息容灾装置的结构示意图,如图9所示的区块链信息容灾装置应用于区块链中的加密参与节点,该装置包括:
第一信息确定单元901,用于确定待进行加密的第一信息,第一信息为待进行备份的区块或者区块经过加密后得到的目标区块;
第二信息生成单元902,用于利用随机生成的第一加密信息对第一信息进行加密得到第二信息;
加密单元903,用于采用加密参与节点的公钥对第一加密信息进行加密得到第二加密信息;
签名单元904,用于利用加密参与节点的私钥对第二信息和第二加密信息的加密结果进行签名得到签名信息;
下一加密参与节点确定单元905,用于确定区块链中是否存在下一加密参与节点;
信息传输单元906,用于如果区块链中存在下一加密参与节点,将目标信息传输至下一加密参与节点;目标信息由第二信息、第二加密信息、签名信息、区块的区块号区间,以及加密参与节点信息构成,加密参与节点信息指示历史依次用于对区块进行加密的各个加密参与节点;
信息存储单元907,用于如果区块链中不存在下一加密参与节点,根据目标信息将第二信息存储至分布式网络。
本申请实施例中,优选的,若第一信息为待进行备份的区块,加密参与节点为区块链中的发起节点。
或者,
本申请实施例中,优选的,若第一信息为区块经过加密后得到的目标区块,第一信息确定单元,包括:
信息接收单元,用于接收上一加密参与节点发送的目标信息;
第一信息确定子单元,用于若利用上一加密参与节点的公钥对目标信息中签名信息验签通过,将目标信息中的第二信息和第二加密信息确定为待进行加密的第一信息。
本申请实施例中,优选的,第二信息生成单元包括:
第一加密信息生成单元,用于根据高级加密标准aes算法生成随机的第一加密信息,第一加密信息由密钥和初始向量iv构成;
第二信息生成子单元,用于将iv作为盐值salt,通过密钥和salt对第一信息进行加密得到第二信息。
本申请实施例中,优选的,加密单元具体用于利用加密参与节点的公钥分别对密钥和salt进行加密,得到加密后的密钥和加密后的salt。
本申请实施例中,优选的,信息存储单元,包括:
哈希计算单元,用于对目标信息中的签名信息进行哈希计算得到哈希结果;
主节点确定单元,用于根据哈希结果确定分布式网络中对应哈希结果的主节点;
信息存储子单元,用于将目标信息中的第二信息作为备份信息存储至主节点,主节点用于将备份信息备份至分布式网络中与主节点关联的备份节点。
进一步的,本申请实施例提供的一种区块链信息容灾装置还包括:
容灾信息存储单元,用于存储容灾信息至接入平台,容灾信息包括目标信息中的第二加密信息、签名信息、区块的区块号区间,以及加密参与节点信息。
进一步的,本申请实施例提供的一种区块链信息容灾装置还包括数据恢复单元,该数据恢复单元,包括:
数据恢复请求发送单元,用于向接入平台发送数据恢复请求;
目标备份信息确定单元,用于接收接入平台响应数据恢复请求从分布式网络中获取的至少一个目标备份信息,至少一个目标备份信息中每个目标备份信息均携带数据恢复请求指示恢复的区块内容;
解密单元,用于确定与目标备份信息相关的加密参与节点信息指示的加密参与节点序列对应的反向序列,依次反向序列中每个加密参与节点对目标备份信息进行解密得到目标备份信息中的区块;
区块确定单元,用于从至少一个目标备份信息中每个目标备份信息中的区块中获取数据恢复请求指示恢复的区块;
其中,接入平台响应数据恢复请求从分布式网络中获取的至少一个目标备份信息,包括:接入平台响应数据恢复请求,确定指示数据恢复请求所请求恢复的区块的目标容灾信息,从分布式网络中查询与目标容灾信息中的签名信息对应的备份信息,目标容灾信息中的加密参与节点信息与所查询到的备份信息相关。
如图10所示,为本申请实施例提供的计算机设备的一种实现方式的结构图,该计算机设备包括:
存储器1001,用于存储程序;
处理器1002,用于执行程序,程序具体用于:
确定待进行加密的第一信息,第一信息为待进行备份的区块或者区块经过加密后得到的目标区块;
利用随机生成的第一加密信息对第一信息进行加密得到第二信息;
采用加密参与节点的公钥对第一加密信息进行加密得到第二加密信息;
利用加密参与节点的私钥对第二信息和第二加密信息的加密结果进行签名得到签名信息;
确定区块链中是否存在下一加密参与节点;
如果区块链中存在下一加密参与节点,将目标信息传输至下一加密参与节点;目标信息由第二信息、第二加密信息、签名信息、区块的区块号区间,以及加密参与节点信息构成,加密参与节点信息指示历史依次用于对区块进行加密的各个加密参与节点;
如果区块链中不存在下一加密参与节点,根据目标信息将第二信息存储至分布式网络。
处理器1002可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit)。
控制设备还可以包括通信接口1003以及通信总线1004,其中,存储器1001、处理器1002以及通信接口1003通过通信总线1004完成相互间的通信。
本申请实施例还提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器加载并执行,实现上述的区块链信息容灾方法的各步骤,具体实现过程可以参照上述实施例相应部分的描述,本实施例不做赘述。
本申请实施例提供一种区块链信息容灾方法、装置、计算机设备及存储介质,应用于区块链中的加密参与节点,该方法包括:确定待进行加密的第一信息;利用随机生成的第一加密信息对第一信息进行加密得到第二信息;采用加密参与节点的公钥对第一加密信息进行加密得到第二加密信息;利用加密参与节点的私钥对第二信息和第二加密信息的加密结果进行签名得到签名信息;确定区块链中是否存在下一加密参与节点;如果区块链中存在下一加密参与节点,将目标信息传输至下一加密参与节点;如果区块链中不存在下一加密参与节点,根据目标信息将第二信息存储至分布式网络。本申请依赖于分布式网络实现对区块链信息的灾备,在消除全节点隐患的基础上,实现了对区块链信息的容灾。
以上对本发明所提供的一种区块链信息容灾方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。