去中心化数据存储方法及系统、电子设备、存储介质与流程

文档序号:14253147阅读:242来源:国知局
去中心化数据存储方法及系统、电子设备、存储介质与流程

本发明涉及数据存储领域,尤其涉及一种去中心化数据存储方法及系统、电子设备、存储介质。



背景技术:

随着科技的发展,云存储也越来越多的被用户接受。用户可以将文件上传至云存储的网盘中。网盘为用户提供文件的存储、访问、备份、共享等多种文件管理功能,方便用户管理、编辑网盘里的文件。但这种存储方式也存在问题,如断电、服务器宕机等原因造成网盘中的数据集中化丢失等风险。进一步,使用网盘也存在传输速度慢、冗灾备份、恢复能力低、安全性差、企业营运成本高、用户收费高等问题。另一方面,由于硬件设备、软件技术的发展,使得存储系统的价格也越来越低廉,存储容量也越来越大,也导致了普通用户具有大量的存储空间闲置的情况。

因此,需要一种利用普通用户闲置的大量存储空间,且存储价格将比中心化网盘存储更低廉,文件存储更安全的去中心化数据存储方法。



技术实现要素:

本发明的发明目的是针对现有技术的缺陷,提供了一种去中心化数据存储方法及系统、电子设备、存储介质,用于解决现有技术中普通用户大量存储空间闲置、网盘收费高、文件存储存在风险等问题。

根据本发明的一个方面,提供了一种去中心化数据存储方法,包括:

用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;

多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存;

多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播;其中,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成;

用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储待存储文件的存储节点。

根据本发明的另一个方面,还提供了一种去中心化数据存储系统,包括:用户节点和多个待选择的存储节点;

用户节点用于:构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储待存储文件的存储节点;

待选择的存储节点用于:根据用户节点广播的数据交易信息下载待存储文件并保存;对多个第一回执进行用于身份认证的签名并广播;其中,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成。

根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述去中心化数据存储方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述去中心化数据存储方法对应的操作。

根据本发明提供的去中心化数据存储方法及系统、电子设备、存储介质,用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存;多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成;用户节点根据预设选取算法选取一个或多个广播的第一回执对应的存储节点作为存储所述待存储文件的存储节点。通过本发明,可以有效的避免由于断电、服务器宕机等原因造成现有技术网盘中的数据集中化丢失等风险。同时,将大量空闲的存储空间加以利用,更节省资源。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的去中心化数据存储方法的流程示意图;

图2示出了根据本发明另一个实施例的去中心化数据存储方法的流程示意图;

图3示出了根据本发明一个实施例的去中心化数据存储系统的功能结构示意图;

图4示出了根据本发明一个实施例的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的去中心化数据存储方法的流程示意图,如图1所示,该方法具体包括如下步骤:

步骤s101,用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播。

本发明基于p2p网络实现,其中,用户节点可以指的是支付交易金额作为存储文件费用的用户所使用的终端设备。用户终端设备可以是客户端,也可以是服务器。用户节点选择想要存储的文件作为待存储文件,并根据待存储文件构建数据交易信息。其中,数据交易信息携带有待存储文件。为保护待存储文件的安全,用户节点可以对待存储文件进行加密,具体加密算法根据实施情况可由用户节点自行选择。数据交易信息中还包括了存储时长、冗余份数、交易支付金额等。存储时长即用户节点准备将待存储文件存储的时间。冗余份数为用户节点指定的待存储文件备份存储的份数。交易支付金额为用户节点为待存储文件支付的存储费用。交易支付金额可以使用如比特币、以太坊等支付方式。如通过数字签名等方式将用户节点本身持有的金额的所有权转移到智能合约。其中,智能合约中规定了取出金额的条件,如取出金额时,需要向智能合约发送具有用户节点和取出者签名的回执。交易支付金额为用户节点为待存储文件按照冗余份数支付的总的存储费用,如交易支付金额500,冗余份数10份,待存储文件1份存储的费用为500/10=50。

用户节点构建数据交易信息后,使用自己私有的私钥对数据交易信息进行签名,从而该数据交易信息中可以携带有使用该用户节点的用户信息,方便以后对该数据交易信息进行身份认证。在签名后,将签名的数据交易信息广播到全网,方便全网的各个节点收到该数据交易信息。

