掌桥专利:专业的专利平台
掌桥专利
首页

IPFS存储封装方法、装置、电子设备及可读存储介质

文献发布时间:2023-06-19 19:07:35


IPFS存储封装方法、装置、电子设备及可读存储介质

技术领域

本申请涉及IPFS数据封装技术领域,尤其涉及一种IPFS存储封装方法、装置、电子设备及可读存储介质。

背景技术

IPFS(Inter - PlanetaryFileSystem:星际文件系统)是一个面向全球的、点对点的分布式版本文件系统,致力于创建持久且分布式存储和共享文件的网络传输协议,IPFS可以用于存储的区块链项目,在进行IPFS存储封装时,每个阶段都需要以上一个阶段的结果作为基础,即由于封装文件的机器节点非常多,且每个机器节点均能处理IPFS数据的封装任务以及各自所处理的封装阶段也不一样,为保证封装任务的正常进行,需要在各处理IPFS数据的封装任务的机器节点间进行封装文件的传输,这就导致IPFS存储封装的效率低。

发明内容

本申请的主要目的在于提供一种IPFS存储封装方法、装置、电子设备及可读存储介质,旨在解决现有技术中IPFS存储封装的效率低的技术问题。

为实现上述目的,本申请提供一种IPFS存储封装方法,所述IPFS存储封装方法包括:

获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;

依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;

在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。

为实现上述目的,本申请还提供一种IPFS存储封装装置,所述IPFS存储封装装置包括:

获取模块,用于获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;

查找模块,用于依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;

封装模块,用于在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。

本申请还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述IPFS存储封装方法的程序,所述IPFS存储封装方法的程序被处理器执行时可实现如上述的IPFS存储封装方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现IPFS存储封装方法的程序,所述IPFS存储封装方法的程序被处理器执行时实现如上述的IPFS存储封装方法的步骤。

本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的IPFS存储封装方法的步骤。

本申请提供了一种IPFS存储封装方法、装置、电子设备及可读存储介质,本申请首先获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。本申请在执行待封装IPFS数据在各封装阶段的封装任务时,通过查找并采用执行过当前封装阶段的封装任务的封装机去执行待封装IPFS数据在下一封装阶段的封装任务,从而节省了封装机之间的数据同步的过程,克服了现有技术中在进行IPFS存储封装时,每个阶段都需要以上一个阶段的结果作为基础,即由于封装文件的机器节点非常多,且每个机器节点均能处理IPFS数据的封装任务以及各自所处理的封装阶段也不一样,为保证封装任务的正常进行,需要在各处理IPFS数据的封装任务的机器节点间进行封装文件的传输的技术缺陷,提高了IPFS存储封装的效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请IPFS存储封装方法实施例一提供的数据流向示意图;

图2为本申请IPFS存储封装方法实施例一提供的流程示意图;

图3为本申请IPFS存储封装方法实施例二提供的流程示意图;

图4为本申请IPFS存储封装方法实施例三提供的流程示意图;

图5为本申请IPFS存储封装方法实施例三提供的框架示意图;

图6为本申请IPFS存储封装方法实施例三提供的数据流向示意图;

图7为本申请IPFS存储封装装置实施例四提供的结构示意图;

图8为本申请实施例中IPFS存储封装方法涉及的硬件运行环境的设备结构示意图。

本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本申请保护的范围。

实施例一

IPFS(Inter - PlanetaryFileSystem:星际文件系统)是一个面向全球的、点对点的分布式版本文件系统,致力于创建持久且分布式存储和共享文件的网络传输协议,IPFS可以用于存储的区块链项目,在进行IPFS存储封装时,每个阶段都需要以上一个阶段的结果作为基础,即由于封装文件的机器节点非常多,且每个机器节点均能处理IPFS数据的封装任务以及各自所处理的封装阶段也不一样,为保证封装任务的正常进行,需要在各处理IPFS数据的封装任务的机器节点间进行封装文件的传输,这就导致IPFS存储封装的效率低。

在进行IPFS数据的存储封装时,分为两大过程,一个是算力封装过程,该过程是讲元数据经过一系列哈希算法以后,生成扇区的过程;另一个是时空证明过程,该过程采用零知识证明的方式延时数据的完整性。其中,算力封装过程分为以下阶段:P1阶段(PreCommitPhase 1:第一封装预提交阶段)、P2阶段(PreCommit Phase 2:第二封装预提交阶段)、C1阶段(Commit Phase 1:第一封装提交阶段)和C2阶段(Commit Phase 2:第二封装提交阶段),在P1阶段之前还存在AP阶段(Add Piece:封装数据加载阶段)。

在一种可实施的方式中,IPFS数据的算力封装过程如图1所示,当在第一台封装机Worker1进行AP阶段的封装任务,而在第二台封装机Worker2进行P1阶段的封装任务时,在第二台封装机进行P1阶段的封装任务之前,需要将第一台封装机Worker1进行AP阶段的封装任务时所产生的32G数据同步至第二台封装机Worker2,才可进入P1阶段的封装任务,在第三台封装机Worker3进行P2阶段的封装任务时,又需要重复上述数据同步的操作,进一步地,在第三台封装机Worker3执行完成P2阶段的封装任务时,通过调度器Miner的调用P2阶段产生的所需存储的数据存储至IPFS数据存储节点中。

本申请实施例提供一种IPFS存储封装方法,在本申请IPFS存储封装方法的第一实施例中,参照图2,所述IPFS存储封装方法包括:

步骤S10,获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;

步骤S20,依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;

需要说明的是,所述任务标签可以包括任务名称、任务类型等,在同一服务器下针对统一文件类型的IPFS数据的封装,除开所述第一封装机以外,有且仅有一台目标封装机。

步骤S30,在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。

作为一种示例,步骤S10至步骤S30包括:获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;以所述待封装IPFS数据的任务标签为索引,在预设数据库中查找存在所述第一封装数据包的目标封装机;在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。

需要说明的是,所述预设数据库可以为一个采用fixedp1worker map结构存储的关系数据库,并采用一个task_json文件来持久化关系数据,所述预设数据库用于存储任务名称、服务器、IPFS存储节点的位置信息、封装机的标识信息等,在准备开始封装待封装的IPFS数据时,fixedp1worker map结构会去硬盘中加载task_json文件,如果硬盘中不存在task_json文件,则创建一个新的task_json文件来持久关系本次封装的数据。

作为另一种示例,可以在所述待封装IPFS数据在第一封装机中执行当前封装阶段的封装任务之前,根据所述待封装IPFS数据的文件类型,查找执行过该文件类型的当前封装阶段的封装任务的封装机作为预定封装机,并提前预占用所述预定目标封装机的资源空间,在所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务之后,判断所述预定封装机是否存在第一封装数据包,如果存在,则将所述预定封装机作为所述目标封装机,在所述预定目标封装机的预占用空间中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包,如果不存在,则释放所述预定封装机的预占用空间,并执行所述依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机的步骤。

本申请实施例提供了一种IPFS存储封装方法,本申请实施例首先获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。本申请实施例在执行待封装IPFS数据在各封装阶段的封装任务时,通过查找并采用执行过当前封装阶段的封装任务的封装机去执行待封装IPFS数据在下一封装阶段的封装任务,从而节省了封装机之间的数据同步的过程,克服了现有技术中在进行IPFS存储封装时,每个阶段都需要以上一个阶段的结果作为基础,即由于封装文件的机器节点非常多,且每个机器节点均能处理IPFS数据的封装任务以及各自所处理的封装阶段也不一样,为保证封装任务的正常进行,需要在各处理IPFS数据的封装任务的机器节点间进行封装文件的传输的技术缺陷,提高了IPFS存储封装的效率。

作为一种示例,所述在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包的步骤之前,所述IPFS存储封装方法还包括:

步骤S31,获取所述目标封装机的剩余资源空间和所述待封装IPFS数据在下一封装阶段的封装任务的预占用资源空间;

步骤S32,判断所述目标封装机的剩余资源空间是否大于所述预占用资源空间;

步骤S33,若是,则执行所述在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包的步骤;

步骤S34,若否,则在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,其中,所述第二封装机不存在所述第一封装数据包,且所述第二封装机的剩余资源空间大于所述预占用资源空间。

