去中心化存储的控制方法、系统及相关设备与流程

文档序号:17762557发布日期:2019-05-24 21:49阅读:471来源:国知局
去中心化存储的控制方法、系统及相关设备与流程

本申请涉及区块链领域,特别是涉及一种去中心化存储的控制方法、系统及相关设备。



背景技术:

在区块链网络的抵押机制中,存储矿工为用户提供数据存储。存储矿工通过提供他们的存储空间和响应put请求来参与区块链网络。要想成为存储矿工,矿工必须用与其承诺的存储空间成比例的抵押品来抵押,存储矿工通过在特定时间存储数据来响应用户请求,在此过程中生成存储证明并提供至区块链网络中来证明他们的在特定时间内存储了客户的目标数据。现有的激励机制较为严格,一旦发现不能提供存储证明或存储证明是无效的,则会对抵押品进行扣除。



技术实现要素:

本申请主要解决的技术问题是提供一种去中心化存储的控制方法、系统及相关设备,能够完善去中心化存储网络,提高网络协作效率。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种去中心化存储的控制方法,所述方法包括:

第一区块链节点监测是否有关于目标文件的预设条件得到满足,其中,所述预设条件包括接收到所述目标修复文件的存储证明;

若监测到有关于所述目标文件的预设条件得到满足,则取消扣除所述目标文件所映射的第一抵押层单元的流程;

否则继续执行扣除所述目标文件所映射的所述第一抵押层单元的流程;

所述第一区块链节点监测是否有关于目标文件的预设条件得到满足包括:监测是否接收到目标修复文件的存储证明,其中,所述目标修复文件是第二区块链节点基于所述目标文件的备份数据修复得到的,且与所述目标文件内容相同的文件;

所述第一区块链节点为执行扣除所述目标文件所映射的第一抵押层单元的流程的区块链节点,所述第二区块链节点为存储有所述目标文件的备份数据并执行修复目标文件任务的区块链节点。

为解决上述技术问题,本申请采用的另一个技术方案是,提供一种去中心化存储的控制方法,所述方法包括:

第三区块链节点检测第四区块链节点是否上传目标文件的存储证明,以判断所述目标文件是否存在异常,所述第四区块链节点为存储所述目标文件的区块链节点;

若检测得到第四区块链节点没有上传所述目标文件的存储证明,则判断所述目标文件存在异常;否则判断所述目标文件不存在异常;

若判断所述目标文件存在异常,上传所述目标文件存在异常的消息至所述第三区块链节点的数据链,以触发第一区块链节点进入扣除所述目标文件所映射的第一抵押层单元的流程,并分配或触发分配修复目标文件任务至第二区块链节点,以使得所述第二区块链节点基于备份数据生成目标修复文件及所述目标修复文件的存储证明,并将所述目标修复文件的存储证明上传至所述第二区块链节点的数据链,进而使得第一区块链节点获知所述目标修复文件存储证明并取消扣除所述目标文件所映射的第一抵押层单元的流程,其中,所述第二区块链节点为存储有所述目标文件的备份数据且执行所述修复目标文件任务的区块链节点,所述第一区块链节点为执行扣除所述目标文件所映射的所述第一抵押层单元的流程的区块链节点,所述目标修复文件是与所述目标文件内容相同的文件。

为解决上述技术问题,本申请采用的另一个技术方案是,提供一种去中心化存储的控制方法,所述方法包括:

第三区块链节点检测第四区块链节点在第二预设时间内是否上传目标文件的存储证明,所述第四区块链节点为存储所述目标文件的区块链节点;

若检测到所述第四区块链节点在所述第二预设时间内未上传对应所述目标文件的所述存储证明,先不执行扣除所述目标文件所映射的第一抵押层单元的流程、或先不通知第一区块链节点执行扣除所述目标文件所映射的所述第一抵押层单元的流程,而自行判断或通知所述第一区块链节点判断在第一预设时间内是否有关于所述目标文件的预设条件得到满足,所述预设条件包括接收到与所述目标文件内容相同的目标修复文件的存储证明,所述第一区块链节点为执行扣除所述目标文件所映射的所述第一抵押层单元的流程的区块链节点;

若所述预设条件得到满足,则取消扣除所述目标文件所映射的所述第一抵押层单元的流程或通知所述第一区块链节点取消扣除所述目标文件所映射的所述第一抵押层单元的流程,否则确定执行扣除所述目标文件所映射的所述第一抵押层单元的流程或通知所述第一区块链节点执行扣除所述目标文件所映射的所述第一抵押层单元的流程。

为解决上述技术问题,本申请采用的另一个技术方案是,提供一种去中心化存储的控制方法,所述方法包括:

第二区块链节点获得目标文件的备份数据并保存,其中,所述目标文件的备份数据包括所述目标文件的原始数据的备份和/或所述目标文件的备份;

当接收到修复所述目标文件任务时,基于所述备份数据生成目标修复文件,所述目标修复文件与所述目标文件内容相同;

生成所述目标修复文件的存储证明并上传至所述第二区块链节点的数据链,以使得第一区块链节点获知并取消扣除目标文件所映射的第一抵押层单元的流程,所述第一区块链节点为执行扣除所述目标文件所映射的第一抵押层单元的流程的区块链节点。

为解决上述技术问题,本申请采用的另一个技术方案是,提供一种区块链节点设备,所述区块链节点设备包括处理器、存储器和通信电路,所述处理器与所述存储器和所述通信电路连接;

其中,所述存储器用于存储程序数据;

所述通信电路用于在所述处理器控制下与其他所述区块链节点设备进行通讯;

所述处理器用于运行所述存储器存储的所述程序数据,以执行如上所述的去中心化存储的控制方法。

为解决上述技术问题,本申请采用的又一个技术方案是,提供一种去中心化存储系统,其特征在于,所述系统包括至少多个区块链节点设备,所述区块链节点设备可运行至少一个区块链节点,所述多个区块链节点设备间可进行点对点通信,所述区块链节点设备为如上所述的设备。