步骤s102,多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存。

存储节点为提供存储空间,保存待存储文件,赚取交易支付金额的存储空间提供商所使用的存储终端设备。空间提供商可以为普通的计算机使用者,其提供的存储空间可以为普通计算机的磁盘空间。这样,交易支付金额可以远远低于使用中心化存储网盘所需要支付的费用。普通计算机的数量远远多于中心化存储服务器(服务器备份)的数量,所有普通计算机均断电、宕机的概率非常低,保障了使用普通计算机存储待存储文件的安全。和用户节点功能相同,当用户节点作为客户端使用时,存储节点也可以为客户端;当用户节点作为服务器使用时,存储节点也可以为服务器。

存储节点有多个,多个存储节点均为用户节点待选择的存储节点,用户节点最终会从中选择出一个或多个存储节点作为最终的存储节点来存储该待存储文件。多个待选择的存储节点在收听到用户节点广播的数据交易信息后,可以根据数据交易信息下载待存储文件到存储节点的本地进行保存。

步骤s103,多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播。

在多个待选择的存储节点下载并保存完成待存储文件后,多个待选择的存储节点中各个待选择的存储节点均会生成第一回执。其中,第一回执包括了待存储文件哈希、待存储文件的存储时间等信息。每个待选择的存储节点分别对与之相应的第一回执进行签名,从而该第一回执中可以携带有使用该存储节点的存储空间提供商的信息,方便以后对该第一回执进行身份认证。之后,将签名的第一回执广播至全网。

步骤s104,用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点。

用户节点在收听到多个待选择的存储节点广播的第一回执后,可以根据预设选取算法选取其中的一个或多个第一回执对应的存储节点为最终保存待存储文件的存储节点。预设选取算法可以为随机算法,也可以为确定性算法。考虑到确定性算法的计算效率高,优选使用确定性算法。如使用安全散列算法(securehashalgorithm,简称sha)对多个待选择的存储节点求余数,再间隔挑选,选取最终的存储节点。实施时根据实际情况选择合适的确定性算法,此处不做限定。

根据本发明提供的去中心化数据存储方法,用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存;多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成;用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点。通过本发明,可以有效的避免由于断电、服务器宕机等原因造成现有技术网盘中的数据集中化丢失等风险。同时,将大量空闲的存储空间加以利用,更节省资源。

图2示出了根据本发明另一个实施例的去中心化数据存储方法的流程示意图,如图2所示,该方法具体包括如下步骤:

步骤s201,用户节点计算待存储文件的磁力链接,根据磁力链接构建数据交易信息。

用户节点在选择了待存储文件后,计算得到该待存储文件的磁力链接。磁力链接可以确保通过该链接下载的待存储文件准确无误。根据磁力链接构建数据交易信息。其中,数据交易信息携带有待存储文件。为保护待存储文件的安全,用户节点可以对待存储文件进行加密,具体加密算法根据实施情况可由用户节点自行选择。数据交易信息中还包括了存储时长、冗余份数、交易支付金额等。

步骤s202,用户节点对数据交易信息进行用于身份认证的签名及广播。

用户节点构建数据交易信息后,使用自己私有的私钥对数据交易信息进行用于身份认证的签名,并广播到全网,方便全网的各个节点收到该数据交易信息。

步骤s203,多个待选择的存储节点根据广播的数据交易信息判断是否保存待存储文件。

多个待选择的存储节点在收听到用户节点广播的数据交易信息后,可以根据数据交易信息来判断是否保存待存储文件。如多个待选择的存储节点根据数据交易信息中携带的待存储文件的大小、存储时长、交易支付金额来判断是否要保存待存储文件,若待选择的存储节点认为有足够的空间存储待存储文件、存储时长、交易支付金额合理等,可以执行步骤s204。或者待选择的存储节点没有足够的空间存储待存储文件、存储时长和交易支付金额相比不合理(金额过低)等,可以在收听到用户节点广播的数据交易信息后,不做任何处理。

步骤s204,多个待选择的存储节点下载待存储文件并保存。

