一种基于区块链实现分布式文件存储的方法技术

技术编号:17883934 阅读:40 留言:0更新日期:2018-05-06 04:29
本发明专利技术公开了一种基于区块链实现分布式文件存储的方法,设定发出加入网络请求信息的节点为发起节点,接收加入网络请求信息的节点为接收节点;接收到加入网络请求信息的接收节点,构造回应信息发送至发起节点,并广播该发起节点加入网络的消息;接收到回应信息后的发起节点,将接收节点的ID加入到该发起节点的ID列表中。本发明专利技术采用了基于国际互联网的P2P网络架构,位于同一个网络中的每个节点都是彼此对等,共同提供和共同享受网络服务,不存在任何特殊的节点,节点之间的拓扑结构不是基于地理位置组织起来的,与某个节点互联的节点,可能在地理位置上相距遥远;各节点之间交互运作、协同处理业务,具有可靠性、去中心化、开放性的优点。

A method of realizing distributed file storage based on block chain

The invention discloses a method of distributed file storage based on block chain, setting the node as the initiating node and receiving node as the receiving node, receiving the receiving node that joins the request information of the network, and constructing the response information to the initiating node. Broadcast the message that the initiating node joins the network; after receiving the response information, the initiating node will add the ID of the receiving node to the ID list of the initiating node. The invention adopts the P2P network architecture based on the Internet. Each node in the same network is reciprocal to each other to provide and enjoy the network services together, without any special nodes. The topology of the nodes is not based on the geographical location and the nodes connected to a node, It may be far away from each other in the geographical location, and the nodes operate interactively and cooperate with each other, which has the advantages of reliability, centralization and openness.