为解决上述技术问题,本申请采用的又一个技术方案是,提供一种存储介质,所述存储介质存储有程序数据,所述程序数据被执行时实现如上所述的去中心化存储的控制方法。

以上方案,第一区块链节点监测是否有关于目标文件的预设条件得到满足,即监测是否接收到目标修复文件的存储证明,当收到目标修复文件的存储证明时则判断有关于目标文件的预设条件得到满足,则取消扣除目标文件所映射的第一抵押层单元的流程,相比于现有技术中若目标文件存在异常直接进行抵押扣除,本申请所提供的技术方案提供了一种具有异常容忍机制的抵押扣除机制,能够完善去中心化存储网络,提高网络协作效率。

附图说明

图1是本申请一种区块链节点设备一实施例的结构示意图;

图2a是本申请一种去中心化存储系统一实施例的结构示意图;

图2b是本申请一种去中心化存储系统另一实施例的结构示意图;

图3是本申请一种去中心化存储的控制方法一实施例的流程示意图;

图4是本申请一种去中心化存储的控制方法一实施例的流程示意图;

图5是本申请一种去中心化存储的控制方法一实施例的流程示意图;

图6是本申请一种去中心化存储的控制方法一实施例的流程示意图;

图7是本申请一种去中心化存储的控制方法另一实施例的流程示意图;

图8是本申请所提出的抵押层单元间的继承关系的结构示意图;

图9是本申请所提出的抵押层单元与封装层目标文件间的映射关系示意图;

图10为本申请一种去中心化存储的控制方法再一实施例的数据修复示意图;

图11为本申请一种去中心化存储的控制方法再一实施例的流程示意图;

图12为本申请一种去中心化存储的控制方法又一实施例的流程示意图;

图13是本申请一种存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

首先需要说明的是,本申请所提供的一种去中心化存储的控制方法实施例可以应用于区块链网络。下面以区块链网络包括多个区块链节点(下文会简称为节点)、每个区块链节点对应为一个矿工为例进行说明。当然,本申请实施例也可以应用于其他形式的区块链节点。

请参见图1,图1为本申请一种区块链节点设备一实施例的结构示意图。在当前实施例中,本申请所提供的区块链节点设备100包括处理器101、存储器102和通信电路103,处理器101与存储器102和通信电路103连接。

其中,存储器102用于存储程序数据,所存储的程序数据被执行时可实现如下文图3至图12及其所对应的任一实施例所述的一种去中心化存储的控制方法。

通信电路103用于在处理器101的控制下与外部区块链节点设备进行通讯,用于对外发送数据或者接收数据。

处理器101用于运行存储器102存储的程序数据,以执行如下图3至图12对应的任一实施例所述的去中心化存储的控制方法。

进一步地,区块链节点设备100为可运行至少一个区块链节点的终端设备,如可以是计算机和服务器等。可以理解地,每一台区块链节点设备100可运行的区块链节点的数量可以是基于区块链节点设备的配置参数进行确定,具体在此不做任何限定。请同时参见图2a和图2b,图2a为本申请一种去中心化存储系统另一实施例的结构示意图,图2b为本申请一种去中心化存储系统另一实施例的结构示意图。在图2a所示实施例中,本申请所提供的去中心化存储系统200包括多个区块链节点设备,具体包括区块链节点设备201、区块链节点设备202和区块链节点设备203,多个区块链节点设备201、202和203间可进行点对点通信。由于每台区块链节点设备可运行至少一个挖矿程序对应的账号,即每台区块链节点设备可运行至少一个区块链节点,故对应的当基于区块链节点角度看,图2b所示意的去中心化存储系统可包括多个区块链节点a、b、c和d,其中,多个区块链节点a、b、c和d可以是由同一台区块链节点设备运行,也可以是不同的区块链节点设备运行,故在其他实施例中去中心化存储系统中包括多个区块链节点设备。运行区块链节点的区块链节点设备均可以与系统中其他所有区块链节点设备直接进行通信,对应的,系统中任意一个区块链节点均可以与其他区块链节点直接进行通信交互。其中,当前实施例中运行区块链节点的区块链节点设备为如图1所对应的实施例所述的区块链节点设备,每台区块链节点设备至少可以运行一个区块链节点。

其中,需要说明的是,在本申请至少一个实施例中区块链节点设备中运行的区块链节点在其他实施例中还可以称之为矿工,即也可以将区块链节点简称为矿工。去中心化存储系统中所包括的所有区块链节点在级别上为平级,即所有的区块链节点均可以执行存储任务,所有的区块链节点均可以依据智能合约监测除去自身以外其他区块链节点执行存储任务的情况。在另一实施例中,本申请所提供的去中心化存储系统中,还可以预先设定由一个特定的区块链节点执行抵押扣除任务。在又一实施例中,本申请所提供的去中心化存储系统中,抵押扣除任务也可以是由除去当前被监测的区块链节点外,其他所有节点均可以执行抵押扣除任务。

在阐述本申请所提供方法的细节前,首先说明第一区块链节点是指执行扣除目标文件所映射的第一抵押层单元的流程的节点,第二区块链节点是指存储有目标文件的备份数据并执行修复目标文件任务的区块链节点,第四区块节点是存储目标文件的节点,第三区块链节点为监督或抽查第四区块链节点是否上传对应目标文件的存储证明的节点。根据区块链网络中各个节点的级别是相同的,故可以得知根据节点不同时刻所执行功能的不同,以及参考节点的不同,某个区块链节点可以是依次或同时是第一区块链节点、第二区块链节点、第三区块链节点和第四区块链节点中的一个或多个。

具体地,从执行存储任务的角度看,每个区块链节点均会接受其他区块链节点的监测,故可以得知去中心存储系统(也称区块链网络,或称系统,下文均以“系统”描述)中每个区块链节点可以是第四区块链节点,但是根据智能合约每个区块链节点也可以监测其他的区块链节点,故相对于其所监测的区块链节点来说该区块链节点也是第三区块链节点。同样的,当某一区块链节点获得了扣除目标文件所映射的第一抵押层单元的任务时,对应的该区块链节点为第一区块链节点,同时如果该区块链节点还用于修复某一存在异常的目标文件,则该区块链节点还可以是第二区块链节点。