多个待选择的存储节点在判断要保存待存储文件时,可以根据数据交易信息中的磁力链接下载待存储文件,将其保存在待选择的存储节点的本地。

在多个待选择的存储节点下载待存储文件的同时,可以积累字节年龄(文件字节数*时间)。字节年龄的积累可以用于衡量存储节点是否尽职的保存待存储文件,还用于计算待存储文件的存储时间是否达到了用户节点指定的存储时长。

步骤s205,多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播。

在多个待选择的存储节点下载并保存完成待存储文件后,多个待选择的存储节点会生成第一回执。其中,第一回执包括了待存储文件哈希、待存储文件的存储时间、文件存储信息等信息。多个待选择的存储节点对第一回执进行用于身份认证的签名并广播至全网。

步骤s206,用户节点对多个待选择的存储节点进行检测,判断多个待选择的存储节点是否完整下载待存储文件。

用户节点在收听到第一回执后,可以将第一回执进行保存。然后对多个待选择的存储节点进行检测。具体的,用户节点利用检测算法对多个待选择的存储节点进行检测,检测的目的用于判断多个待选择的存储节点是否完整下载待存储文件,以免待选择的存储节点下载的待存储文件不完整。检测算法可以为如询问多个待选择的存储节点指定文件片段的哈希值。用户节点可以随机选取待存储文件中的偏移量以及长度,抽取出待存储文件的这段数据,计算其哈希值。同时要求已经下载待存储文件的各个待选择的存储节点提供同样偏移量与长度的待存储文件该段数据的哈希值。用户节点检测各个待选择的存储节点计算的哈希值与自己计算的结果是否一致。经过若干次上述的随机检测后,若每次哈希值均一样,则可以认为待存储文件已经被各个待选择的存储节点完全下载。或者,还可以让多个待选择的存储节点利用用户节点指定的一个哈希算法计算文件哈希(整个待存储文件计算文件哈希),与用户节点自己计算文件哈希得到的结果进行验证,若计算结果一致,则可以认为待存储文件已经被待选择的存储节点完全下载。对完整下载待存储文件的多个待选择的存储节点,继续执行步骤s207;对没有完整下载待存储文件的多个待选择的存储节点,不做任何处理。

可选地,对没有将待存储文件完全下载的存储节点的第一回执可以丢弃,不对其进行后续处理。

进一步,多个存储节点之间还可以相互检测,如存储节点之间随机选取待存储文件中的偏移量以及长度,抽取出待存储文件的这段数据,计算其哈希值。同时要求其他存储节点提供同样偏移量与长度的待存储文件该段数据的哈希值,以检测是否与自己计算的结果一致。这样可以便于剔除虚假的存储节点。多个存储节点之间还可以通过交换各自存储文件的指定部分数据信息,检测是否有虚假存储节点的存在。通过多个存储节点之间的相互检测,可以提供给给用户节点更好的服务。

步骤s207,用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储待存储文件的存储节点。

用户节点经步骤s206可以检测出已经将待存储文件完全下载的存储节点,再根据预设选取算法从这些存储节点中选取最终的存储节点。用户节点根据预设选取算法从中选取其中的一个或多个第一回执对应的存储节点为最终保存待存储文件的存储节点。预设选取算法可以为随机算法,也可以为确定性算法。考虑到确定性算法的计算效率高,优选使用确定性算法。如使用安全散列算法(securehashalgorithm,简称sha)对多个待选择的存储节点求余数,再间隔挑选,选取最终的存储节点。实施时根据实际情况选择合适的确定性算法,此处不做限定。

步骤s208,用户节点对选取的第一回执进行用于身份认证的签名,得到第二回执并进行广播。

用户节点对选取的第一回执使用私钥进行用于身份认证的签名,即标明选择这些第一回执对应的存储节点作为最终存储节点。用户节点对第一回执进行签名得到第二回执。第二回执中包含了待存储文件哈希、待存储文件的存储时间、文件存储信息等信息及存储节点的签名。同时,第二回执中还包含了用户节点的签名。用户节点广播第二回执至全网。存储节点可以根据第二回执中自己的签名,保存该第二回执。

步骤s209,用户节点广播携带有第二回执的取回指令。

当用户节点需要取回已经存储的待存储文件时,用户节点广播携带有第二回执的取回指令至全网。其中,第二回执为用户节点从多个第二回执中随机选取的一个或多个第二回执,以便取回对应的存储节点所存储的待存储文件。用户节点选取多个第二回执,以防止有些存储节点发生问题,无法返回待存储文件。如存储节点提前释放了待存储文件、宕机、网络信号不佳无法连接等。

步骤s210,存储节点根据取回指令中的第二回执,获取对应的存储文件返回给用户节点。

存储节点收听到取回指令后,根据取回指令携带的第二回执上的自己的签名、文件存储信息(如文件存储地址等信息)可以从磁盘上找到对应存储的文件(即用户节点的待存储文件)。

取回指令中还可以包含用户节点的ip地址等信息,方便存储节点可以与用户节点建立点对点连接,将对应的存储文件直接返回给用户节点。避免存储文件过大,全网广播造成网络堵塞等问题。进一步,当用户节点广播的取回指令中携带了多个第二回执时,多个第二回执对应的多个存储节点均返回存储文件给用户节点。用户节点可以根据自己的需要,随机的选择任一个存储节点,保存该存储节点返回的存储文件,对其他的存储节点返回的存储文件不再保存;或者也可以对多个存储节点返回的存储文件进行保存,方便备份等需求。

步骤s211,释放已存储的待存储文件,获取用户节点支付的交易支付金额。

在待存储文件的存储时间超过存储时长的情况下,存储节点可以通过广播第二回执来获取待存储文件的费用。如存储节点广播针对智能合约的第二回执,根据第二回执中用户节点的签名和存储节点的签名,可以获取到智能合约中用户节点支付的交易支付金额。存储节点为了获取交易支付金额,会在待存储文件到达存储时长后主动广播。第二回执中记录了待存储文件的存储时间,检测当前时间-待存储文件的存储时间的值是否大于或等于存储时长,若大于或等于存储时长,即存储节点已经完成用户节点要求的存储时长,可以释放已经存储的待存储文件,并获取用户节点支付的交易支付金额。也可以认为存储节点获取到一笔通过时间(存储时长)锁定的未花费的交易输出(unspenttransactionoutputs,简称utxo)。当到达存储时长后,自动变为存储节点可花费的金额。解锁可以采用全网共识进行解锁,有效的防止存储节点提前获取到交易支付金额。

根据本发明提供的去中心化数据存储方法,有效的检测了存储节点是否完整保存待存储文件,保障了待存储文件的完整性。用户节点取回时,存储节点可以通过点对点直接将文件返回给用户节点,减少网络堵塞。存储节点可以在到达存储时长后,主动广播第二回执,以便获取用户节点支付的交易支付金额。

图3示出了根据本发明一个实施例的去中心化数据存储系统的功能框图,如图3所示,本系统中包含用户节点310和多个待选择的存储节点320。

本发明基于p2p网络实现,其中,用户节点310可以指的是支付交易金额作为存储文件费用的用户所使用的用户终端设备。用户终端设备可以是客户端,也可以是服务器。存储节点320为提供存储空间,保存待存储文件,赚取交易支付金额的存储空间提供商所使用的存储终端设备。空间提供商可以为普通的计算机使用者,提供的存储空间可以为普通计算机的磁盘空间。这样,交易支付金额可以远远低于使用中心化存储网盘所需要支付的费用。普通计算机的数量远远多于中心化存储服务器(服务器备份)的数量,所有普通计算机均断电、宕机的概率非常低,保障了使用普通计算机存储待存储文件的安全。和用户节点310功能相同,当用户节点310作为客户端使用时,存储节点320也可以为客户端;当用户节点310作为服务器使用时,存储节点320也可以为服务器。

用户节点310用于构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播。

用户节点310选择想要存储的文件作为待存储文件,并根据待存储文件构建数据交易信息。其中,数据交易信息携带有待存储文件。为保护待存储文件的安全,用户节点310可以对待存储文件进行加密,具体加密算法根据实施情况可由用户节点310自行选择。数据交易信息中还包括了存储时长、冗余份数、交易支付金额等。存储时长即用户节点310准备将待存储文件存储的时间。冗余份数为用户节点310指定的待存储文件备份存储的份数。交易支付金额为用户节点310为待存储文件支付的存储费用。交易支付金额可以使用如比特币、以太坊等支付方式。如通过数字签名等方式将用户节点310本身持有的金额的所有权转移到智能合约。其中,智能合约中规定了取出金额的条件,如取出金额时,需要向智能合约发送具有用户节点310和取出者签名的回执。交易支付金额为用户节点310为待存储文件按照冗余份数支付的总的存储费用,如交易支付金额500,冗余份数10份,待存储文件1份存储的费用为500/10=50。

用户节点310构建数据交易信息时,将选择的待存储文件计算得到该待存储文件的磁力链接。磁力链接可以确保通过该链接下载的待存储文件准确无误。用户节点310根据磁力链接构建数据交易信息。之后,用户节点310使用自己私有的私钥对数据交易信息进行签名,从而该数据交易信息中可以携带有使用该用户节点的用户信息,方便以后对该数据交易信息进行身份认证。在签名后,将签名的数据交易信息广播到全网,方便全网的各个节点收到该数据交易信息。

待选择的存储节点320用于根据用户节点广播的数据交易信息下载待存储文件并保存。

多个待选择的存储节点320在收听到用户节点310广播的数据交易信息后,可以根据数据交易信息来判断是否保存待存储文件。如多个待选择的存储节点320根据数据交易信息中携带的待存储文件的大小、存储时长、交易支付金额来判断是否要保存待存储文件,若待选择的存储节点320认为有足够的空间存储待存储文件、存储时长、交易支付金额合理等,待选择的存储节点320可以下载待存储文件并保存。或者待选择的存储节点320没有足够的空间存储待存储文件、存储时长和交易支付金额相比不合理(金额过低)等,可以在收听到用户节点310广播的数据交易信息后,不做任何处理。

多个待选择的存储节点320在判断要保存待存储文件时,可以根据数据交易信息中的磁力链接下载待存储文件,将其保存在待选择的存储节点320的本地。

在多个待选择的存储节点320下载待存储文件的同时,可以积累字节年龄(文件字节数*时间)。字节年龄的积累可以用于衡量存储节点320是否尽职的保存待存储文件,还用于计算待存储文件的存储时间是否达到了用户节点310指定的存储时长。

待选择的存储节点320用于对多个第一回执进行用于身份认证的签名并广播。

在多个待选择的存储节点320下载并保存完成待存储文件后,多个待选择的存储节点320中各个待选择的存储节点320均会生成第一回执。其中,第一回执包括了待存储文件哈希、待存储文件的存储时间、文件存储信息等信息。每个待选择的存储节点320对分别对与之相应的第一回执进行签名,签名对各个存储节点320的进行身份认证。之后,待选择的存储节点320将签名的第一回执广播至全网。

用户节点310用于根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点320作为存储所述待存储文件的存储节点。

用户节点310在收听到第一回执后,可以将第一回执进行保存。然后对多个待选择的存储节点320进行检测。具体的,用户节点310利用检测算法对多个待选择的存储节点320进行检测,检测的目的用于判断多个待选择的存储节点320是否完整下载待存储文件,以免待选择的存储节点320下载的待存储文件不完整。检测算法可以为如询问多个待选择的存储节点320指定文件片段的哈希值。用户节点310可以随机选取待存储文件中的偏移量以及长度,抽取出待存储文件的这段数据,计算其哈希值。同时要求已经下载待存储文件的各个待选择的存储节点320提供同样偏移量与长度的待存储文件该段数据的哈希值。用户节点310检测各个待选择的存储节点320计算的哈希值与自己计算的结果是否一致。经过若干次上述的随机检测后,若每次哈希值均一样,则可以认为待存储文件已经被待选择的存储节点320完全下载。或者,还可以让多个待选择的存储节点320利用用户节点310指定的一个哈希算法计算文件哈希(整个待存储文件计算文件哈希),与用户节点310自己计算文件哈希得到的结果进行验证,若计算结果一致,则可以认为待存储文件已经被待选择的存储节点320完全下载。

可选地,对没有将待存储文件完全下载的存储节点320的第一回执可以丢弃,不对其进行后续处理。

进一步,多个存储节点320之间还可以相互检测,如存储节点320之间随机选取待存储文件中的偏移量以及长度,抽取出待存储文件的这段数据,计算其哈希值。同时要求其他存储节点320提供同样偏移量与长度的待存储文件该段数据的哈希值,以检测是否与自己计算的结果一致。这样可以便于剔除虚假的存储节点320。多个存储节点320之间还可以通过交换各自存储文件的指定部分数据信息,检测是否有虚假存储节点的存在。通过多个存储节点320之间的相互检测,可以提供给给用户节点310更好的服务。

用户节点310经上述检测可以检测出已经将待存储文件完全下载的待选择的存储节点320,再根据预设选取算法从这些存储节点320中选取最终的存储节点。用户节点310根据预设选取算法从中选取其中的一个或多个第一回执对应的存储节点320为最终保存待存储文件的存储节点。预设选取算法可以为随机算法,也可以为确定性算法。考虑到确定性算法的计算效率高,优选使用确定性算法。如使用安全散列算法(securehashalgorithm,简称sha)对多个待选择的存储节点320求余数,再间隔挑选,选取最终的存储节点。实施时根据实际情况选择合适的确定性算法,此处不做限定。

进一步,用户节点310对选取的第一回执使用私钥进行用于身份认证的签名,即标明选择这些第一回执对应的存储节点320作为最终存储节点。用户节点310对第一回执进行用于身份认证的签名得到第二回执。第二回执中包含了待存储文件哈希、待存储文件的存储时间、文件存储信息等信息及存储节点的签名。同时,第二回执中还包含了用户节点310的签名。用户节点310广播第二回执至全网。存储节点320可以根据第二回执中自己的签名,保存该第二回执。

进一步,当用户节点310需要取回已经存储的待存储文件时,用户节点310广播携带有第二回执的取回指令至全网。其中,第二回执为用户节点从多个第二回执中随机选取的一个或多个第二回执,以便取回对应的存储节点所存储的待存储文件。用户节点选取多个第二回执,以防止有些存储节点发生问题,无法返回待存储文件。如存储节点提前释放了待存储文件、宕机、网络信号不佳无法连接等。存储节点320收听到取回指令后,存储节点320根据取回指令携带的第二回执上的自己的签名、文件存储信息(如文件存储地址等信息)可以从磁盘上找到对应存储的文件(即用户节点的待存储文件)。取回指令中还可以包含用户节点310的ip地址等信息,方便存储节点320可以与用户节点310建立点对点连接,将对应的存储文件直接返回给用户节点310。避免了存储文件过大,全网广播造成网络堵塞等问题。进一步,当用户节点广播的取回指令中携带了多个第二回执时,多个第二回执对应的多个存储节点均返回存储文件给用户节点。用户节点可以根据自己的需要,随机的选择任一个存储节点,保存该存储节点返回的存储文件,对其他的存储节点返回的存储文件不再保存;或者也可以对多个存储节点返回的存储文件进行保存,方便备份等需求。

进一步,在待存储文件的存储时间超过存储时长的情况下,存储节点320可以通过广播第二回执来获取待存储文件的费用。如存储节点320广播针对智能合约的第二回执,根据第二回执中用户节点310的签名和存储节点320的签名,可以获取到智能合约中用户节点310支付的交易支付金额。存储节点320为了获取交易支付金额,会在待存储文件到达存储时长后主动广播。第二回执中记录了待存储文件的存储时间,检测当前时间-待存储文件的存储时间的值是否大于或等于存储时长,若大于或等于存储时长,即存储节点320已经完成用户节点要求的存储时长,可以释放已经存储的待存储文件,并获取用户节点310支付的交易支付金额。也可以认为存储节点320获取到一笔通过时间(存储时长)锁定的未花费的交易输出(unspenttransactionoutputs,简称为utxo)。当到达存储时长后,自动变为存储节点320可花费的金额。解锁可以采用全网共识进行解锁,有效的防止存储节点320提前获取到交易支付金额。