作为一种示例,步骤S31至步骤S34包括:获取所述目标封装机的剩余资源空间和所述待封装IPFS数据在下一封装阶段的封装任务的预占用资源空间;判断所述目标封装机的剩余资源空间是否大于所述预占用资源空间;若所述目标封装机的剩余资源空间大于所述预占用资源空间,则执行所述在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包的步骤;若所述目标封装机的剩余资源空间不大于所述第一封装数据包的资源占用空间,则在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,其中,所述第二封装机不存在所述第一封装数据包,且所述第二封装机的剩余资源空间大于所述预占用资源空间,本示例通过比较待封装IPFS数据在下一封装阶段的封装任务的预占用资源空间和目标封装机的剩余资源空间的大小来进行封装任务的分配,当目标封装机的剩余资源空间充足时,则在目标封装机中执行下一封装阶段的封装任务,而当目标封装机的剩余资源空间不足时,则选择其他剩余资源充足的封装机执行下一封装阶段的封装任务,从而在提高资源利用率的同时还保证了IPFS数据的封装效率。

作为另一种示例,在目标封装机的剩余资源空间小于待封装IPFS数据在下一封装阶段的封装任务的预占用资源空间时,此时可以监控一下在其他封装机中同步第一数据包所需的同步时间和目标封装机在这个同步时间内是否存在即将释放的资源空间,从而能够有足够的剩余资源空间用于承接下一封装阶段的封装任务,如果能够承接,则在等待目标封装机的剩余资源空间充足时,向目标封装机分配待封装IPFS数据在下一封装阶段的封装任务。

作为一种示例,所述在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务的步骤之前,所述IPFS存储封装方法还包括:

步骤S341,检测所述目标封装机中的预留资源空间是否存在封装任务;

需要说明的是,每台执行过IPFS封装任务的封装机都会预留一个资源空间用于执行下一封装阶段的封装任务,例如,封装机A执行过封装IPFS数据a在AP阶段的封装任务,则封装机A可以预留一个资源空间用于执行IPFS数据a在P1阶段的封装任务,一般情况下,在封装机A中执行下一封装阶段的封装任务时,在封装机A除开预留资源空间的其他剩余资源空间充足的情况下,优先占用其他剩余资源空间,之后在其他剩余资源空间满了的情况下,再占用预留资源空间,而在封装机A的预留资源空间也满了的情况下,则占用剩余资源空间充足的封装机去执行下一封装阶段的封装任务。

步骤S342,若是,则执行所述在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务的步骤;

步骤S343,若否,则在所述目标封装机中的预留资源空间中执行所述待封装IPFS数据在下一封装阶段的封装任务。

作为一种示例,当在所述目标封装机中设置的预留资源空间刚好只能承接一个封装任务时,步骤S341至步骤S342包括:检测所述目标封装机中的预留资源空间是否存在封装任务;若检测到所述目标封装机中的预留资源空间中存在封装任务,则执行所述在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务的步骤;若检测到所述目标封装机中的预留资源空间中不存在封装任务,则在所述目标封装机中的预留资源空间中执行所述待封装IPFS数据在下一封装阶段的封装任务。本示例通过给目标封装机设置预留资源空间,并实时监控目标封装机中的预留资源空间是否存在封装任务来进行封装任务的分配,当存在封装任务时,说明预留资源空间被占用,则选择在其他剩余资源空间充足的机器中执行下一封装阶段的封装任务;当不存在封装任务时,说明预留资源空间未被占用,则选择在目标封装机中的预留资源空间中执行待封装IPFS数据在下一封装阶段的封装任务,从而提高了IPFS数据的封装效率。

作为另一种示例,当在所述目标封装机中设置的预留资源空间能够承接多个封装任务时,所述若检测到所述目标封装机中的预留资源空间中存在封装任务,则执行所述在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务的步骤中的步骤包括:获取所述预留资源空间的剩余资源空间;判断所述预留资源空间的剩余资源空间是否大于所述待封装IPFS数据在下一封装阶段的封装任务的预占用资源空间;若所述预留资源空间的剩余资源空间大于所述预占用资源空间,则在所述目标封装机中的预留资源空间的剩余资源空间中执行所述待封装IPFS数据在下一封装阶段的封装任务;若所述预留资源空间的剩余资源空间不大于所述预占用资源空间,则执行所述在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务的步骤。

实施例二

进一步地,参照图3,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,所述在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包的步骤之前,所述IPFS存储封装方法还包括:

步骤B31,若依据所述待封装IPFS数据的任务标签,查找不到存在所述第一封装数据包的目标封装机,则获取各预分配封装机的剩余资源空间;

步骤B32,通过比对各所述预分配封装机的剩余资源空间的大小,得到所述目标封装机。

在封装机执行封装任务时,部分封装机会存在大量的剩余资源空间未被占用,而任务量少的封装机即便不存在第一封装数据包在同步第一封装数据包时,相对任务量多的封装机所需花费的时间较短,所以查找不到存在第一封装数据包的封装机是,可以选用任务量少的封装机作为目标封装机去执行待封装IPFS数据在下一封装阶段的封装任务。

作为一种示例,步骤B31至步骤B32包括:若依据所述待封装IPFS数据的任务标签,查找不到存在所述第一封装数据包的目标封装机,则获取各预分配封装机的剩余资源空间;通过比对各所述预分配封装机的剩余资源空间的大小,将各所述预分配封装机的剩余资源空间的最大值作为所述目标封装机。本示例在查找不到存在所述第一封装数据包的目标封装机时,可以在其他预分配封装机中找出剩余资源空间最大的预分配封装机作为目标封装机去执行下一封装阶段的封装任务,从而提高了各封装机的资源利用率。

本申请实施例提供了一种任务分配方法,即若依据所述待封装IPFS数据的任务标签,查找不到存在所述第一封装数据包的目标封装机,则获取各预分配封装机的剩余资源空间;通过比对各所述预分配封装机的剩余资源空间的大小,得到所述目标封装机。本申请实施例在查找不到存在所述第一封装数据包的目标封装机时,可以在其他预分配封装机中找出剩余资源空间最大的预分配封装机作为目标封装机去执行下一封装阶段的封装任务,从而提高了各封装机的资源利用率。

实施例三

进一步地,参照图4,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,当所述当前封装阶段为第一封装预提交阶段,所述下一封装阶段为第二封装预提交阶段时,所述在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包的步骤之后,所述IPFS存储封装方法还包括:

步骤A10,获取所述目标封装机对应的目标IPFS数据存储节点;

步骤A20,基于预设文件移动函数,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。

需要说明的是,所述目标封装机的标识信息是指用于标识所述目标封装机的哈希标识,所述哈希标识是在目标封装机被启动时采用哈希函数产生的,所述哈希函数是指能够将任意输入值转变成固定长度的值进行输出,该输出值即为哈希值;所述预设文件移动函数为MoveToNfsStorage函数,所述预设文件移动函数用于将所述第二封装预提交阶段(P2阶段)产生的第二封装数据包和执行所述第二封装预提交阶段的封装任务的目标封装机的标识信息传输到存储空间充足的目标IPFS数据存储节点。

在完成IPFS数据在完成P2阶段(第二封装预提交阶段)的封装任务以后,需要经过调度器进行调度分配从而对P2阶段产生的封装数据进行存储,但是在存在多个封装数据需要存储时,调度器调用完所有的封装数据所需耗费的时间长,这就带来了IPFS数据的存储效率低的技术问题。

作为一种示例,步骤A10至步骤A20包括:获取所述目标服务器中各IPFS数据存储节点的剩余资源空间;依据各所述IPFS数据存储节点的剩余资源空间的大小,确定所述目标IPFS数据存储节点;依据所述预设文件移动函数,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。

作为另一种示例,在采用文件移动函数移动目标封装机的标识信息以及封装过程所产生的封装数据包的过程中,可以使用加密函数或者零知识加密算法对所需移动的文件进行层层加密,且采用时空证明算法,定期监测系统中被抽查的存储文件是否存在,从而在保证IPFS数据存储的完整性的同时,还保证了IPFS数据存储的安全性。

本申请实施例提供了一种IPFS数据存储方法,即获取所述目标封装机对应的目标IPFS数据存储节点;基于预设文件移动函数,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。本申请实施例在待封装IPFS数据完成数据封装的过程后,通过文件移动函数将目标封装机的标识信息和封装过程所产生的封装数据包移动至存储空间充足的目标IPFS数据存储节点中,从而无需经过调度分配即可完成IPFS数据的存储,节约了IPFS数据的存储时间,提高了IPFS数据的存储效率。

作为一种示例,所述获取所述目标封装机对应的目标IPFS数据存储节点的步骤包括:

步骤A11,获取所述目标服务器中各IPFS数据存储节点的剩余资源空间;

步骤A12,通过比对各所述IPFS数据存储节点的剩余资源空间的大小,得到目标IPFS数据存储节点。

需要说明的是,所述目标IPFS数据存储节点可以由多个IPFS数据存储节点组成,在所述IPFS数据存储节点的资源空间被全部占用时,可继续将其他剩余资源空间充足的IPFS数据存储节点作为目标IPFS数据存储节点,继续存储封装机的标识信息和封装数据包。

作为一种示例,步骤A11至步骤A12包括:获取所述目标服务器中各IPFS数据存储节点的剩余资源空间;通过比对各所述IPFS数据存储节点的剩余资源空间的大小,将各所述IPFS数据存储节点的剩余资源空间的最大值作为所述目标IPFS数据存储节点。本示例通过比对各IPFS数据存储节点的剩余资源空间,以找出最大的剩余资源空间所对应的IPFS数据存储节点,并将该IPFS数据存储节点作为目标IPFS数据存储节点用于存储在当前服务器下执行完成封装任务的封装机的标识信息和封装数据包。

作为一种示例,所述基于预设文件移动函数,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点的步骤包括:

步骤A21,注册所述预设文件移动函数的移动接口;

步骤A22,通过调用所述移动接口的接口信息,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。

作为一种示例,步骤A21至步骤A22包括:获取所述预设文件移动函数的移动接口的接口信息;根据所述接口信息,为所述移动接口定义接口代理模块;实例化所述移动接口至所述接口代理模块,以在所述接口代理模块中形成所述移动接口的接口实例;实例化所述接口代理模块并获取所述接口代理模块的实例化路径;将所述实例化路径和所述接口实例注册到预设组件中,以注册所述预设文件移动函数的移动接口;通过调用所述移动接口的接口信息,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。本示例通过接口代理模块的实例化路径来定义唯一的接口实例,从而可以通过自动获取接口代理模块的实例化路径,完成预设文件移动函数的移动接口的注册,简化了接口注册的流程,从而提升了接口注册效率,进一步地,通过调用移动接口的接口信息来将目标封装机的标识信息和封装过程所产生的封装数据包移动至存储空间充足的目标IPFS数据存储节点中,从而无需经过调度分配即可完成IPFS数据的存储,节约了IPFS数据的存储时间,提高了IPFS数据的存储效率。

在一种可实施的方式中,参照图5和图6,通过绑定AP阶段、P1阶段和P2阶段,从而在第二台封装机Woker2进行P1阶段的封装任务,以及第三台封装机Woker3进行P2阶段的封装任务时,由于第二台封装机Woker2和第三台封装机Woker3本身就存在上一封装阶段的封装数据包,所以,无需同步上一封装阶段的封装数据包,即可各自执行P1阶段和P2阶段的封装任务,且在第三台封装机Woker3执行完成P2阶段的封装任务时,1U服务器通过调用预设文件移动函数的接口信息,将P2阶段产生的封装数据直接移动至IPFS数据存储节点,从而在封装结束后32G的数据不需要经过调度器Miner,即可完成IPFS数据的存储过程。

实施例四

本申请实施例还提供一种IPFS存储封装装置,参照图7,所述IPFS存储封装装置包括:

获取模块10,用于获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;

查找模块20,用于依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;

封装模块30,用于在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。

可选地,所述IPFS存储封装装置还包括:

获取所述目标封装机的剩余资源空间和所述待封装IPFS数据在下一封装阶段的封装任务的预占用资源空间;

判断所述目标封装机的剩余资源空间是否大于所述预占用资源空间;

若是,则执行所述在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包的步骤;

若否,则在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,其中,所述第二封装机不存在所述第一封装数据包,且所述第二封装机的剩余资源空间大于所述预占用资源空间。

可选地,所述IPFS存储封装装置还包括:

检测所述目标封装机中的预留资源空间是否存在封装任务;

若是,则执行所述在第二封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务的步骤;

若否,则在所述目标封装机中的预留资源空间中执行所述待封装IPFS数据在下一封装阶段的封装任务。

可选地,所述IPFS存储封装装置还包括:

若依据所述待封装IPFS数据的任务标签,查找不到存在所述第一封装数据包的目标封装机,则获取各预分配封装机的剩余资源空间;

通过比对各所述预分配封装机的剩余资源空间的大小,得到所述目标封装机。

可选地,当所述当前封装阶段为第一封装预提交阶段,所述下一封装阶段为第二封装预提交阶段时,所述IPFS存储封装装置还包括:

获取所述目标封装机对应的目标IPFS数据存储节点;

基于预设文件移动函数,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。

可选地,所述IPFS存储封装装置还包括:

获取所述目标服务器中各IPFS数据存储节点的剩余资源空间;

通过比对各所述IPFS数据存储节点的剩余资源空间的大小,得到目标IPFS数据存储节点。

可选地,所述IPFS存储封装装置还包括:

注册所述预设文件移动函数的移动接口;

通过调用所述移动接口的接口信息,将所述目标封装机的标识信息和所述第二封装数据包移动至所述目标IPFS数据存储节点。

本申请提供的IPFS存储封装装置,采用上述实施例中的IPFS存储封装方法,解决了IPFS存储封装的效率低的技术问题。与现有技术相比,本申请实施例提供的IPFS存储封装装置的有益效果与上述实施例提供的IPFS存储封装方法的有益效果相同,且该IPFS存储封装装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。

实施例五

本发明实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的IPFS存储封装方法。

下面参考图8,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(Personal Digital Assistant:个人数字助理)、PAD(Portable ApplicationDescription:平板电脑)、PMP(Portable Media Player:便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图8所示,电子设备可以包括处理装置1001(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM:Read Only Memory)1002中的程序或者从存储装置1003加载到随机访问存储器(RAM:Random Access Memory)1004中的程序而执行各种适当的动作和处理。在RAM1004中,还存储有电子设备操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM1004通过总线1005彼此相连。输入/输出(I/O)接口1006也连接至总线。

通常,以下系统可以连接至I/O接口1006:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置1007;包括例如液晶显示器(LCD:LiquidCrystal Display)、扬声器、振动器等的输出装置1008;包括例如磁带、硬盘等的存储装置1003;以及通信装置1009。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1003被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。

本发明提供的电子设备,采用上述实施例中的IPFS存储封装方法,解决了现有技术中IPFS存储封装的效率低的技术问题。与现有技术相比,本发明实施例提供的电子设备的有益效果与上述实施例提供的IPFS存储封装方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。

应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

实施例六

本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的IPFS存储封装的方法。

本申请实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM:Random Access Memory)、只读存储器(ROM:Read Only Memory)、可擦式可编程只读存储器(EPROM:Erasable ProgrammableRead Only Memory或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM:CD-Read Only Memory)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency:射频)等等,或者上述的任意合适的组合。

上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。

上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:获取目标服务器中待封装IPFS数据的第一封装数据包,其中,所述第一封装数据包是指所述待封装IPFS数据在第一封装机中执行完成当前封装阶段的封装任务时所产生的数据包;依据所述待封装IPFS数据的任务标签,查找存在所述第一封装数据包的目标封装机;在所述目标封装机中执行所述待封装IPFS数据在下一封装阶段的封装任务,得到第二封装数据包。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN:Local Area Network)或广域网(WAN:Wide Area Network)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。

本申请提供的计算机可读存储介质,存储有用于执行上述IPFS存储封装方法的计算机可读程序指令,解决了IPFS存储封装的效率低的技术问题。与现有技术相比,本申请实施例提供的计算机可读存储介质的有益效果与上述实施例提供的IPFS存储封装方法的有益效果相同,在此不做赘述。

实施例七

本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的IPFS存储封装方法的步骤。

本申请提供的计算机程序产品解决了IPFS存储封装的效率低的技术问题。与现有技术相比,本申请实施例提供的计算机程序产品的有益效果与上述实施例提供的IPFS存储封装方法的有益效果相同,在此不做赘述。

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

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 模态框构建方法、装置、电子设备、计算机可读存储介质
  • 日志信息处理方法、装置、电子设备及可读存储介质
  • 电子设备、音量调节方法及装置、计算机可读存储介质
  • 路线规划方法、装置、电子设备及可读存储介质
  • 数据封装、解析方法、装置、电子设备及可读存储介质
  • 封装结构散热优化方法、装置、可读存储介质及电子设备
技术分类

06120115801562