【技术实现步骤摘要】
一种基于区块链实现分布式文件存储的方法
本专利技术涉及区块链
,具体涉及一种基于区块链实现分布式文件存储的方法。
技术介绍
现有的区块链技术仅仅是记录简单的账务信息,也就是说只能够记录交易的信息,无论是比特币还是以太币或是其他基于区块链技术的数字货币都有区块大小的限制,导致无法形成海量文件数据的记录;另一方面,现有的文件存储系统都是依赖于中心系统和多备份机制,无法做到去中心化的分布式文件存储方案;数据存储过程中需要获取信任,导致效率低,且数据可靠性差、安全性低、易丢失。
技术实现思路
基于此,针对上述问题,有必要提出一种基于区块链实现分布式文件存储的方法,本专利技术使得位于同一个网络中的每个节点都是彼此对等,共同提供和共同享受网络服务,不存在任何特殊的节点,节点之间的拓扑结构不是基于地理位置组织起来的,与某个节点互联的节点,可能在地理位置上相距遥远;各节点之间交互运作、协同处理业务,具有可靠性、去中心化、开放性的优点。本专利技术的技术方案是:一种基于区块链实现分布式文件存储的方法,设定发出加入网络请求信息的节点为发起节点,接收加入网络请求信息的节点为接收节点,包括以下步骤:a、接收到加入网络请求信息的接收节点,构造回应信息发送至发起节点,并广播该发起节点加入网络的消息;b、接收到回应信息后的发起节点,将接收节点的ID加入到该发起节点的ID列表中。本专利技术是一个基于区块链技术的自治共享存储网络,通过共享全球存储资源,利用区块链技术,将文件分片存储,构建去中心化的云存储,成为全球区块链分布式文件存储的基础设施;其采用了基于国际互联网的P2P网络架构,位于同一个网络中的每个节点都是彼此对等,共同提供和共同享受网络服务,不存在任何特殊的节点;根据节点所提供的功能或权限的不同,各节点可能具有不同的分工,每个节点都是由路由、服务发现、文件记录数据库、文件存储服务、文件上传、文件下载的功能集合。作为上述方案的进一步优化,所述步骤a包括以下步骤:a1、接收到加入网络请求信息后的接收节点,验证该请求信息的各项参数是否正确;如果是,则验证通过,构造回应信息发送至发起节点,并进入步骤a2;如果否,则验证失败,拒绝发起节点加入网络的请求,结束流程;a2、解析接收节点的配置策略,判断配置策略中是否需要将发起节点ID加入接收节点的ID列表中,如果是,则将发起节点ID加入到接收节点ID列表中,并进入步骤a3;如果否,则直接进入步骤a3;a3、判断配置策略中是否选择广播发起节点加入网络的消息,如果是,则随机选择该发起节点中4-5个节点信息,并广播该发起节点加入网络的消息;如果否,则不进行广播。在本方案中,任何一个节点在新启动的时候,都会根据默认配置的BootStrap地址列表随机选择若干节点发送加入网络的请求,接收节点在收到加入网络的请求后,首先验证请求参数里的各项信息是否正确,在验证所有参数后,如果验证失败,则回应拒绝节点加入网络请求的信息;如果验证成功,首先构造回应消息包并发送给发起节点,另外根据接收节点的配置策略选择将新节点加入到自己的节点列表里,同时根据接收节点的配置策略选择是否广播该节点加入网络的消息;相对于其他分布式存储或分布式计算的完全依赖节点的自觉性不同,本专利技术旨在打造一种共享经济的商业模式,打造一个空闲存储空间的分享交易市场,使个人计算机的闲置资源加以利用,只要分享自己的空闲硬盘,就能取得对应的经济收益,最终在充分竞争的市场下,大家都能以极低的价格使用绝对安全的去中心存储。作为上述方案的进一步优化,所述步骤b包括以下步骤:b1、接收到回应信息后的发起节点,验证该回应信息的签名信息是否正确,如果是,则验证通过,进入步骤b2;如果否,则验证失败,拒绝解析该回应消息,结束流程;b2、解析该回应消息,读取回应消息中包括ReqPeerID、ResPeerID、Net以及Result的数据结构参数;b3、判断参数ReqPeerID是否为接收到该回应信息的发起节点ID,如果是,则将参数ResPeerID和Net加入到发起节点ID列表中;如果否,则不加入到发起节点ID列表中,并结束流程。在本方案中,任何发起加入网络请求的节点在收到回应后,首先验证回应结果的签名信息,验证通过后读取回应包的数据结构,回应的数据结构包含如下信息:ReqPeerID,表示向接收节点发出加入网络请求信息的发起节点ID;ResPeerID,表示验证节点的ID,即向发起节点发出回应消息的接收节点ID;Net,表示验证节点的基础网络信息及签名,即发出回应消息的接收节点的基础网络信息及签名;Result,表示验证的结果;当接收节点接收到发起节点发出的加入网络请求信息后,会构造一个回应信息给发起节点,当验证回应信息的签名通过后,判断回应信息中的ReqPeerID(即发出加入网络请求信息的发起节点ID)是否与接收该回应消息的发起节点ID为同一ID,如果是,就将发起回应信息的接收节点ID以及其网络信息加入到该发起节点的ID列表中;使各节点之间交互运作、协同处理业务,同时对数据进行验证,保证了数据存储的安全性,实现对数据的去中心化存储。作为上述方案的进一步优化,还包括文件上传步骤:获取文件上传权限后,确定需要上传的文件;解析上传文件的大小及类型,确认该文件的储存空间等级;接收发起节点的需求,并将包括价格、级别、宽带速度以及在线时长的信息数据传回发起节点。在发起节点接收回传信息,如果时效经过3000ms或发起节点已经向周围扩散3跳或已接收到50条反馈记录,则结束回传信息的接收。作为上述方案的进一步优化,所述文件上传步骤还包括:发起节点接收信息后,根据中心规则备份数量,将最优价格选项进行汇总,并呈报至发起节点;判断是否接受该价格,如果是,则将文件进行切片,并将碎片按照备份数量分别储存到在线的相邻节点空间上;如果否,则拒绝上传文件。在本方案中,所选择文件的空间等级包括有空间大小、上传速度、稳定性等参数,在上传过程中,为保障供需双方利益,需要支付一定上传费用,在支付对应的赤币(上传费用)后,按照文件空间等级中参数的设定,并通过设定的文件分割方案对文件进行分片,使每个分片文件独立上传至分布式节点中,该存储的文件具有以下特点:其一是随处皆同等:不存在中央数据中心,数据一旦产生并进入本专利技术的区块链中,那么数据就会像幽灵一样永远存在于网络,永远不会丢失;任何人在任何地方都可以获得存储的数据,快速有效,全网同步;其二是永久记录:全球很多分布的计算机一起对数据在一定规则下分布存储,冗余备份,某些节点出现问题并不会影响其他存储的计算机。作为上述方案的更进一步优化,还包括文件下载步骤:获取文件下载权限,搜索待下载文件的地址进行下载,如果地址错误,则搜索失败;如果地址正确,则搜索成功,进行文件下载支付;判断是否支付成功,如果是,则进行文件下载;如果否,则拒绝进行文件下载;下载节点广播该文件地址的详细分片索引数据的请求,获取该下载文件的所有分片的索引hash值。文件经分片上传后,用户得到一串文件编码地址,所以下载文件时只需要输入该编码地址既可搜索到相应的下载文件,并且,由于是去中心化的存储服务,所以需要支付一定费用进行下载,起到一定保障作用;在下载前,首先下载节点会广播该文件地址的详细分片索引数据本文档来自技高网...
一种基于区块链实现分布式文件存储的方法