根据本发明提供的去中心化数据存储系统,用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存;多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成;用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点。通过本发明,可以有效的避免由于断电、服务器宕机等原因造成现有技术网盘中的数据集中化丢失等风险。同时,将大量空闲的存储空间加以利用,更节省资源。同时,有效的检测了存储节点是否完整保存待存储文件,保障了待存储文件的完整性。用户节点取回时,存储节点可以通过点对点直接将文件返回给用户节点,减少网络堵塞。存储节点可以在到达存储时长后,主动广播第二回执,以便获取用户节点支付的交易支付金额。

本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的去中心化数据存储方法。

图4示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。

如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(communicationsinterface)404、存储器(memory)406、以及通信总线408。

其中:

处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。

通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器402,用于执行程序410,具体可以执行上述去中心化数据存储方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行以下操作:

在一种可选的实施方式中,程序410用于使得处理器402用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存;多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播;其中,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成;用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储待存储文件的存储节点。

在一种可选的实施方式中,程序410用于使得处理器402数据交易信息包括存储时长、冗余份数和/或交易支付金额。

在一种可选的实施方式中,程序410用于使得处理器402用户节点计算待存储文件的磁力链接,根据磁力链接构建数据交易信息。

在一种可选的实施方式中,程序410用于使得处理器402多个待选择的存储节点根据广播的数据交易信息判断是否保存待存储文件;若是,多个待选择的存储节点下载待存储文件并保存。

在一种可选的实施方式中,程序410用于使得处理器402用户节点对多个待选择的存储节点进行检测,判断多个待选择的存储节点是否完整下载待存储文件。

在一种可选的实施方式中,程序410用于使得处理器402用户节点利用检测算法对多个待选择的存储节点进行检测;检测算法包括询问多个待选择的存储节点指定文件片段的哈希值和/或让多个待选择的存储节点利用哈希算法计算文件哈希验证计算结果。

在一种可选的实施方式中,程序410用于使得处理器402用户节点对选取的第一回执进行签名,得到第二回执并进行广播。

在一种可选的实施方式中,程序410用于使得处理器402用户节点广播携带有第二回执的取回指令;存储节点根据取回指令,获取对应的存储文件返回给用户节点。

在一种可选的实施方式中,程序410用于使得处理器402存储节点广播第二回执,并释放存储的待存储文件,获取用户节点支付的交易支付金额。

在一种可选的实施方式中,程序410用于使得处理器402多个待选择的存储节点之间相互检测和/或交换各自存储文件的数据信息。

程序410中各步骤的具体实现可以参见上述加密程序识别实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

通过本实施例提供的方案,用户节点构建携带有待存储文件的数据交易信息,并对数据交易信息进行用于身份认证的签名及广播;多个待选择的存储节点根据广播的数据交易信息下载待存储文件并保存;多个待选择的存储节点对多个第一回执进行用于身份认证的签名并广播,多个第一回执分别由多个待选择的存储节点在下载并保存完待存储文件后生成;用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点。通过本发明,可以有效的避免由于断电、服务器宕机等原因造成现有技术网盘中的数据集中化丢失等风险。同时,将大量空闲的存储空间加以利用,更节省资源。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:a1.一种去中心化数据存储方法,其特征在于,包括:

用户节点构建携带有待存储文件的数据交易信息,并对所述数据交易信息进行用于身份认证的签名及广播;

多个待选择的存储节点根据广播的所述数据交易信息下载所述待存储文件并保存;

多个所述待选择的存储节点对多个第一回执进行用于身份认证的签名并广播;其中,所述多个第一回执分别由多个所述待选择的存储节点在下载并保存完所述待存储文件后生成;

所述用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点。

a2.根据a1所述的方法,其特征在于,所述数据交易信息包括存储时长、冗余份数和/或交易支付金额。

a3.根据a1所述的方法,其特征在于,所述用户节点构建携带有待存储文件的数据交易信息进一步包括:

用户节点计算待存储文件的磁力链接,根据所述磁力链接构建数据交易信息。

a4.根据a1所述的方法,其特征在于,所述多个所述待选择的存储节点根据广播的所述数据交易信息下载所述待存储文件并保存进一步包括:

多个所述待选择的存储节点根据广播的所述数据交易信息判断是否保存所述待存储文件;

若是,多个待选择的存储节点下载所述待存储文件并保存。

