CN113568785B - 一种基于区块链的数据备份方法、装置、设备及存储介质 - Google Patents
一种基于区块链的数据备份方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113568785B CN113568785B CN202111110619.4A CN202111110619A CN113568785B CN 113568785 B CN113568785 B CN 113568785B CN 202111110619 A CN202111110619 A CN 202111110619A CN 113568785 B CN113568785 B CN 113568785B
- Authority
- CN
- China
- Prior art keywords
- data
- original data
- original
- integrity information
- cloud storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的数据备份方法、装置、设备及存储介质,该方法包括:获取原始数据;对所述原始数据进行处理,以获取原始完整性信息;将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;对所述原始数据进行编码,以获取编码块;将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。通过将原始数据编码得到的编码块存储到云存储平台,以及将原始数据的原始完整性信息存储到服务器的区块链网络中,有效减少了云存储数据备份产生的存储开销。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的数据备份方法、装置、设备及存储介质。
背景技术
当前,云计算与大数据技术对社会快速渗透,越来越多的用户选择使用云存储平台托管大量应用和数据,随着用户业务逐渐上云,用户的数据也开始极度依赖云存储平台,现有技术通常采用多副本机制对数据进行冗余备份,多副本机制将数据备份多个副本并且存储在不同的存储节点上,这种方式给云存储带来了成倍上涨的存储开销,当数据量达到海量时则造成存储空间的严重浪费。
由此可见,现有技术对云存储数据的备份存在浪费空间的问题。
发明内容
本发明的主要目的在于提供一种基于区块链的数据备份方法、装置、设备及存储介质,旨在解决现有技术对云存储数据的备份存在浪费空间的技术问题。
根据本发明的第一方面,提供了一种基于区块链的数据备份方法,所述方法包括以下步骤:
获取原始数据;
对所述原始数据进行处理,以获取原始完整性信息;
将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;
对所述原始数据进行编码,以获取编码块;
将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。
可选地,所述对所述原始数据进行处理,以获取原始完整性信息的步骤,包括:
计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为原始数据ID;
计算所述原始数据的长度得到第二计算结果,并将所述第二计算结果确定为原始数据长度;
通过Hash函数计算所述原始数据得到第三计算结果,并将所述第三计算结果确定为原始数据Hash;
基于所述原始数据ID、原始数据长度及原始数据Hash,获取所述原始完整性信息。
可选地,所述对所述原始数据进行处理,以获取原始完整性信息的步骤之前,所述方法还包括:
发送获取公私钥对的第四请求至所述服务器。
可选地,所述公私钥对包括公钥和私钥;
所述计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为原始数据ID的步骤,包括:
通过所述私钥计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为所述原始数据ID。
可选地,所述编码块包括数据块和冗余块;
所述,对所述原始数据进行编码,以获取编码块的步骤,包括:
判断所述原始数据是否能够平均分割;
若所述原始数据能够平均分割,将所述原始数据平均分割成数据块;
对所述数据块进行编码,以获取数据块和冗余块。
可选地,所述判断所述原始数据是否能够平均分割的步骤之后,所述方法还包括:
若所述原始数据不能够平均分割,在所述原始数据的末尾填充数据,以使所述原始数据能够平均分割。
根据本发明的第二方面,提供了一种基于区块链的数据备份装置,包括:
第一获取模块,用于获取原始数据;
第二获取模块,用于对所述原始数据进行处理,以获取原始完整性信息;
第一发送模块,用于将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;
第三获取模块,用于对所述原始数据进行编码,以获取编码块;
第二发送模块,用于将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。
可选地,所述装置还包括:
第三发送模块,用于发送获取公私钥对的第四请求至所述服务器
根据本发明的第三方面,提供了一种基于区块链的数据备份设备,包括:存储器、处理器以及存储在所述存储器并可在所述处理器上运行的基于区块链的数据备份程序,所述基于区块链的数据备份程序在被所述处理器执行时实现第一方面的实现方式中的任一种可能的实现方式中所述的各个步骤。
根据本发明的第四方面,提供了一种存储介质,其上存储有基于区块链的数据备份程序,所述基于区块链的数据备份程序被处理器执行时实现第一方面的实现方式中的任一种可能的实现方式中所述的各个步骤。
本发明实施例提出的一种基于区块链的数据备份方法、装置、设备及存储介质,该方法包括:获取原始数据;对所述原始数据进行处理,以获取原始完整性信息;将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;对所述原始数据进行编码,以获取编码块;将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。通过将原始数据编码得到的编码块存储到云存储平台,以及将原始数据的原始完整性信息存储到服务器的区块链网络中,有效减少了云存储数据备份产生的存储开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例方案涉及的硬件运行环境的基于区块链的数据备份设备结构示意图;
图2为本发明基于区块链的数据备份方法第一实施例的流程示意图;
图3为本发明基于区块链的数据备份装置第一实施例的流程示意图;
图4为本发明实施例方案涉及的场景第一实施例的示意图;
图5为本发明实施例方案涉及的场景第二实施例的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取原始数据;对所述原始数据进行处理,以获取原始完整性信息;将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;对所述原始数据进行编码,以获取编码块;将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。
由于现有技术对云存储数据的备份存在浪费空间的问题。
本发明提供一种解决方案,通过将原始数据编码得到的编码块存储到云存储平台,以及将原始数据的原始完整性信息存储到服务器的区块链网络中,有效减少了云存储数据备份产生的存储开销。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的说明书和权利要求书中的“第一”、“第二”用于区别类似的对象,而不必用于描述特定的顺序或者先后次序,应该理解这样的数据在适当的情况下可以互换,以便这里描述的实施例能够以除了这里图示或者描述的那些以外的顺序实施。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于区块链的数据备份设备结构示意图;
通常,基于区块链的数据备份设备包括:至少一个处理器1001、存储器1002以及存储在所述存储器上并可在所述处理器上运行的基于区块链的数据备份程序,所述基于区块链的数据备份程序配置为实现如前所述的基于区块链的数据备份方法的步骤。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关基于区块链的数据备份方法的操作,使得基于区块链的数据备份方法模型可以自主训练学习,提高效率和准确度。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本申请中方法实施例提供的基于区块链的数据备份方法。
在一些实施例中,终端还可选包括有:通信接口1003和至少一个外围设备。处理器1001、存储器1002和通信接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005和电源1006中的至少一种。
通信接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和通信接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和通信接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,电子设备的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在一些实施例中,显示屏1005可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
电源1006用于为电子设备中的各个组件进行供电。电源1006可以是交流电、直流电、一次性电池或可充电电池。当电源1006包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。本领域技术人员可以理解,图1中示出的结构并不构成对基于区块链的数据备份设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述硬件结构,提出本发明基于区块链的数据备份方法的实施例。
参照图2,图2为本发明基于区块链的数据备份方法第一实施例的流程示意图,所述方法包括以下步骤:
S100,获取原始数据;
需要说明的是,本实施例的执行主体为用户端,用户端可以是具有通信功能的终端设备,例如:手机、电脑、平板等。原始数据可为用户需要存储到云存储平台的数据,具体地,用户端通过用户的输入获取原始数据。
S300,对所述原始数据进行处理,以获取原始完整性信息;
可以理解的是,原始完整性信息由原始数据经过处理生成,可用于表征原始数据的完整性。
进一步地,步骤S300之前,所述方法还包括:
S200,发送获取公私钥对的第四请求至所述服务器。
需要说明的是,用户端通过网络与服务器进行交互,服务器是计算机的一种,在网络中为其他终端设备提供计算或应用服务。本实施例中的服务器包含区块链网络,服务器可通过区块链网络为用户端提供区块链服务。
在具体实现中,用户端与服务器之间的网络交互运行模式可为C/S模式,服务器可采用RPC(Remote Procedure Call,远程过程调用)通信协议与用户端进行通信,RPC调用是面向服务的封装,服务器通过RPC在通信上封装服务,以使用户端可以通过RPC调用来获取服务器所提供服务的细节,并与服务器之间传输数据。例如,服务器通过RPC将区块链以服务的形式封装起来,以使用户端可以通过RPC调用区块链服务的接口以及使用区块链服务。
在用户端与服务器进行交互之前,用户端需要向服务器申请区块链服务的账户。具体地,用户端发送第四请求至服务器,可以理解,第四请求为获取公私钥对的请求,从而通过服务器申请区块链账户并保存账户的公私钥。其中,账户的公私钥由服务器发送给申请区块链账户的用户端。需要说明的是,服务器可提供CA(Certificate Authority,电子认证)服务,采用ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名)算法生成公私钥对。当服务器接收到用户获取公私钥对的请求时,为用户分配区块链账户,并通过ECDSA算法生成公私钥对并发送给用户端,以使用户端保存该公私钥对,并利用私玥计算数据ID和进行数字签名以及利用公钥作为账户的身份标识。
进一步地,步骤S300的具体实施过程包括:
S302,计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为原始数据ID;
进一步地,所述公私钥对包括公钥和私钥;
S322,通过所述私钥计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为所述原始数据ID。
在一种实现方式中,可通过私钥计算通用唯一识别码UUID,然后将该UUID和原始数据名称组合起来得到第一计算结果,并将该第一计算结果作为原始数据ID。具体地,用户端将私钥编码为字节数组并通过该字节数组计算出UUID,该UUID中存在连接符“-”,删除UUID中的连接符“-”可以得到一个字符串,将该字符串和原始数据名称连接就可以得到第一计算结果,最后将该第一计算结果作为原始数据ID。这种方式计算得到的原始数据ID能够保证原始数据ID的唯一性。
在另一种实现方式中,用户端可以将私钥编码为字节数组并且转换为第一字符串,然后将第一字符串与原始数据名称连接以组合成第二字符串,通过第二字符串计算出UUID,该UUID中存在连接符“-”,删除UUID中的连接符“-”就可以得到第一计算结果,最后将该第一计算结果作为原始数据ID。这种方式计算得到的原始数据ID长度更短,而且也能保证唯一性。
可以理解,标准的UUID格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (长度分别为8-4-4-4-12)”,因此删除连接符后可以得到一个32位的字符串。
S304,计算所述原始数据的长度得到第二计算结果,并将所述第二计算结果确定为原始数据长度;
具体地,可以字节为单位计算原始数据的长度,得到第二计算结果,并将该第二计算结果确定为原始数据长度。
S306,通过Hash函数计算所述原始数据得到第三计算结果,并将所述第三计算结果确定为原始数据Hash;
具体地,可通过Hash函数SHA-256(Secure Hash Algorithm 256)计算原始数据得到第三计算结果,并将该第三计算结果确定为原始数据Hash。
S308,基于所述原始数据ID、原始数据长度及原始数据Hash,获取所述原始完整性信息。
将计算得到的原始数据ID、原始数据长度及原始数据Hash打包,即可获得原始数据的原始完整性信息。
S500,将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;
在本实施例中,用户端将原始完整性信息发送至服务器,以使服务器将原始完整性信息存储在区块链网络中。
应当理解的是,服务器中的区块链网络可用于存放原始数据的原始完整性信息。区块链以时间顺序构造了以区块为基本单元的链式结构,每个区块由区块头和区块体两部分组成,其中,区块体中存放由大量数据构成的Merkle树(默尔克树);区块头中主要存放协议版本、前块Hash、Merkle根、时间戳、随机数等。在区块链中,所有区块以Hash指针的形式串联形成一种特殊的链表。区块链基于Merkle树和区块链表这两种数据结构保障了数据的不可篡改性。通过Merkle树,树内所有数据的篡改都可被检测到,根据Merkle树的节点到Merkle根路径上的直接分支,可以判断本区块中是否存在指定数据;通过区块链表,所有区块环环相扣,依靠前块Hash指针,任一区块的改变都会引发其后所有区块Hash指针的连锁改变,当从区块链网络中获取区块链表时,基于块Hash可以验证链上各块是否被修改过,其中,前块Hash中存放了前一区块的块Hash。通过区块链技术构造出的特殊的链式数据结构,具有去中心化、防篡改、防删除等安全特性。
服务器使用联盟链作为区块链技术的实施方案,联盟链中的用户只有经过授权才能对数据进行验证等操作。此外,为了保存用户的数字资产信息以便于管理,可将属于一个用户的数据完整性信息单独存放在一个区块中,相应地,在区块结构体中增加消息字段,用于保存用户的相关信息。
在具体实现中,该消息字段与用户端获取到的公钥存在对应关系,在用户端获取到服务器发送的公私钥对后,用户端以公钥作为账户的身份标识,以私钥进行数字签名。可以理解,服务器通过用户端的公钥验证用户端的数字签名,同时可以通过公钥查询区块链网络中对应的消息字段,从而获取到该消息字段所在区块的数字资产信息,可以理解,该数字资产信息为持有该公钥用户端的部分或全部数字资产。
S700,对所述原始数据进行编码,以获取编码块;
通常,用户端通过网络与云存储平台进行交互,将原始数据存储到云存储平台,这种方式一旦原始数据丢失就难以找回。本实施例中的用户端对原始数据进行编码,将编码得到的编码块存储到云存储平台,可以理解,原始数据编码得到的编码块可以有多个,编码块在云存储平台中分散存储,当出现编码块的丢失时,可以通过剩余的编码块对数据进行恢复。
需要说明的是,用户端可采用纠删码算法对原始数据进行编码,根据纠删码算法预设数据块的份数和计算生成冗余块的份数,用户端对原始数据编码以生成编码块,进一步地,将编码块存储到云存储平台,再通过云存储平台获取到编码块,由于,云存储平台中的编码块可能被篡改或丢失,对从云存储平台获取到的编码块进行解码,可以获得云存储数据。
在本实施例中,可选择柯西RS(Reed-Solomon)编码作为纠删码技术方案,使用JErasure库中实现的编解码函数作为调用的方法来对用户的数据进行编解码,JErasure库提供一般的RS编码方式,是基于C语言的纠删码的类库。其中,柯西RS编码使用柯西矩阵代替范德蒙RS编码中的范德蒙行列式,能够更简单地生成矩阵,提高计算效率。
应当理解的是,编码块包括数据块和冗余块,柯西RS编码方案中,可以选择原始数据分割成数据块的份数以及计算生成冗余块的份数。通过柯西RS编码,只需要数据块份数的编码块就可以解码生成云存储数据,同时可以容忍不超过冗余块份数的编码块出错。
进一步地,步骤S700的具体实施过程包括:
S702,判断所述原始数据是否能够平均分割;
进一步地,步骤S702之后,所述方法还包括:
S703,若所述原始数据不能够平均分割,在所述原始数据的末尾填充数据,以使所述原始数据能够平均分割。
在具体实现中,用户端根据预设的数据块份数,计算原始数据长度是否能够按照数据块份数进行平均分割,从而判断原始数据是否能够平均分割,若原始数据不能平均分割,在原始数据末尾填充数据,以使原始数据能够平均分割。其中,填充数据可以是数字0。
S704,若所述原始数据能够平均分割,将所述原始数据平均分割成数据块;
S706,对所述数据块进行编码,以获取数据块和冗余块。
可以理解的是,若原始数据能够平均分割,则平均分割原始数据,并且将平均分割得到的数据块表示为列向量,构造柯西矩阵与该列向量相乘以生成新的列向量,该新列向量以数据的形式体现就是数据块和冗余块。
在本实施例中,预设的数据块份数和冗余块份数可以是(5,2),即用户端可以选择使用RS(5,2)纠删编码,通过该编码,可以将原始数据平均分割为5份数据块,并计算生成2份数据冗余块。理论上通过该编码的运算,生成的编码块需要使用原始数据的140%的空间开销,并且任意不大于2份编码块的损坏都不会使原始数据彻底失去可用性。这种纠删编码备份方式比起现有技术中常用的多副本备份方式,具有更小的空间开销和更高的容错能力。
S900,将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。
在本实施例中,用户端将编码块发送至云存储平台,以使云存储平台存储编码块。
需要说明的是,在云存储平台的集群中,用户端可以是集群外部的设备,也可以是构成集群的一个存储节点。当用户端为集群外部的设备时,参照图4,服务器运行在云存储平台外,用户端的用户为集群外的普通用户,用户使用云存储平台提供的云存储空间存放数据的编码块,同时使用服务器中的区块链网络存放数据的原始完整性信息,并在使用数据前从区块链网络中获取原始数据长度以及验证数据完整性;当用户端为构成集群的一个存储节点时,参照图5,服务器运行在云存储集群内,为了保证必要的计算能力,服务器可被部署在计算能力更强的控制节点,此时,集群内的存储节点将数据的原始完整性信息存储到服务器中的区块链网络,以使数据的完整性信息不被篡改和删除。
进一步地,当用户端再次使用原始数据时,则需要通过网络与云存储平台、服务器进行交互,可以理解,用户端从云存储平台获取原始数据的编码块,对编码块进行解码获得云存储数据,再计算云存储数据的实时完整性信息并发送到服务器与原始数据的原始完整性信息进行比对,若实时完整性信息与原始完整性信息一致,则云存储数据与原始数据一致,用户可以直接使用云存储数据。其中,实时完整性信息由云存储数据经过处理生成,可用于表征云存储数据的完整性。
需要说明的是,当用户端从云存储平台获取原始数据的编码块时,可向云存储平台发送第一请求,以获取原始数据的编码块。其中,第一请求可以是向云存储平台获取原始数据的编码块的请求。
在具体实现中,第一请求中可以包括原始数据名称,也即用户端以原始数据名称作为数据的交互凭证,从而向云存储平台获取原始数据名称对应的编码块,该原始数据名称对应的编码块解码后可获得云存储数据,也即编码块与云存储数据存在对应关系。当然,也可以其他数据属性作为数据交互凭证,在此不做限定。
需要说明的是,由原始数据编码生成的编码块最末块可能填充有无关数据,因此用户端对编码块进行解码需要获取原始数据的原始长度信息,以指定数据长度进行解码,从而获取到正确的云存储数据。
在本实施例中,可向服务器发送第二请求,以获取原始数据的原始数据长度。其中,第二请求可以是用户端获取原始数据长度的请求,原始数据的原始数据长度存储在服务器的区块链网络中。
在具体实现中,第二请求中可以包括原始数据ID,也即用户端以原始数据ID作为数据的交互凭证,从而向服务器获取原始数据ID对应的原始数据长度,当然也可以其他数据属性作为数据交互凭证,在此不做限定。
可以理解的是,服务器可包括区块链网络,该区块链网络用于存放原始数据的原始完整性信息,该原始完整性信息包括原始数据的原始数据长度和原始数据ID,原始数据ID与原始数据长度存在对应关系。
服务器接收到第二请求后,可从区块链网络中直接获取原始数据长度。具体地,服务器中可提供直接获取原始数据长度的接口,通过该接口可以根据第二请求中的原始数据ID返回对应的原始数据长度。
用户端从云存储平台获取到编码块以及从服务器获取到原始数据长度后,通过纠删码技术对编码块进行解码,应当理解,用户端获取到的编码块为全部的数据块。在本实施例中,用户端基于原始数据长度,对全部数据块进行解码,以获取云存储数据。
进一步地,用户端计算云存储数据的实时完整性信息,并将计算得到的实时完整性信息发送到服务器,以使所述服务器查找区块链网络中是否存在与所述实时完整性信息一致的原始完整性信息,以获得查找结果。
由于,编码块在云存储平台中存在被篡改的风险,通过验证实时完整性信息是否与原始完整性信息一致,可以验证原始数据的编码块是否被篡改。在本实施例中,服务器将原始数据的原始完整性信息存储到区块链网络中,当用户使用服务器的数据完整性验证服务时,需要通过私钥对实时完整性信息进行数字签名,用户端发送实时完整性信息、数字签名至服务器,以使服务器通过用户端的公钥验证用户端的数字签名,若验证不通过,则返回错误信息至用户端;若验证通过,则在区块链网络中查找是否存在与实时完整性信息一致的原始完整性信息,从而进行数据完整性验证。
在具体实现中,服务器遍历整个区块链网络,以查找每一个区块的区块体中是否存在与实时完整性信息一致的原始完整性信息,进一步地,遍历区块体中的Merkle树,以查找树内是否存在与实时完整性信息一致的原始完整性信息。
由于,完整性信息包括数据ID、数据长度及数据Hash,可以理解,当实时完整性信息中的实时数据ID、实时数据长度及实时数据Hash与原始完整性信息中的原始数据ID、原始数据长度及原始数据Hash一一对应时,可以得出实时完整性信息与原始完整性信息一致的结果,也即云存储数据完整性正确,其数据内容未被篡改;若在实时完整性信息与原始完整性信息的验证中,数据ID、数据长度及数据Hash这三种数据属性至少有一种属性不一致,则说明实时完整性信息与原始完整性信息不一致,也即云存储数据完整性不正确,其数据内容已被篡改,此时云存储数据不可用,需要在用户端进行数据恢复。
需要说明的是,用户端接收到服务器返回的验证结果,若结果表明云存储数据完整性正确时,用户端可直接使用该云存储数据;若结果表明云存储数据完整性不正确时,用户端需要进行数据恢复。由于,云存储数据由编码块解码获得,当进行数据恢复时,需要重新获取云存储数据对应的编码块。
应当理解的是,在数据完整性验证之前,用户端从云存储平台获取到的编码块为全部的数据块,当进行数据恢复时,需要向云存储平台获取全部的冗余块。
在数据恢复的具体实现中,用户端向云存储平台发送第三请求,以获取原始数据对应的全部冗余块,同时向服务器发送第二请求以获取原始数据的原始数据长度。基于原始数据长度,通过纠删码技术,将全部冗余块和数据块进行解码,以获取新的云存储数据。在获取到新的云存储数据后,再按照前述步骤的方法重新验证数据的完整性,若验证结果表明新的云存储数据完整性正确时,则数据恢复成功;若验证结果表明新的云存储数据完整性仍然不正确时,则数据无法恢复。可以理解,当数据无法恢复时,用户端向用户输出错误信息,以使用户得知该数据已被损坏。
在本实施例中,第三请求可以是向云存储平台获取原始数据对应的冗余块的请求。在具体实现中,第三请求可以包括原始数据名称,也即用户端以原始数据名称作为数据的交互凭证,从而向云存储平台获取原始数据名称对应的冗余块,当然,也可以其他数据属性作为数据交互凭证,在此不做限定。
此外,对于不同存储类型的云存储平台:文件级云存储、对象级云存储及块级云存储,都可以集成本实施例的方法。在集成本实施例方法的过程中,云存储平台无需任何额外设置,只需在云存储客户端集成本实施例方法的用户端代码。应当理解,用户端进行编码或解码时,所采用的纠删码算法对于不同存储类型的云存储平台所处理的数据对象不同:对于文件级云存储,处理的数据对象为文件系统中的文件;对于对象级云存储,处理的数据对象为对象存储系统中的对象。
对于不同服务范围的云存储平台:公有云、私有云、混合云,本实施例的方法可以独立运行。在公有云中,将本实施方法的服务器运行于单独的云服务器中,用户端采用独立的网络分别与云存储平台和服务器通信和交互;在私有云中,本实施例方法的服务器可运行在本地私有云中高可用的服务器中,部署方式和公有云类似,只是网络连接由互联网变成了质量更佳的本地局域网;混合云中具有公私两个云中心,为保护用户数据的隐私,可将服务器运行于本地私有云中心,部署方式和私有云类似。
通过以上实施例,获取原始数据;对所述原始数据进行处理,以获取原始完整性信息;将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;对所述原始数据进行编码,以获取编码块;将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。通过将原始数据编码得到的编码块存储到云存储平台,以及将原始数据的原始完整性信息存储到服务器的区块链网络中,有效减少了云存储数据备份产生的存储开销。
参照图3,图3为本发明基于区块链的数据备份装置第一实施例的流程示意图。
所述装置包括:
第一获取模块100,用于获取原始数据;
第二获取模块300,用于对所述原始数据进行处理,以获取原始完整性信息;
第一发送模块500,用于将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;
第三获取模块700,用于对所述原始数据进行编码,以获取编码块;
第二发送模块900,用于将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块。
进一步地,所述服务器存储有公私钥对;
所述装置还包括:
第三发送模块200,用于发送获取公私钥对的第四请求至所述服务器。
基于区块链的数据备份装置的具体执行步骤,参照上文描述,此处不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于区块链的数据备份程序,所述基于区块链的数据备份程序被处理器执行时实现如上文方法实施例所述的基于区块链的数据备份方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个基于区块链的数据备份设备上执行,或者在位于一个地点的多个基于区块链的数据备份设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个基于区块链的数据备份设备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种基于区块链的数据备份方法,其特征在于,所述方法包括以下步骤:
获取原始数据;
对所述原始数据进行处理,以获取原始完整性信息;其中,所述原始完整性信息用于表征所述原始数据的完整性;
将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;
对所述原始数据进行编码,以获取编码块;
将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块,从而用户端能够从所述云存储平台获取所述原始数据的编码块,并依据所述原始完整性信息确定解码所述编码块得到的云存储数据是否与所述原始数据一致;
其中,对所述原始数据进行处理,以获取原始完整性信息的步骤,包括:
计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为原始数据ID;
计算所述原始数据的长度得到第二计算结果,并将所述第二计算结果确定为原始数据长度;
通过Hash函数计算所述原始数据得到第三计算结果,并将所述第三计算结果确定为原始数据Hash;
基于所述原始数据ID、原始数据长度及原始数据Hash,获取所述原始完整性信息。
2.如权利要求1所述的方法,其特征在于,所述对所述原始数据进行处理,以获取原始完整性信息的步骤之前,所述方法还包括:
发送获取公私钥对的第四请求至所述服务器。
3.如权利要求2所述的方法,其特征在于,所述公私钥对包括公钥和私钥;
所述计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为原始数据ID的步骤,包括:
通过所述私钥计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为所述原始数据ID。
4.如权利要求1所述的方法,其特征在于,所述编码块包括数据块和冗余块;
所述对所述原始数据进行编码,以获取编码块的步骤,包括:
判断所述原始数据是否能够平均分割;
若所述原始数据能够平均分割,将所述原始数据平均分割成数据块;
对所述数据块进行编码,以获取数据块和冗余块。
5.如权利要求4所述的方法,其特征在于,所述判断所述原始数据是否能够平均分割的步骤之后,所述方法还包括:
若所述原始数据不能够平均分割,在所述原始数据的末尾填充数据,以使所述原始数据能够平均分割。
6.一种基于区块链的数据备份装置,其特征在于,所述装置包括:
第一获取模块,用于获取原始数据;
第二获取模块,用于对所述原始数据进行处理,以获取原始完整性信息;其中,所述原始完整性信息用于表征所述原始数据的完整性;
第一发送模块,用于将所述原始完整性信息发送至服务器,以使所述服务器将所述原始完整性信息存储在区块链网络;
第三获取模块,用于对所述原始数据进行编码,以获取编码块;
第二发送模块,用于将所述编码块发送至云存储平台,以使所述云存储平台存储所述编码块,从而用户端能够从所述云存储平台获取所述原始数据的编码块,并依据所述原始完整性信息确定解码所述编码块得到的云存储数据是否与所述原始数据一致;
其中,所述第二获取模块还用于:
计算所述原始数据的通用唯一识别码UUID得到第一计算结果,并将所述第一计算结果确定为原始数据ID;
计算所述原始数据的长度得到第二计算结果,并将所述第二计算结果确定为原始数据长度;
通过Hash函数计算所述原始数据得到第三计算结果,并将所述第三计算结果确定为原始数据Hash;
基于所述原始数据ID、原始数据长度及原始数据Hash,获取所述原始完整性信息。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于发送获取公私钥对的第四请求至所述服务器。
8.一种基于区块链的数据备份设备,其特征在于,所述设备包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的基于区块链的数据备份程序,所述基于区块链的数据备份程序在被所述处理器执行时实现如权利要求1-5中任一项所述方法的各个步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有基于区块链的数据备份程序,所述基于区块链的数据备份程序被处理器执行时实现如权利要求1-5中任一项所述方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111110619.4A CN113568785B (zh) | 2021-09-23 | 2021-09-23 | 一种基于区块链的数据备份方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111110619.4A CN113568785B (zh) | 2021-09-23 | 2021-09-23 | 一种基于区块链的数据备份方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113568785A CN113568785A (zh) | 2021-10-29 |
CN113568785B true CN113568785B (zh) | 2021-12-31 |
Family
ID=78173987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111110619.4A Active CN113568785B (zh) | 2021-09-23 | 2021-09-23 | 一种基于区块链的数据备份方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568785B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002141B (zh) * | 2022-06-06 | 2024-04-12 | 上海加密原生科技有限公司 | 基于区块链的文件存储方法及装置 |
CN115437852B (zh) * | 2022-11-07 | 2023-02-03 | 四川大学 | 一种基于灾备恢复和文件分区表的快速区块链系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271283A (zh) * | 2018-09-06 | 2019-01-25 | 北京云测信息技术有限公司 | 一种基于区块链的数据备份方法 |
US10628268B1 (en) * | 2016-12-15 | 2020-04-21 | EMC IP Holding Company LLC | Proof of data replication consistency using blockchain |
CN111414431A (zh) * | 2020-04-28 | 2020-07-14 | 武汉烽火技术服务有限公司 | 基于区块链技术的网络运维数据容灾备份管理方法及系统 |
CN111428271A (zh) * | 2020-04-17 | 2020-07-17 | 上海坤仪金科信息技术有限公司 | 一种区块链云存储用户数据安全解决方法 |
CN111953699A (zh) * | 2020-08-17 | 2020-11-17 | 汪金玲 | 一种基于区块链的数据加密方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10992458B2 (en) * | 2019-01-16 | 2021-04-27 | EMC IP Holding Company LLC | Blockchain technology for data integrity regulation and proof of existence in data protection systems |
CN110149198A (zh) * | 2019-04-29 | 2019-08-20 | 成都信息工程大学 | 一种自主可控地对数据进行安全保护与存储的系统和方法 |
CN111082941B (zh) * | 2019-11-22 | 2022-12-20 | 天翼物联科技有限公司 | 基于区块链技术的物联网数据共享方法和系统 |
CN111708657B (zh) * | 2020-06-04 | 2022-07-22 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链查询的系统备份及验证方法 |
CN112054897B (zh) * | 2020-08-13 | 2021-08-03 | 武汉大学 | 基于区块链的保护隐私的外包物联网数据及其备份的完整性校验方法 |
-
2021
- 2021-09-23 CN CN202111110619.4A patent/CN113568785B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628268B1 (en) * | 2016-12-15 | 2020-04-21 | EMC IP Holding Company LLC | Proof of data replication consistency using blockchain |
CN109271283A (zh) * | 2018-09-06 | 2019-01-25 | 北京云测信息技术有限公司 | 一种基于区块链的数据备份方法 |
CN111428271A (zh) * | 2020-04-17 | 2020-07-17 | 上海坤仪金科信息技术有限公司 | 一种区块链云存储用户数据安全解决方法 |
CN111414431A (zh) * | 2020-04-28 | 2020-07-14 | 武汉烽火技术服务有限公司 | 基于区块链技术的网络运维数据容灾备份管理方法及系统 |
CN111953699A (zh) * | 2020-08-17 | 2020-11-17 | 汪金玲 | 一种基于区块链的数据加密方法及系统 |
Non-Patent Citations (2)
Title |
---|
"Blockchain data-based cloud data integrity protection mechanism";PengCheng Wei;《Future Generation Computer Systems》;20200131;第102卷;第902-911页 * |
"区块链节点存储优化方案研究";江云超;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210115(第01期);第I137-92页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113568785A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553627B (zh) | 基于区块链的数据完整性验证方法、系统、设备及介质 | |
CN109491968B (zh) | 一种文件处理方法、装置、设备及计算机可读存储介质 | |
CN113568785B (zh) | 一种基于区块链的数据备份方法、装置、设备及存储介质 | |
CN108647230B (zh) | 分布式存储方法、电子装置及存储介质 | |
CN110119643A (zh) | 二维码生成方法及装置、二维码识别方法及装置 | |
CN109496419B (zh) | 文件处理方法、装置和系统 | |
US10992481B2 (en) | Two-dimensional code generation method, apparatus, data processing method, apparatus, and server | |
CN101964789B (zh) | 安全访问受保护资源的方法及系统 | |
CN112491549B (zh) | 数据信息加密校验方法、系统及计算机可读存储介质 | |
CN108632020A (zh) | 数据发送方法、接收方法及装置 | |
CN111639080B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN115269038A (zh) | 无状态计算的数据处理方法、程序产品及电子设备 | |
CN111478751B (zh) | 一种数据断点续传方法、装置及终端设备 | |
CN113568786B (zh) | 一种数据恢复方法、装置、设备及存储介质 | |
CN113515075A (zh) | 一种通过低功耗远距离射频无线网络智能控制系统及方法 | |
CN112463067A (zh) | 一种NVMe-oF场景下的数据保护方法及设备 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
KR102375144B1 (ko) | 블록체인을 이용하여 개인키를 관리하는 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
CN105809051A (zh) | 基于加密卡的企业密钥分发方法以及基于加密卡的报税方法 | |
CN114880630A (zh) | 软件使用权限的获取方法与装置 | |
CN111343150B (zh) | 一种基于区块链的交易数据传输方法、系统及相关组件 | |
CN111949738A (zh) | 基于区块链的数据存储去重方法、终端设备和存储介质 | |
CN111818526A (zh) | 一种数据同步方法及装置 | |
CN110912974A (zh) | 资源处理方法、装置、电子设备及计算机可读取存储介质 | |
CN205176854U (zh) | 一种移动终端应用软件加密装置及应用有该装置的移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |