带权重的分布式数据存储方法、系统和存储介质
技术领域
本发明涉及数据存储技术领域,具体涉及一种带权重的分布式数据存储方法、系统和存储介质。
背景技术
近年来,区块链领域的应用逐渐广泛,比如,IBM的Fabric,Facebook的Libra,以及Protocol Labs的去中心化存储方案IPFS(星际文件系统,InterPlanetary File System)等。另外,随着5G的普及,更高的带宽、更低延迟、更高的容量等特点将会为区块链应用落地提供更加良好的网络环境与技术条件。另外,CDN(Content Delivery Network,内容分发网络)是指构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率的一种内容分发和传送方案。而CDN边缘的数据存储于分发的方案中,数据安全性较低。
因此,如何将家庭宽带网络进行利用来实现全民网络加速,进而促进整个区块链+物联网+用户生态的发展,具有重要的意义。
发明内容
有鉴于此,提供一种带权重的分布式数据存储方法、系统和存储介质,以解决相关技术中数据存储于分发服务中心服务器压力大、存储成本高、数据安全性低的问题。
本发明采用如下技术方案:
第一方面,本申请实施例提供了一种带权重的分布式数据存储方法,该方法包括:
雾存储平台获取待存储数据,并将所述待存储数据分发至各级代理节点;
所述各级代理节点根据设定条件确定所述待存储数据的权重,并根据所述权重确定所述待存储数据的类型,其中,所述待存储数据的类型包括冷资源和热资源;
所述各级代理节点对所述待存储数据进行加工,并将所述待存储数据以数据量相等的碎片文件的形式存储在各个IPFS用户终端;
所述雾存储平台接收来自用户客户端的访问请求,并根据所述待存储数据的类型将与所述访问请求匹配的IPFS用户终端的节点地址和证书发送至所述用户客户端;
所述用户客户端根据所述节点地址和证书确定目标IPFS用户终端,并从所述目标IPFS用户终端获取请求数据;其中,所述请求数据的费用根据所述请求数据的类型确定。
第二方面,本申请实施例提供了一种系统,该系统包括:雾存储平台、至少一个IPFS用户终端和至少一个客户端;
其中,所述雾存储平台和所述至少一个IPFS用户终端用于执行权利要求1-8任一项所述的带权重的分布式数据存储方法。
第三方面,本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的带权重的分布式数据存储方法中各个步骤。
本发明采用以上技术方案,采用区块链、雾存储平台、代理节点和IPFS用户终端的系统架构模式,根据数据的被访问情况生成数据权重,根据数据权重划分资源类型为热资源和冷资源,热资源和冷资源又可以进一步划分等级,根据数据资源权重情况将数据分发到IPFS用户终端,以便有效的利用IPFS用户终端的存储和带宽;这样,中心服务器压力降低、存储成本降低、宽带费用更加灵活、数据存储更安全,以及,共享经济更透明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种带权重的分布式数据存储方法的流程图;
图2是本发明实施例中适用的一种带权重的分布式数据存储的示意图;
图3是本发明实施例中适用的一种天翼云雾存储平台和第三方存储需求方的系统架构和数据流转图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例
图1为本发明实施例提供的一种带权重的分布式数据存储方法的流程图,该方法可以由本发明实施例提供的带权重的分布式数据存储系统来执行,该系统可采用软件和/或硬件的方式实现。参考图1,该方法具体可以包括如下步骤:
S101、雾存储平台获取待存储数据,并将待存储数据分发至各级代理节点。
其中,雾计算一种计算模式,在该模式中数据、数据处理和应用程序集中在网络边缘的设备中,而不是几乎全部保存在云中,是云计算的延伸概念,而雾存储平台是基于雾计算的存储平台。具体的,雾存储平台之下的是各级代理,代理节点之间通过数据协同API实现数据协同工作。雾存储平台通过与数据存储需求方签订合约来获取待存储数据,其中,数据存储需求方可以是第三方应用,比如抖音或者爱奇艺等。在一个具体的例子中,各级代理节点可以是具备分布存储功能的服务器。
S102、各级代理节点根据设定条件确定待存储数据的权重,并根据权重确定待存储数据的类型,其中,待存储数据的类型包括冷资源和热资源。
其中,设定条件包括数据被访问频率、时长和被点击次数。具体的,各级代理节点会根据待存储数据的被访问频率、时长和被点击次数等参数来计算待存储数据的权重,然后根据权重不同来确定待存储数据的类型。比如,权重大于等于0.5的为热资源,权重小于等于0.5的为冷资源。这样,就可以根据请求的数据的类型,决定收取的费用,类型不同,收取的费用不同。在一个具体的例子中,根据冷热资源合理进行带宽定价,热门资源因访问量高、流量大,因此可以得到一些优惠,而冷门资源因为访问量低,如果外界需要访问它,则需要特殊处理,且冷热资源的性质可以相互转换,使得带宽收费过程最终找到一个平衡点。
S103、各级代理节点对待存储数据进行加工,并根据所述待存储数据的类型将待存储数据以数据量相等的碎片文件的形式存储在各个IPFS用户终端。
具体的,引入IPFS用户终端,而IPFS为存储终端,在一个具体的例子中,IPFS用户终端可以是路由器。雾存储平台根据所述待存储数据的类型将数据分发下去,各级代理点对待存储数据进行加工后再次分发,比如,从一级代理点分发至二级代理点,再从二级代理点分发至三级代理点,直到待存储数据最终被划分为一个个数据量相等的碎片文件,然后各个碎片文件形式存储在各个IPFS用户终端中,以达到高效分散的目的。
在一个具体的例子中,可以根据冷热资源合理安排存储位置,比如一些冷资源只需要部分设备来存储,甚至只需要某个用户终端的一小部分存储空间就可以达到存储目的。这样可以充分利用空闲资源,不但存储资源的拥有者会获得收益,也节省了中心化存储的建设成本。
另外,待存储数据进行分隔后会进行加密,加密后的数据资源,将分散存储在众多结点上,这样能够避免中心化存储的集中式风险,即便某一块数据被泄露,也只是部分数据而非全部数据。使用IPFS去中心化存储,首先降低的是云中心的压力,基于P2P(Peer toPeer,对等)网络,存储的数据将被分割成多个小块,之后分部至各个节点和设备中,用户终端和地方代理商都可以帮助减轻云服务器的压力。示例性的,各个IPFS节点之间通过数据协同SDK(Software Development Kit,软件开发工具包)进行数据同步。
S104、雾存储平台接收来自用户客户端的访问请求,并将与访问请求匹配的IPFS用户终端的节点地址和证书发送至用户客户端。
其中,用户客户端可以是用户的手机,具体的,雾存储平台作为区块链上的一个节点参与公链治理,用户的收益数据上链,雾存储平台的积分系统上链,账务公开透明。数据上传和下载都需要凭证,数据分发的凭证由雾存储平台生成,客户端拥有证书才能请求数据,因此当用户有客户端向雾存储平台发送访问请求时,雾存储平台识别并解析访问请求,确定用户想要请求的数据存储在哪个节点,然后将节点地址和证书发送至客户端。
S105、用户客户端根据节点地址和证书确定目标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终端,删除指定数据,只能删除与雾存储平台相关的数据,用户私有的数据不能删除。
为了使本申请的技术方案更容易理解,图2示出了一种带权重的分布式数据存储的示意图,图3示出了一种天翼云雾存储平台和第三方存储需求方的系统架构和数据流转图,其中,第三方存储需求方比如是抖音和爱奇艺,这里只是举例说明,并不形成具体的限定。
因此,本申请实施例是着眼于区块链应用落地,将区块链与去中心化存储相结合,通过数据权重动态分发存储任务,并根据存储提供者的服务质量给与相应的区块链代币奖励的技术方案。可以将5G基站与家庭宽带进行结合,在提供5G服务可以赚取流量共享费的同时,我们还可以获得存储、数据分发奖励,然而这一切的底层都依赖于区块链的激励模型,我们可以借助区块链的激励模型,给与参与去中心化数据存储和分发的用户相应的激励,从而促进整个区块链+物联网+用户生态的发展。
本发明是实施例提供了一种带权重的分布式数据存储系统,该系统适用于执行本发明实施例提供给的一种带权重的分布式数据存储方法。该系统具体可以包括:雾存储平台、至少一个IPFS用户终端和至少一个客户端;其中,所述雾存储平台和所述至少一个IPFS用户终端用于执行本申请实施例中的带权重的分布式数据存储方法;上述带权重的分布式数据存储方法至少包括如下步骤:雾存储平台获取待存储数据,并将所述待存储数据分发至各级代理节点;所述各级代理节点根据设定条件确定所述待存储数据的权重,并根据所述权重确定所述待存储数据的类型,其中,所述待存储数据的类型包括冷资源和热资源;所述各级代理节点对所述待存储数据进行加工,并根据所述待存储数据的类型将所述待存储数据以数据量相等的碎片文件的形式存储在各个IPFS用户终端;所述雾存储平台接收来自用户客户端的访问请求,并将与所述访问请求匹配的IPFS用户终端的节点地址和证书发送至所述用户客户端;所述用户客户端根据所述节点地址和证书确定目标IPFS用户终端,并从所述目标IPFS用户终端获取请求数据;其中,所述请求数据的费用根据所述请求数据的类型确定。
本发明实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如本发明实施例中的带权重的分布式数据存储方法中各个步骤:雾存储平台获取待存储数据,并将所述待存储数据分发至各级代理节点;所述各级代理节点根据设定条件确定所述待存储数据的权重,并根据所述权重确定所述待存储数据的类型,其中,所述待存储数据的类型包括冷资源和热资源;所述各级代理节点对所述待存储数据进行加工,并根据所述待存储数据的类型将所述待存储数据以数据量相等的碎片文件的形式存储在各个IPFS用户终端;所述雾存储平台接收来自用户客户端的访问请求,并将与所述访问请求匹配的IPFS用户终端的节点地址和证书发送至所述用户客户端;所述用户客户端根据所述节点地址和证书确定目标IPFS用户终端,并从所述目标IPFS用户终端获取请求数据;其中,所述请求数据的费用根据所述请求数据的类型确定。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。