a5.根据a1所述的方法,其特征在于,在所述用户节点根据预设选取算法选取一个或多个广播的回执所对应的存储节点作为存储所述待存储文件的存储节点之前,所述方法还包括:

用户节点对所述多个待选择的存储节点进行检测,判断所述多个待选择的存储节点是否完整下载所述待存储文件。

a6.根据a5所述的方法,其特征在于,所述用户节点对所述多个待选择的存储节点进行检测进一步包括:

用户节点利用检测算法对所述多个待选择的存储节点进行检测;所述检测算法包括询问所述多个待选择的存储节点指定文件片段的哈希值和/或让所述多个待选择的存储节点利用哈希算法计算文件哈希验证计算结果。

a7.根据a1-a6中任一项所述的方法,其特征在于,在所述用户节点根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点之后,所述方法还包括:

用户节点对选取的第一回执进行用于身份认证的签名,得到第二回执并进行广播。

a8.根据a7所述的方法,其特征在于,所述方法还包括:

用户节点广播携带有第二回执的取回指令;

所述存储节点根据所述取回指令中的第二回执,获取对应的存储文件返回给用户节点。

a9.根据a7所述的方法,其特征在于,所述方法还包括:

在所述待存储文件的存储时间超过所述存储时长的情况下,所述存储节点释放已存储的所述待存储文件;

所述存储节点获取用户节点支付的交易支付金额。

a10.根据a1-a6中任一项所述的方法,其特征在于,所述方法还包括:

所述多个待选择的存储节点之间相互检测和/或交换各自存储文件的数据信息。

本发明还公开了:b11.一种去中心化数据存储系统,其特征在于,包括:用户节点和多个待选择的存储节点;

所述用户节点用于:构建携带有待存储文件的数据交易信息,并对所述数据交易信息进行用于身份认证的签名及广播;根据预设选取算法选取一个或多个广播的第一回执所对应的存储节点作为存储所述待存储文件的存储节点;

所述待选择的存储节点用于:根据所述用户节点广播的所述数据交易信息下载所述待存储文件并保存;对多个第一回执进行用于身份认证的签名并广播,其中,所述多个第一回执分别由多个所述待选择的存储节点在下载并保存完所述待存储文件后生成。

b12.根据b11所述的系统,其特征在于,所述数据交易信息还包括存储时长、冗余份数和/或交易支付金额。

b13.根据b11所述的系统,其特征在于,所述用户节点进一步用于:计算待存储文件的磁力链接,根据所述磁力链接构建数据交易信息。

b14.根据b11所述的系统,其特征在于,所述待选择的存储节点进一步用于:

根据广播的所述数据交易信息判断是否保存所述待存储文件;

若是,下载所述待存储文件并保存。

b15.根据b11所述的系统,其特征在于,所述用户节点进一步用于:对所述多个待选择的存储节点进行检测,判断所述多个待选择的存储节点是否完整下载所述待存储文件。

b16.根据b15所述的系统,其特征在于,所述用户节点进一步用于:利用检测算法对所述多个待选择的存储节点进行检测;所述检测算法包括询问所述多个待选择的存储节点指定文件片段的哈希值和/或让所述多个待选择的存储节点利用哈希算法计算文件哈希验证计算结果。

b17.根据b11-b16任一项所述的系统,其特征在于,所述用户节点进一步用于:对选取的第一回执进行用于身份认证的签名,得到第二回执并进行广播。

b18.根据b17所述的系统,其特征在于,所述用户节点进一步用于:广播携带有第二回执的取回指令;

所述存储节点进一步用于:根据所述取回指令中的第二回执,获取对应的存储文件返回给用户节点。

b19.根据b17所述的系统,其特征在于,所述存储节点进一步用于:在所述待存储文件的存储时间超过所述存储时长的情况下,释放已存储的所述待存储文件;获取用户节点支付的交易支付金额。

b20.根据b11-b16中任一项所述的系统,其特征在于,所述多个待选择的存储节点之间相互检测和/或交换各自存储文件的数据信息。

本发明还公开了:c21.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如a1-a10中任一项所述的去中心化数据存储方法对应的操作。

本发明还公开了:d22.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如a1-a10中任一项所述的去中心化数据存储方法对应的操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1