请参见图3,图3为本申请一种去中心化存储的控制方法一实施例的流程示意图。图3所对应的实施例的方法的执行主体是第三区块链节点,第三区块链节点是执行监督功能的节点,第四区块链节点是被第三区块链节点监督的节点。

在系统中,每个区块链节点在完成存储某一目标文件后,则会生成存储证明上传至其自身的数据链上,该系统中其他区块链节点可基于节点同步性获知该存储证明。且在系统中,除去区块链节点自身以外,其他区块链节点均具有检测其数据链上的存储证明的资格,也可以通过检测其数据链上是否上传了目标文件的存储证明或是检测数据链上所上传的存储证明是否为对应当前时刻的存储证明,以判断其所存储的目标文件是否存在异常。

在图3所示意的实施例中,该方法包括:

s301:第三区块链节点检测第四区块链节点是否上传目标文件的存储证明。第三区块链节点通过检测第四区块链节点是否上传目标文件的存储证明,以判断目标文件是否存在异常。

其中,第三区块链节维监督或抽查第四区块链节点是否上传对应目标文件的存储证明的区块链节点,第四区块链节点为存储目标文件的、且被第三区块链节点检测的区块链节点,在系统中任何区块链节点均可以成为第三区块链节点,同理任何区块链节点均可以是被检测的第四区块链节点。存储证明是区块链节点完成存储目标文件后生成并上传至自身数据链的;存储证明还可以在首次上传后间隔一定时间进行更新,以向系统中的其他区块链节点证明其所对应的目标文件的依旧被正常存储的消息或报告。其中,存储证明中会存储有该存储证明生成的时间或者是更新的时间,以向其他区块链节点证明存储证明的时效性。

在一实施例中,第三区块链节点可以是根据智能合约随机生成的,也可以是由各个区块链节点进行区块记账权竞争胜出确定的。第三区块链节点间隔一定时间检测第四区块链节点是否上传目标文件的存储证明,以判断存储于第四区块链节点的目标文件是否存在异常。由于区块链网络中节点具有同步性,故在其他实施例中,第三区块链节点可以是直接检测自身数据链上是否存储有第四区块链节点所存储的目标文件的存储证明,进而判断是否接收到第四区块链节点上传的目标文件的存储证明,也可以是通过访问第四区块链节点的数据链以检测第四区块链节点是否上传目标文件的存储证明。

当检测得到第四区块链节点上传目标文件的存储证明,则判断目标文件不存在异常;反之,当第三区块链节点检测得到第四区块链节点没有上传或者是没有按时更新目标文件的存储证明,则判断目标文件存在异常。

若检测得到第四区块链节点没有上传目标文件的存储证明,则会依次执行步骤s302和步骤s303,反之,当检测得到第四区块链节点上传目标文件的存储证明,则会执行步骤s304。

s302:判断目标文件存在异常。

当无法检测到第四区块链节点上传的目标文件的存储证明,或者是检测到第四区块链节点没有及时更新目标文件的存储证明时,即当前的存储证明不具备时效性,则表示该目标文件可能在第四区块链节点中被恶意删除或者是丢失,则会判断目标文件存在异常,并会执行步骤s303。

s303:分配或触发分配修复目标文件任务至第二区块链节点,同时上传目标文件存在异常的消息至第三区块链节点的数据链,以触发第一区块链节点进入扣除目标文件所映射的第一抵押层单元的流程。其中,第二区块链节点为存储有目标文件备份数据且最终执行修复目标文件任务的区块链节点,第一区块链节点为执行扣除目标文件所映射的第一抵押层单元的流程的区块链节点。

进一步地,第一区块链节点包括:区块记账权竞争胜出的区块链节点、第三区块链节点自身、预设用于扣除目标文件所映射的第一抵押层单元的区块链节点或除去第四区块链节点以外的任一区块链节点。其中,第一区块链节点可以是可以基于智能合约各个节点进行区块记账权竞争胜出的区块链节点,也可以是有执行检测第四区块链节点是否上传目标文件的存储证明的节点,还可以由在系统中预先设定的用于扣除目标文件所映射的第一抵押层单元的区块链节点,还可以是基于智能合约随机选定的、除去第四区块链节点以外的任一区块链节点。其中,智能合约是预设的、以数字形式定义的承诺(promises),包括合约参与方(即所有区块链节点)可以在上面执行这些承诺的协议。在不同实施例中,系统中可以包括多个智能合约,多个智能合约与不同级别抵押层单元对应设置,抵押层单元构成了智能合约的一部分,由于本申请所提供的技术方案中抵押层单元至少有第一抵押层单元和第二抵押层单元两个级别,故智能合约也至少包括两个级别,且高级的智能合约还具有管理和调用低级别的智能合约的作用。

进一步地,第二区块链节点与第四区块链节点可以为同一节点,即当第四区块链节点存储有目标文件的备份数据时,可以由第四区块链节点自身完成修复目标文件。在一实施例中,当第四区块链节点自身存储有目标文件的备份数据时则会优先将修复目标文件任务分配至第四区块链节点。

当第三区块链节点检测到目标文件存在异常时,生成目标文件存在异常的消息或报告并上传至第三区块链节点的数据链,使得其他区块链节点可依据节点的同步性获知第四区块链节点所存储的目标文件存在异常。

在第三区块链节点上传目标文件存在异常的消息至第三区块链节点时,系统中会基于智能合约确定第一区块链节点,此时该第一区块链节点被触发进入扣除目标文件所映射的第一抵押层单元的流程。需要说明的是,依照本申请实施例,第一区块链节点被触发进入扣除目标文件所映射的第一抵押层单元的流程后,并不会立刻执行,而是需要进一步判断是否有关于目标文件的预设条件得到满足,具体可以参见下文图6至图9的阐述。

在一实施例中,当第三区块链节点判断得到目标文件存在异常时,还同时直接分配或触发其他区块链节点进行分配修复目标文件任务至第二区块链节点。其中,在一个系统中,可能会存在多个区块链节点存储有目标文件的备份数据,而最终执行修复目标文件的任务的第二区块链节点可以是基于智能合约在多个存储有目标文件备份数据的区块链节点中随机产生。

在另一实施例中,第二区块链节点也可以是由第三区块链节点分配指定,又或者是由某一存储有目标文件的备份数据的区块链节点自荐去执行修复目标文件任务,再或者是有多个存储有目标文件备份数据的区块链进行竞争并由胜出者执行修复目标文件任务。其中,需要说明的是,在当前实施例中,并不限定分配或触发分配修复目标文件任务至第二区块链节点和上传目标文件存在异常的消息至第三区块链节点的顺序,可以是同时执行也可以是先上传目标文件存在异常的消息至第三区块链节点,还可以是先分配或触发分配修复目标文件任务至第二区块链节点,还可以仅上传目标文件存在异常的消息至第三区块链节点,不执行分配或触发分配修复目标文件任务至第二区块链节点的动作。

进一步地,在分配修复目标文件任务至某一区块链节点时,会先确定该区块链节点是否存储有目标文件的备份数据。只有在判断区块链节点存储有目标文件的备份数据,方会将修复目标文件任务分配至该区块链节点。对应的,也可以理解为只有存储有目标文件的备份数据的区块链节点才有机会成为第二区块链节点。

否则,当判断得到系统中没有存储目标文件备份数据的区块链节点,则无法完成目标文件的重建或修复,故可直接结束本节点流程,执行扣除目标文件所映射的第一抵押层单元的流程。

s304:判断目标文件不存在异常。如若第三区块链节点检测到第四区块链节点上传了目标文件的存储证明,或者是按照设定规则准时更新目标文件的存储证明至数据链上,则判断目标文件不存在异常。可以理解的,在第三区块链节点判断目标文件不存在异常之后,第三区块链节点可以继续对第四区块链节点进行下一轮的检测,也可以是直接结束当前的检测流程。图3所示意的实施例中,通过在判断目标文件存在异常时,分配或触发分配修复目标文件任务至第二区块链节点时,可实现重建存在异常的目标文件,为减少抵押扣除提供了技术基础。

请参见图4,图4是本申请一种去中心化存储的控制方法一实施例的流程示意图,图4所示意的方法的执行主体是第三区块链节点。

s401:第三区块链节点检测第四区块链节点在第二预设时间内是否上传目标文件的存储证明。

其中,第四区块链节点为存储所述目标文件的区块链节点,第二预设时间是指去中心化存储系统中设定的每个区块链节点上传或更新存储证明的时间间隔,第二预设时间是预设的经验值。第三区块链节点通过检测第四区块链节点在第二预设时间内是否上传目标文件的存储证明,以判断目标文件是否存在异常。当检测到第四区块链节点在第二预设时间内上传目标文件的存储证明,则判断当前目标文件不存在异常;反之,当无法检测到目标文件的存储证明,或者是检测到第四区块链节点在设定的第二预设时间内没有更新目标文件的存储证明,则判断目标文件存在异常,则会执行步骤s402。

s402:先不执行扣除目标文件所映射的第一抵押层单元的流程、或先不通知第一区块链节点执行扣除目标文件所映射的第一抵押层单元的流程,而自行判断或通知第一区块链节点判断在第一预设时间内是否有关于目标文件的预设条件得到满足。

在一实施例中,在第三区块链节点检测到目标文件存在异常时,则会直接自行判断在第一预设时间内是否有关于目标文件的预设条件得到满足。

在另一实施例中,第三区块链节点检测到目标文件存在异常时,则会通知第一区块链节点进行判断第一预设时间内是否有关于目标文件的预设条件得到满足。其中,第一区块链节点为可执行扣除目标文件映射的第一抵押层单元的流程的区块链节点。

其中,预设条件至少包括目标文件被成功修复。其中,目标文件被成功修复是指可以接收到与目标文件内容相同的目标修复文件的存储证明。

在另一实施例中,预设条件还可以包括:目标文件所映射的第二抵押层单元的文件损坏率小于预设阈值,且目标文件被成功修复。第二抵押层单元继承出至少一个第一抵押层单元,且可对第一抵押层单元或者是级别较低的第二抵押层单元进行管理和资源调配。第一抵押层单元是用于与区块链节点中所存储的目标文件建立映射关系,可以理解为在区块链节点执行任务时在系统内的上交的抵押品。

进一步地,另一实施例中,在判断目标文件存在异常时,则第三区块链节点直接触发进入扣除目标文件所映射的第一抵押层单元的流程,即此时第三区块链节点与第一区块链节点为同一节点。在其他实施例中,在判断目标文件存在异常时,可以由第三区块链节点触发第一区块链节点进入扣除目标文件所映射的第一抵押层单元的流程。需要说明的是,在本申请所提供的实施例中,触发进入扣除目标文件所映射的第一抵押层单元的流程,并不立刻执行,会在判断在第一预设时间内是否有关于目标文件的预设条件得到满足的结果,进一步选择执行或取消扣除目标文件所映射的第一抵押层单元的流程。

若预设条件得到满足,则会执行步骤s403,否则会执行步骤s404。

s403:取消扣除目标文件所映射的第一抵押层单元的流程或通知第一区块链节点取消扣除目标文件所映射的第一抵押层单元的流程。

如果判断得到在第一预设时间内,有关于目标文件的预设条件得到满足时,则会根据智能合约不会执行扣除目标文件所映射的第一抵押层单元的流程,继续进行下一次的轮询监测。具体地,当抵押扣除的执行节点为当前的第三区块链节点时,则会直接取消扣除目标文件所映射的第一抵押层单元的流程;如果扣除抵押的执行节点为第一区块链节点时,则会生成指令信息通知第一区块链节点不进行抵押扣除;又或者是第三区块链节点不知道最终由哪一个区块链节点执行抵押扣除,此时第三区块链节点会发送给所有区块链节点,以使得执行抵押扣除的区块链节点取消扣除目标文件所映射的第一抵押层单元的流程。

s404:确定执行扣除目标文件所映射的第一抵押层单元的流程或通知第一区块链节点执行扣除目标文件所映射的第一抵押层单元的流程。

如果判断得到在第一预设时间内,依然不满足预先设定的预设条件的情况下,则会根据智能合约触发进入扣除目标文件所映射的第一抵押层单元的流程。具体地,第三区块链节点可以是直接进行扣除目标文件所映射的抵押,也可以是通知区别于第三区块链节点的第一区块链节点进行抵押扣除,实现提供了一种具有故障容忍的抵押扣除机制,提高了区块链节点的积极性。

请参见图5,图5为本申请一种去中心化存储的控制方法一实施例的流程示意图,图5所示意的方法的执行主体为执行修复目标文件任务的第二区块链节点。在当前实施例中,该方法包括:

s501:第二区块链节点获得目标文件的备份数据并保存。

其中,目标文件的备份数据包括目标文件的原始数据的备份和/或目标文件的备份。其中,第二区块链节点所映射的第一抵押层单元与第四区块链节点所映射的第一抵押层单元同属于至少一个级别的第二抵押层单元,也可以是同属于多个级别的第二抵押层单元。如,请结合图8,假设第二区块链节点所映射的第一抵押层单元为m1,第四区块链节点所映射的第一抵押层单元为m3,此时第二区块链节点所映射的第一抵押层单元与第四区块链节点所映射的第一抵押层单元同属于不同级别的第二抵押层单元actor1和第二抵押层单元actor。其中第四区块链节点为存储目标文件的区块链节点,第二抵押层单元为第一抵押层的上级抵押层单元。

第二区块链节点可以是在第四区块链节点执行存储任务时获得目标文件的备份数据,也可以是根据区块链网络中节点的同步性获得的目标文件的备份数据。具体地,在此并不限定第二区块链节点获得目标文件的备份数据的方式。对于第二区块链节点什么时间获得目标文件的备份数据的时间并不做限定,只需要在获得并执行重建目标文件任务时可以调用到备份数据即可。

s502:当接收到修复目标文件任务时,基于备份数据生成目标修复文件。其中,目标修复文件为与目标文件内容相同的文件,需要说明的是,目标修复文件的id号与目标文件的id号并不相同。

进一步地,当目标文件的备份数据为目标文件的原始数据时,则会对目标文件的原始数据进行封装后获得目标修复文件。

当目标文件的备份数据为目标文件的备份时,由于目标文件的备份是已经完成封装但没有映射至任何第一抵押层单元的文件,故无需对目标文件的备份进行封装,可以直接选择目标文件的备份作为目标修复文件。

进一步地,在另一实施例中,在步骤s502之后,本申请所提供的一种去中心存储的控制方法还包括:为目标修复文件设定id号并上传,以使得第一区块链节点或其他区块链节点将目标修复文件的id号与目标文件所映射的第一抵押层单元建立映射关系。在其他实施例中,其他区块链节点至少包括通过区块记账竞争胜出的区块链节点、预设的专用于建立目标文件和第一抵押层单元映射关系的区块链节点、第二区块链节点或第四区块链节点,具体依据实际的需要进行调整设定。通过将修复所得的内容与目标文件相同的修复目标文件与目标文件所映射的第一抵押层单元建立映射关系,可以较好地避免在目标文件存在异常时,对应目标文件的抵押层单元被扣除,以提高了区块链节点的积极性。

s503:生成目标修复文件的存储证明并上传至第二区块链节点的数据链,以使得第一区块链节点获知并取消扣除目标文件所映射的第一抵押层单元的流程。

由于本申请所提供的方法存在故障容忍机制,故在修复得到目标修复文件并存储后,可通过生成目标修复文件的存储证明并上传至第二区块链节点的数据链,利用区块链节点的同步性至少使得第一区块链节点有机会获知目标文件已经被成功修复,进而使得第一区块链节点有机会取消扣除目标文件所映射的第一抵押层单元的流程。

请参见图6,图6为本申请一种去中心化存储的控制方法一实施例的流程示意图。在当前实施例中,本申请所提供的去中心化存储的控制方法的执行主体是执行抵押扣除任务的第一区块链节点,该方法包括:

s601:第一区块链节点监测是否有关于目标文件的预设条件得到满足。其中,第一区块链节点为执行扣除目标文件所映射的第一抵押层单元的流程的区块链节点,目标文件是经第三区块链节点抽查得到存在异常的文件,预设条件至少包括目标文件被成功修复。

在另一实施例中,预设条件还可以包括:目标文件所映射的第二抵押层单元的文件损坏率小于预设阈值,且目标文件被成功修复。其中,第二抵押层单元为第一抵押层单元的上级抵押层单元,第一抵押层单元直接或间接继承自第二抵押层单元。第二抵押层单元还用于管理第一抵押层单元,为第一抵押层单元分配资源或任务。

在去中心化存储系统(下文简称系统)中,当第一区块链节点接收到目标文件存在异常的信息,且获得了扣除目标文件多映射的第一抵押层单元的任务时,第一区块链节点则会进入扣除目标文件所映射的第一抵押层单元的流程。当第一区块链节点进入扣除目标文件所映射的第一抵押层单元的流程后,第一区块链节点并不立刻执行扣除目标文件的第一抵押层单元,而会执行步骤s601,并基于步骤s601的结果判断是否执行对目标文件的抵押扣除流程,其中抵押扣除流程是指扣除目标文件所映射的第一抵押层单元。第一区块链节点在进入扣除目标文件所映射的第一抵押层单元的流程后,需监测是否有关于目标文件的预设条件得到满足。

进一步地,步骤s601第一区块链节点监测是否有关于目标文件的预设条件得到满足包括:监测是否收到目标修复文件的存储证明。其中,目标修复文件是第二区块链节点基于目标文件的备份数据修复得到,且与目标文件内容相同的文件。在本申请所提供的技术方案中,当第二区块链节点基于目标文件的备份数据修复得到目标修复文件后,则会生成目标修复文件的存储证明并上传至第二区块链节点的数据链,以通知去中心化存储系统中的其他的区块链节点存储有目标修复文件,对应的,第一区块链节点则可以基于区块链节点的同步性获知与目标文件内容相同的目标修复文件被存储的消息。由于区块链节点的同步性,故第一区块链节点可以是直接监测是否收到目标修复文件的存储证明;在其他实施例中也可以是去访问第二区块链节点的数据链。在当前实施例中,当收到目标修复文件的存储证明时则可判断目标文件被成功修复,则判断预设条件得到满足。

再进一步地,在另一实施例中,进一步限定目标文件在一定时间内被成功修复才会执行步骤s602,故步骤s601包括:监测在第一预设时间内是否接收到目标修复文件的存储证明。其中,第一预设时间是自第一区块链节点获知到第三区块链节点所发送的目标文件存在异常开始计时,第一预设时间是根据经验值设定的,是去中心化存储系统对于故障容忍的时间,当在第一预设时间内成功修复目标文件则不会扣除目标文件所映射的第一抵押层单元。

当步骤s601监测到有关于目标文件的预设条件得到满足则会执行步骤s602,反之当判断目标文件的预设条件没有得到满足则会执行步骤s603。

s602:取消扣除目标文件所映射的第一抵押层单元的流程。

由于第二区块链节点经过执行修复目标文件的任务后,获得了与目标文件内容相同的目标修复文件,且会将目标修复文件会与目标文件所映射的第一抵押层单元建立映射关系,故可以理解为对于整体的区块链网络来说存储目标文件的任务依旧被完成,故第一区块链节点则会取消扣除目标文件所映射的第一抵押层单元的流程,即不会扣除目标文件对应的第一抵押层单元。

s603:继续执行扣除目标文件所映射的第一抵押层单元的流程。

反之,如若判断预设条件没有得到满足时,则会执行对扣除目标文件所映射的第一抵押层单元的流程,即去扣除目标文件的抵押,以惩罚目标文件对应的区块链节点损坏目标文件。进一步地,当第一区块链节点包括多个时,则所有的第一区块链节点均会继续执行对目标文件进行抵押扣除的流程,以并完成对目标文件的抵押扣除流程。

图6所示的实施例中所提供的方法,通过第一区块链节点检测是否有关于目标文件的预设条件得到满足,若检测到有关于目标文件的预设条件得到满足,则会取消扣除目标文件所映射的第一抵押层单元的流程,否则会继续执行扣除目标文件所映射的第一抵押层单元的流程,相比于现有技术中如有发现目标文件损坏立刻执行抵押扣除,本申请所提供的技术方案在触发抵押扣除流程后,通过监测是否有关于目标文件的预设条件得到满足,并在预设条件得到满足后取消扣除目标文件所映射的第一抵押层单元的流程,提供了具有故障容忍抵押扣除机制,进而提高了区块链节点的积极性。

请参见图7,图7为本申请一种去中心化存储的控制方法另一实施例的流程示意图。在当前实施例,该方法包括步骤s701至步骤s706。

在一实施例中,在执行步骤s701之前,本申请所提供的方法还包括:第一区块链节点获知到第三区块链节点发送的目标文件存在异常的信息。其中,第三区块链节点为检测目标文件的存储证明的区块链节点,当第三区块链节点检测到目标文件的存储证明存在异常后,会将目标文件存在异常的消息上传至第三区块链节点的数据链上,第一区块链节点可基于区块链节点的同步性获知目标文件存在异常。

进一步地,在另一实施例中,在接收到第三区块链节点发送的目标文件存在异常的信息的同时,第一区块链节点会启动进行区块记账权竞争,以获得执行扣除目标文件所映射的第一抵押层单元的任务。

s701:获得扣除目标文件所映射的第一抵押层单元任务,并触发进入扣除目标文件所映射的第一抵押层单元的流程。

图7所示的实施例中,第一区块链节点包括:区块记账权竞争胜出的区块链节点、第三区块链节点、预设用于扣除目标文件所映射的第一抵押层单元的区块链节点或除去第四区块链节点以外的所有区块链节点。

其中,第四区块链节点为存储目标文件的区块链节点。在一实施例中,存储目标文件的任务是由第二抵押层单元向第四区块链节点分配的,具体可以是直接分配原始数据至各个第四区块链节点,由该第四区块链节点自行进行封装获得目标文件并存储。第二抵押层单元至少是指第一抵押层单元的上一级抵押层单元,且第二抵押层单元至少用于对其所继承出的第一抵押层单元进行资源的调配,为其所继承出的子抵押层单元或第一抵押层单元进行分配任务。第四区块链节点在存储目标文件后,会按照预设规则为所存储的目标文件设定一id号,并将id号上传,以至少使得第一抵押层单元为目标文件分配第一抵押层单元。

进一步地,当一区块链节点设备中运行多个区块链节点时,则可从同一个第二抵押层单元分别继承出该区块链节点设备中所有区块链节点的所存储目标文件对应的第一抵押层单元,对应的也可由该第二抵押层单元为区块链节点设备中区块链节点分配新的存储任务。可以理解的,在其他实施例中还可以是以其他方式进行分配存储目标文件任务

在一实施例中,当第一区块链节点是区块记账权竞争胜出的区块链节点时,那么在某一区块链节点在区块记账权竞争中胜出后,该区块链节点会获得扣除目标文件所映射的第一抵押层单元任务,成为当前第一区块链节点,对应的第一区块链节点触发进入扣除目标文件所映射的第一抵押层单元的流程。在触发进入扣除目标文件所映射的第一抵押层单元的流程后,第一区块链节点会进一步判断是否有关于目标文件的预设条件得到满足,再基于判断结果取消扣除目标文件所映射的第一抵押层单元的流程,或者是继续执行扣除目标文件所映射的第一抵押层单元的流程。其中,在当前实施例中,预设条件包括:目标文件所映射的第二抵押层单元的文件损坏率小于预设阈值,且目标文件被成功修复。具体可参见步骤s702至步骤s705。