【技术保护点】
一种基于区块链实现分布式文件存储的方法,其特征在于,设定发出加入网络请求信息的节点为发起节点,接收加入网络请求信息的节点为接收节点,包括以下步骤:a、接收到加入网络请求信息的接收节点,构造回应信息发送至发起节点,并广播该发起节点加入网络的消息;b、接收到回应信息后的发起节点,将接收节点的ID加入到该发起节点的ID列表中。

【技术特征摘要】
1.一种基于区块链实现分布式文件存储的方法,其特征在于,设定发出加入网络请求信息的节点为发起节点,接收加入网络请求信息的节点为接收节点,包括以下步骤:a、接收到加入网络请求信息的接收节点,构造回应信息发送至发起节点,并广播该发起节点加入网络的消息;b、接收到回应信息后的发起节点,将接收节点的ID加入到该发起节点的ID列表中。2.根据权利要求1所述的基于区块链实现分布式文件存储的方法,其特征在于,所述步骤a包括以下步骤:a1、接收到加入网络请求信息后的接收节点,验证该请求信息的各项参数是否正确;如果是,则验证通过,构造回应信息发送至发起节点,并进入步骤a2;如果否,则验证失败,拒绝发起节点加入网络的请求,结束流程;a2、解析接收节点的配置策略,判断配置策略中是否需要将发起节点ID加入接收节点的ID列表中,如果是,则将发起节点ID加入到接收节点ID列表中,并进入步骤a3;如果否,则直接进入步骤a3;a3、判断配置策略中是否选择广播发起节点加入网络的消息,如果是,则随机选择该发起节点中4-5个节点信息,并广播该发起节点加入网络的消息;如果否,则不进行广播。3.根据权利要求1所述的基于区块链实现分布式文件存储的方法,其特征在于,所述步骤b包括以下步骤:b1、接收到回应信息后的发起节点,验证该回应信息的签名信息是否正确,如果是,则验证通过,进入步骤b2;如果否,则验证失败,拒绝解析该回应消息,结束流程;b2、解析该回应消息,读取回应消息中包括ReqPeerID、ResPeerID、Net以及Result的数据结构参数;b3、判断参数ReqPeerID是否为接收到该回应信息的发起节点ID,如果是,则将参数ResPeerID和Net加入到发起节点ID列表中;如果否,则不加入到...

【专利技术属性】
技术研发人员:史凌云王波梁磊高明
申请(专利权)人:成都赤乌软件技术有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1