在另一实施例中,当设定由执行监督功能的区块链节点进行抵押扣除时,那么第一区块链节点和第三区块链节点为同一区块链节点。在当前实施例中,当第三区块链节点检测到目标文件存在异常时,会将目标文件存在异常的消息发送给包括第三区块链节点自身的所有区块链节点,第三区块链节点在接收到目标文件存在异常的消息后触发进入扣除目标文件所映射的第一抵押层单元的流程,并进一步判断是否有关于目标文件的预设条件得到满足。

在又一实施例中,当第一区块链节点为预设用于扣除目标文件所映射的第一抵押层单元的区块链节点,当预设用于扣除目标文件所映射的第一抵押层单元的区块链节点接收到目标文件存在异常的消息后,根据智能合约被触发进入扣除目标文件所映射的第一抵押层单元的流程。

在又一实施例中,当第一区块链节点为除去第四区块链节点以外的任一区块链节点时,可基于智能合约确定除去第四区块链节点以外的任一节点为第一区块链节点。

s702:第一区块链节点计算目标文件对应的第二抵押层单元中文件损坏率。

其中,第二抵押层单元是第一抵押层单元的上级抵押层单元,用于管理第二抵押层,第一抵押层单元继承自第二抵押层单元。文件损坏率为第二抵押层单元所映射的目标文件存在异常的数量与第二抵押层单元所映射的所有目标文件的数量的比值。

请参见图8,图8为本申请所提出的抵押层单元继承关系示意图,在当前实施例中,可将具有继承关系的抵押层单元称之为父子抵押层单元,图8所示的图中,父抵押层单元actor可以继承出子抵押层单元actor1、子抵押层单元actor2和子抵押层单元actor3,子抵押层单元actor1继承出第一抵押层单元m1、m2和m3,子抵押层单元actor2继承出第一抵押层单元n1和n2。

在本申请中将具有管理和资源调配功能的抵押层单元定义为第二抵押层单元,对应图8所示的图中,第一抵押层单元m1、m2和m3的上级抵押层单元actor1为第二抵押层单元。但是在本申请所提供的技术方案中,可以具有多个直接管理或间接管理某第一抵押层单元m1的上级抵押层单元,故会对应有不同的级别的第二抵押层单元。如第二抵押层单元actor1的上级抵押层单元actor也是第二抵押层单元,虽然抵押层单元actor1和抵押层单元actor均是第二抵押层单元,但是抵押层单元actor的管理和分配的级别要高于抵押层单元actor1,即抵押层单元actor1可以管理抵押层单元actor1。

需要说明的是,抵押层单元这种集成关系理论上可以集成很多层,图8所示意的是三层继承关系的抵押层单元,可以理解的,在其他实施例中抵押层单元的可以包括多层继承关系,如可以包括4层、5层或者更多层,在此并不做限定。

在当前实施例中,第一抵押层单元是指不可以再继承出子抵押层单元,也不具备管理和分配功能的抵押层单元,同时也是级别最低的抵押层单元。每个第一抵押层单元与目标文件会是一一对应的,且是由至少一个第二抵押层单元分配第一抵押层单元和目标文件建立映射关系任务至第一抵押层单元。在每个区块链节点完成存储目标文件后,会对应给每个目标文件赋予一标记身份的id号,至少将id号上传至第二抵押层单元,第二抵押层单元在收到目标文件的id号后,会将每个目标文件的id号与一个没有分配的第一抵押层单元建立映射关系。

具体地,请参见图9,图9为本申请所提出的抵押层单元与封装层之间的映射关系示意图。在当前实施例中,将执行存储任务的第四区块链节点封装所得目标文件的存储区定义为封装层,在当前实施例中,封装层的结构可对应所提出的抵押层单元的结构,其中由图8可以得知,目标文件s11与第一抵押层单元m1对应,目标文件s12与第一抵押层单元m3对应,目标文件s13与第一抵押层单元m2对应,第一抵押层单元m4为没有分配的第一抵押层单元,d1、d2和d3为目标文件s11、s12和s13的原始数据备份或者是文件的备份。在当前实施例中所提供的技术方案中,通过将每个目标文件与一个第一抵押层单元一一对应,较好地实现了对于各个区块链节点中所存储目标文件的抵押扣除的精准控制。

其中,步骤s702中的第二抵押层单元是指未上传存储证明的目标文件所对应第一抵押层单元的上级抵押层单元。且第二抵押层单元可以是跨级别的第二抵押层单元,如在图9中,第一抵押层单元m1的第二抵押层单元可以是指抵押层单元actor1,也可以是指跨级别的抵押层单元actor。步骤s702中计算的是当前时间段内该第二抵押层单元中各个第一抵押层单元中所映射的目标文件存在损坏的概率。具体地,文件损坏率等于当前时间段内第二抵押层单元所包括的第一抵押层单元所映射的目标文件损坏数量与该第二抵押层单元的映射的所有目标文件的数量比值。如,图9中所示意的抵押层单元中,其中每个第一抵押层单元均与一目标文件映射,如果在第二抵押层单元actor1中只有第一抵押层单元m1映射的目标文件损坏,则会对应的此时第二抵押层单元actor1的文件损坏率等于三分之一,约为33.33%,但是更高级别的第二抵押层单元actor的文件损坏率却为五分之一,即20%。故由此可以得知对于不同级别的第二抵押层单元会设定有不同的文件损坏率,对应的,当以不同级别抵押层单元为判断基准时则会对应设定不同的预设阈值。

s703:判断文件损坏率是否小于预设阈值。

其中,预设阈值是预先设定值,可基于智能合约进行执行,预设阈值是用于表示当前抵押层单元或者是当前级别的抵押层单元可以接受的最大的文件损坏率。可以理解的,该预设阈值可以根据需要进行调整和设定,且对应不同级别的第二抵押层单元会设定不同的预设阈值。

若文件损坏率小于预设阈值,则会执行步骤s704。反之,当文件损坏率大于或等于预设阈值时,则会执行步骤s705。

s704:执行监测是否接收到目标修复文件的存储证明。当文件损坏率小于预设阈值时,根据智能合约的设定第一区块链节点还会接受区块链节点的报故障请求,给予一故障容忍时间以修复目标文件。在所给出的故障容忍时间内,即会监测是否接收到与目标文件内容相同的目标修复文件的存储证明。进一步地,步骤704也可以是执行监测在第一预设时间内是否接收到目标修复文件的存储证明。

s705:继续执行扣除目标文件所映射的第一抵押层单元的流程。当文件损坏率大于或等于预设阈值时,根据智能合约的设定第一区块链节点不会接受节点上报的故障请求,那么第一区块链节点会直接执行扣除目标文件所映射的第一抵押层单元的流程。

s706:取消扣除目标文件所映射的第一抵押层单元的流程。步骤s706可参见上图6对应的实施例中步骤s602部分的阐述,在此不再赘述。

需要说明的是,当前一时刻某一第二抵押层单元的文件损坏率等于预设阈值,但是经过设定的时间后其中有部分第一抵押层单元所映射的目标文件已经完成修复,则此时该第二抵押层单元会继续给予其他第一抵押层单元对应的目标文件一容忍故障的第一预设时间,并执行监测在第一预设时间内是否接收到目标修复文件的存储证明。

具体地,可参见图10,图10为本申请一种去中心化存储的控制方法再一实施例的数据修复示意图。图10所示意的是将修复目标文件任务分配至存储有目标文件备份数据的其他区块链节点设备中的区块链节点情形。在当前实施例中,假设区块链节点设备a中一个第四区块链节点对应的目标文件s31损坏,经过判断该第二区块链节点上没有存储目标文件备份数据,则会对应将目标文件修复任务分配至存储有该目标文件s31备份数据的区块链节点设备b中的第二区块链节点,当区块链节点设备b上的备份数据为目标文件s31的原始数据备份时,则会对该原始数据备份重新进行封装生成与损坏的目标文件s31内容相同的目标修复文件s24,并将目标修复文件s24的id号上传至第二抵押层单元actor1,然后根据智能合约第二抵押层单元actor1会将原目标文件s31所映射的第一抵押层单元m1直接与目标修复文件s24进行映射,以避免原目标文件s31所映射的第一抵押层单元m1被扣除。

进一步地,另一实施例中,当区块链节点设备b上的备份数据为损坏的目标文件s31的文件备份时,此时可以直接选择该文件备份为目标修复文件,则可以直接将损坏的目标文件所映射的第一抵押层单元与该文件备份进行映射,可以直接省略进行数据封装的步骤,相比于备份数据为原始数据的方案,备份数据为文件备份的方案处理速度较快。需要说明的是,当备份数据为封装好的文件时,则对应的,该备份文件在执行修复目标文件任务之前是不会被链接到任何一个第一抵押层单元。

基于上图3至图10所阐述的去中心化存储的控制方法,请进一步参见图11,图11为本申请一种去中心化存储的控制方法再一实施例中各个节点交互示意图。在当前实施例中,本申请所提供的方法包括步骤s1至步骤s10。

具体方法包括如下步骤:

s1.第四区块链节点获得存储任务,存储目标文件,并生成存储证明上传至数据链。

s2.第二区块链节点获得目标文件的备份数据并保存。

s3.第三区块链节点检测第四区块链节点是否上传目标文件的存储证明。

s4.第三区块链节点若检测得到第四区块链节点没有上传目标文件的存储证明,则判断目标文件存在异常。

s5.分配或触发分配修复目标文件任务至第二区块链节点。

s6.上传目标文件存在异常的消息至第三区块链节点的数据链。

s7.触发第一区块链节点进入扣除目标文件所映射的第一抵押层单元的流程。

s8.基于备份数据生成目标修复文件。

s9.第一区块链节点监测是否有关于目标文件的预设条件得到满足。

s10.监测到有关于目标文件的预设条件得到满足,则取消扣除目标文件所映射的第一抵押层单元的流程。

步骤s1至s10在图1至图10各个实施例中进行了详细阐述,在此不再进一步赘述。需要说明的是,在当前实施例中为便于描述是以先执行步骤s5,再依次执行步骤s6和s7,但是本申请所提供的技术方案中并不限定步骤s5和s6执行的前后步骤。同理对于步骤s1和s2也是,并不特定步骤s1和s2的顺序。

请参见图12,图12为本申请一种去中心化存储的控制方法又一实施例的示意图,图12具体阐述了将目标文件所映射的第一抵押层单元与目标修复文件建立映射关系的过程。在当前实施例中,本申请所提供的方法包括:

1.第四区块链节点获取目标修复文件的属性信息。

2.上传调整第一抵押层单元映射关系请求和目标修复文件的属性信息至第一抵押层单元对应的第二抵押层单元。

3.第二抵押层单元获取第四区块链节点发送的目标修复文件的属性信息和调整第一抵押层单元映射关系请求。

4.第二抵押层单元响应调整第一抵押层单元映射关系请求。

5.将调整第一抵押层单元映射关系的任务分配至第一抵押层单元。

6.第一抵押层单元分配调整映射关系的任务分配至第一区块链节点。

7.第一区块链节点执行调整映射关系的任务,取消第一抵押层单元与目标文件映射关系,并建立第一抵押层单元与目标修复文件的映射关系。

本申请还提供一种存储介质,请参见图13,图13为本申请一种存储介质一实施例中的结构示意图,在当前实施例中,存储介质1300存储有程序数据1301,所存储的程序数据1301被执行时可实现如上图3至图12及其各个实施例所述的一种去中心化存储的控制方法。具体地,上述具有存储功能的存储介质1300可以是存储器、个人计算机、服务器、网络设备或者u盘等其中的一种。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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