CN111182067A - 一种基于星际文件系统ipfs的数据写入方法及设备 - Google Patents

一种基于星际文件系统ipfs的数据写入方法及设备 Download PDF

Info

Publication number
CN111182067A
CN111182067A CN201911408675.9A CN201911408675A CN111182067A CN 111182067 A CN111182067 A CN 111182067A CN 201911408675 A CN201911408675 A CN 201911408675A CN 111182067 A CN111182067 A CN 111182067A
Authority
CN
China
Prior art keywords
node
data
nodes
client
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911408675.9A
Other languages
English (en)
Other versions
CN111182067B (zh
Inventor
李昕
郭本信
王麟
李涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Kunyao Network Technology Co Ltd
Original Assignee
Shanghai Kunyao Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Kunyao Network Technology Co Ltd filed Critical Shanghai Kunyao Network Technology Co Ltd
Priority to CN201911408675.9A priority Critical patent/CN111182067B/zh
Publication of CN111182067A publication Critical patent/CN111182067A/zh
Application granted granted Critical
Publication of CN111182067B publication Critical patent/CN111182067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明公开了一种基于星际文件系统IPFS的数据写入方法,应用于包含客户端和多个节点形成的IPFS网络的分布式存储系统中,该方法包括:当接收到客户端发送的数据写入请求时,节点从IPFS网络的其他节点中选取用于写入数据的存储节点;节点向客户端通告存储节点,以使各存储节点分别写入与上传数据文件对应的多个数据块以及哈希信息;节点在各存储节点完成写入后同步更新各存储节点的存储信息,通过本申请的技术方案,能在保证数据写入可靠性前提下提高数据写入效率以及一致性,提高了工作效率及使用体验。

Description

一种基于星际文件系统IPFS的数据写入方法及设备
技术领域
本发明涉及存储技术领域,特别涉及一种基于星际文件系统IPFS的数据 写入方法。本发明同时还涉及一种基于星际文件系统IPFS的数据写入设备。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络 存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的 瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布 式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷, 利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取 效率,还易于扩展。
分布式存储系统会部署多个集群,每个集群中一般有一个总控节点,其 它节点为工作节点,由总控节点根据全局负载信息进行整体调度。分布式存 储系统中的数据会被保存为多个副本,其中一个为主副本,其它副本为备副 本。
在数据写入时,现有技术中的客户端将写请求发送给主副本,主副本通 过复制协议(强一致性同步或异步复制)进行数据备份,数据写入成功后通 知客户端。如果采用强一致性同步,保证了存储系统的一致性,然而,当主 备副本之间出现网络或其它故障时,写操作将被阻塞,系统的可用性无法得 到满足。如果采用异步复制,保证了存储系统的可用性,但是无法做到强一 致性。
由此可见,针对目前的数据存储系统,如何在保证数据写入可靠性的前 提下提高数据写入效率以及一致性,成为本领域技术人员亟待解决的技术问 题。
发明内容
本发明提供一种基于IPFS(Inter-Planetary File System,星际文件系 统)的数据写入方法,用以解决现有技术中当主副本之间出现网络或其它故 障时,写操作将被阻塞,异步复制时无法做到强一致性的技术问题,该方法 应用于包含客户端的分布式存储系统中,所述分布式存储系统还包含由多个 节点形成的IPFS网络,所述客户端与各所述节点分别连接,该方法包括:
当接收到客户端发送的数据写入请求时,所述节点从所述IPFS网络的其 他节点中选取用于写入数据的存储节点;
所述节点向所述客户端通告所述存储节点,以使各所述存储节点分别写 入与上传数据文件对应的多个数据块以及哈希信息;所述多个数据块是通过 将所述上传数据文件通过数据切片处理生成的,所述哈希信息根据各所述数 据块的哈希值生成;
所述节点在各所述存储节点完成写入后同步更新各所述存储节点的存储 信息。
优选地,还包括:
当所述节点接收到来自于客户端的数据读取请求时,所述节点将所述数 据读取请求中携带的哈希信息通过列表在所述IPFS网络中进行广播,并判断 自身是否存储与所述数据读取请求中携带的哈希信息对应的数据块;
若存在,所述节点向所述客户端发送所述数据块。
优选地,还包括:
当所述节点判断自身存储的哈希信息中存在与所述IPFS网络中广播列表 的哈希信息匹配时,所述节点将匹配的哈希信息对应的数据块向所述客户端 发送。
优选地,所述节点从所述IPFS网络的其他节点中选取用于写入数据的存 储节点,具体为:
根据各所述其他节点的设备性能信息、所述存储信息、状态信息以及连 接状态信息确定各所述其他节点的评价值;
按照评价值从高至低的顺序依次选择指定数量的其他节点作为所述存储 节点。
优选地,在接收到客户端发送的数据写入请求之前,还包括:
所述节点生成与自身唯一对应的标识ID;
所述节点根据节点配置文件与所述IPFS网络中的目标节点连接,所述节 点配置文件预置于所述节点。
相对应的,本发明还提出了一种基于星际文件系统IPFS的数据写入设备, 其特征在于,所述设备应用于包含客户端的分布式存储系统中,所述分布式 存储系统还包含由多个节点形成的IPFS网络,所述客户端与各所述节点分别 连接,该设备包括:
接收模块,用于当接收到客户端发送的数据写入请求时,从所述IPFS网 络的其他节点中选取用于写入数据的存储节点;
写入模块,用于向所述客户端通告所述存储节点,以使各所述存储节点 分别吸入与上传数据文件对应的多个数据块以及哈希信息;所述多个数据块 是通过将所述上传数据文件通过数据切片处理生成的,所述哈希信息是根据 各所述数据块的哈希值生成;
同步模块,用于在各所述存储节点完成写入后同步更新各所述存储节点 的存储信息。
优选的,还包括:
读取模块,用于当接收到来自客户端的数据读取请求时,将所述数据读 取请求中携带的哈希信息通过列表在所述IPFS网络中进行广播,并判断自身 是否存储于所述数据读取请求中携带的哈希信息对应的数据块,以及在存在 时向所述客户端发送所述数据块。
优选的,所述读取模块,还具体用于:
当判断自身存储的哈希信息中存在于所述IPFS网络中广播列表的哈希信 息匹配时,将匹配的哈希信息对应的数据块想所述客户端发送。
优选的,所述接收模块,还具体用于:
根据各所述其他节点的设备性能信息、存储信息、状态信息以及连接状 态信息确定各所述其他节点的评价值;
按照评价值从高至低的顺序依次选择指定数量的其他节点作为所述存储 节点。
优选的,还包括:
生成模块,用于生成与自身唯一对应的标识ID;
连接模块,用于根据节点配置文件与所述IPFS网络中的目标节点连接, 所述节点配置文件预置与所述节点。
由此可见,通过应用本申请的技术方案,当接收到客户端发送的数据写 入请求时,所述节点从所述IPFS网络的其他节点中选取用于写入数据的存储 节点;所述节点向所述客户端通告所述存储节点,以使各所述存储节点分别 写入与上传数据文件对应的多个数据块以及哈希信息,所述多个数据块是通 过将所述上传数据文件通过数据切片处理生成的,所述哈希信息根据各所述 数据块的哈希值生成;所述节点在各所述存储节点完成写入后同步更新各所 述存储节点的存储信息,通过本申请的技术方案,能在保证数据写入可靠性 前提下提高数据写入效率以及一致性,提高了工作效率及使用体验。
附图说明
图1为本申请实施例提出的一种基于星际文件系统IPFS的数据写入方法 的流程示意图;
图2为本申请实施例提出的另一种基于星际文件系统IPFS的数据写入方 法的流程示意图;
图3为本申请实施例提出的一种基于星际文件系统IPFS的数据写入方法 的运行示意图;
图4为本申请实施例提出的数据切片最优分割正态分布示意图;
图5为本申请实施例提出的一种基于星际文件系统IPFS的数据读取方法 流程示意图;
图6为本申请实施例提出的一种基于星际文件系统IPFS的数据写入设备 的结构示意图;
图7为本申请实施例提出的对等节点网络示意图;
图8为本申请提出的数据块中哈希值与默克尔有向无环图数据结构联系 图;
图9为本申请提出的一种基于星际文件系统IPFS的数据读取方法运行示 意图。
具体实施方式
如背景技术所述,现有技术中普遍是客户端将写请求发送给主副本,主 副本通过复制协议(强一致性同步或异步复制)进行数据备份,数据写入成 功后通知客户端,当主备副本之间出现网络或其他故障时,写操作将被阻塞, 系统的可用性无法得到满足,采用异步复制时,无法做到强一致性。
为解决上述问题,本申请实施例提出了基于星际文件系统IPFS的数据写 入方法,用于在保证数据写入可靠性的前提下提高数据写入效率以及一致 性。
如图1所示为本发明实施例提出的一种基于星际文件系统IPFS的数据写 入方法的流程示意图,所述方法应用于包含客户端的分布式存储系统中,所 述分布式存储系统还包含由多个节点形成的IPFS网络,所述客户端与各所述 节点分别连接,该方法包括以下步骤:
步骤S101、当接收到客户端发送的数据写入请求时,所述节点从所述IPFS 网络的其他节点中选取用于写入数据的存储节点。
IPFS是一种内容可寻址的对等超媒体分发协议,能将所有具有相同文件 系统的设备连接在一起,原理用基于内容的地址替代基于域名或IP的地址, 也就是用户寻找的不是某个地址而是储存在某个地方的内容。
具体的,在本发明的技术方案中,为了解决主备副本节点之间出现网络 或其他故障时写操作将被阻塞的问题,本发明IPFS网络中所有的节点都可作 为对等节点,也就是说,在本发明的技术方案中,任意的节点都是对等的, 如图7所示,任意的节点都可以承担主要的读取任务或写入任务,当任一节点 接收到来自客户端的写入请求时便会从IPFS网络中的其他节点中选取用于写 入数据的存储节点。
为了快速可靠的写入数据,在本申请优选的实施例中,所述节点从所述 IPFS网络的其他节点中选取用于写入数据的存储节点,具体为:
根据各所述其他节点的设备性能信息、所述存储信息、状态信息以及连 接状态信息确定各所述其他节点的评价值;
按照评价值从高至低的顺序依次选择指定数量的其他啊节点作为所述存 储节点。
具体的,当任一节点接收到客户端发送的数据写入请求时,该响应节点 将该请求同步至IPFS网络中,并可根据其他节点的设备性能信息、存储信息、 状态信息以及网络连接信息(响应时间、丢包率、上下行速度等)计算其他 节点的评价值,并按照评价值从高至低的顺序依次选择指定数量的其他节点 作为存储节点。
需要指出的是,以上具体实施方案虽然以具体的信息计算评价值推荐节 点进行了说明,但相关对节点推荐的方法并不局限于此,任何本领域普通技 术人员能思之的变化都应落入本申请的保护范围
在本申请优选的实施例中,在接收到客户端发送的数据写入请求之前, 还包括:
所述节点生成与自身唯一对应的标识ID;
所述节点根据节点配置文件与所述IPFS网络中的目标节点连接,所述节 点配置文件预置于所述节点。
具体的,在本发明的IPFS网络中,每一个节点在刚进入IPFS网络时都将 会生成唯一的节点ID,每一个新节点都将预置配置文件,配置文件中配置要 连接的一个或多个目标节点,在进入本发明的IPFS网络时便可建立与目标节 点的链接。
需要注意的是,新节点在本发明的IPFS网络中可间接地与未直接连接的 节点产生连接并实现直接数据传输。
步骤S102、所述节点向所述客户端通告所述存储节点,以使各所述存储 节点分别写入与上传数据文件对应的多个数据块以及哈希信息;所述多个数 据块是通过将所述上传数据文件通过数据切片处理生成的,所述哈希信息根 据各所述数据块的哈希值生成。
具体的,接收到客户端数据写入请求的响应节点向客户端通告可以进行 写入操作的存储节点,
哈希是一个把任意长度的数据映射成固定长度数据的函数,使用哈希算 法可以提高存储空间的利用率,可以提高数据的查询效率。
客户端在进行写入和上传数据时,在客户端本地会将数据进行切片,数 据切片可使用两种方式:
1、固定长度分块,也即平均分割法,是将数据文件平均分成若干块,
该方法实现简单,
2、可变长度分块,可变长度分块是在数据中找到一种规律或定义一种 规则将数据进行分块,最优规则应使分块后的block在一个大小周 围成正态分布,如图4所示,
需要指出的是,以上具体实施方案虽然以具体的方法对数据切片进行了 说明,但相关对数据切片的方法并不局限于此,任何本领域普通技术人员能 思之的变化都应落入本申请的保护范围。
将需要写入或上传的数据进行切片之后,每一个数据块都会生成唯一的 哈希值,同时会将这些数据块以默克尔有向无环图的数据结构进行联系起来, 并生成一个根哈希值作为该文件的哈希标识,如图8所示,不同的文件会产生 不同的哈希值,这种计算方式是本发明保证数据一致性的基础,默克尔有向 无环图是一种无回路的有向图。
当发起写入请求后,响应节点所推荐的指定数量的其他节点将会并发的 执行写入任务,数据文件切片后的数据块和默克尔有向无环图的数据结构都 将保存至推荐节点本地中,写入时,任意节点完成数据文件的写入后,便返 回客户端写入或上传成功,实现最快节点响应,其余写入的节点还将自动执 行,当推荐的指定数量节点均写入完成后写入任务终止。
步骤S103、所述节点在各所述存储节点完成写入后同步更新各所述存储 节点的存储信息。
具体的,在本申请优选实施例中,每个节点都会创建分布式哈希表,在 该表中会包含节点信息、本节点下存储的所有数据及数据结构关系、数据存 储的节点信息,写入数据时,本地哈希表将会被更新,并与其他节点同步信 息,如图3所示。
为了客户端高速读取所需要的数据文件,在本申请优选的实施例中,具 体为:
当所述节点接收到来自于客户端的数据读取请求时,所述节点将所述数 据读取请求中携带的哈希信息通过列表在所述IPFS网络中进行广播,并判断 自身是否存储与所述数据读取请求中携带的哈希信息对应的数据块;
若存在,所述节点向所述客户端发送所述数据块。
具体的,在本申请的优选实施例中,数据读取是采用内容寻址方式,内 容寻址的标识则是文件写入时进行哈希运算后的哈希值,客户端读取数据是 通过哈希值访问内容,本发明的技术方案在进行数据写入时还构建了哈希表, 在哈希表中记录了哪些节点存储了哪些文件,当客户端通过哈希值发起读请 求时,本发明中的IPFS网络中任意节点都可进行响应,若响应的节点存在该 客户端需要读取的数据时,则以该文件的数据块为单位向客户端发送数据, 若响应的节点不存在该客户端需要读取的数据时,则该响应的节点将客户端 发来的读取任务生成wantlist清单向全网进行广播,该清单以内容哈希列表 的形式展示。
需要注意的是,本发明中响应客户端的读取任务和创建wantlist清单并 广播是同时进行的,因此,在用户读取任务的过程中,响应读取任务的节点 是逐步增加的,直到达到一个预设的阈值,也就是说,在系统中的多个副本 节点均向客户端发送数据块,在响应读取任务节点增加的过程中,响应的节 点还可根据响应读取任务节点与客户端位置关系、网络响应速度等实现节点 的智能推荐。
在数据块返回至客户端之后,客户端会根据默克尔有向无环图数据结构 进行数据还原,因为在数据写入时,每一个数据块都会生成唯一的哈希值, 并且会同时将这些数据块以默克尔有向无环图的数据结构进行联系起来,若 读取的数据文件为流媒体文件,数据块还可在客户端直接进行访问,实现流 媒体访问与文件加载同步。
为了快速响应客户端的读取任务,在本申请的优选实施例中,当所述节 点判断自身存储的哈希信息中存在于所述IPFS网络中广播列表的哈希信息匹 配时,所述节点将匹配的哈希信息对应的数据块想所述客户端发送。
具体的,响应节点将wantlist清单在IPFS网络中进行广播时,所有收到 该广播的节点将判断自身存储的哈希信息中是否与广播列表中的哈希信息相 匹配,若匹配则将匹配的哈希信息对应的数据块向客户端发送。
通过应用以上技术方案,当接收到客户端发送的数据写入请求时,所述 节点从所述IPFS网络的其他节点中选取用于写入数据的存储节点;所述节点 向所述客户端通告所述存储节点,以使各所述存储节点分别写入与上传数据 文件对应的多个数据块以及哈希信息,所述多个数据块是通过将所述上传数 据文件通过数据切片处理生成的,所述哈希信息根据各所述数据块的哈希值 生成;所述节点在各所述存储节点完成写入后同步更新各所述存储节点的存 储信息,通过本申请的技术方案,能在保证数据写入可靠性前提下提高数据 写入效率以及一致性,提高了工作效率及使用体验。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明 数据写入的技术方案进行说明,如图2所示。
步骤S201、接收数据写入请求命令
客户端向IPFS网络中任一节点发送写入请求,该响应节点将写入请求同 步至该网络中,然后该响应节点根据网络中其他节点的读写任务量、设备性 能信息(已占用CPU、存储空间等)、节点与客户端网络连接情况计算各节点 的评价值,评价值越大的节点将会优先执行数据写入任务,响应节点将根据 评价值从高至低的顺序返回给客户端N个推荐的写入节点,N可为系统中默认 设置冗余参数或用户自主设定的冗余参数。
步骤S202、数据切片
客户端接收到响应节点返回的推荐节点后,也可在等待响应节点返回推 荐节点过程中,根据固定长度分块和可变长度分块两种切片方式或者其他切 片方式对需要写入的数据文件进行切片。
同时将切片后的每一个数据块生成唯一的哈希值,并将这些数据块以默 克尔有向无环图的数据结构进行联系起来,生成一个根哈希值作为该数据文 件的哈希标识,哈希算法根据数据文件实际内容来生成,不同文件生成不同 的哈希值。
步骤S203、数据写入
当客户端完成步骤S202中的处理后,将数据文件切片后的数据块和默克 尔有向无环图的数据结构进行上传,响应节点推荐的N个节点将会并发执行 写入任务,数据块和默克尔有向无环图的数据结构都将会保存在节点本地仓 库中,任意节点在完成数据文件的写入后,便返回客户端写入成功,实现最 快节点响应,其它冗余的写入任务将会自动执行,在推荐的节点都完成数据 写入后写入任务才终止。
并且,每个节点都会创建分布式哈希表,该表中包含节点信息、本节点 下存储的所有数据及数据结构关系、数据存储的节点信息,每当写入新数据 时,本地节点哈希表将会被更新,并与其他节点同步信息。
通过应用以上技术方案,向客户端按评价值推荐存储节点,客户端本地 将数据文件进行切片成数据块并生成唯一的哈希值,将数据块以默克尔有向 无环图的数据结构进行联系,对所有推荐的节点都进行数据写入,最先完成 写入的即刻向客户端返回数据写入成功,避免了现有技术中主备副本之间出 现故障,写操作被阻塞,系统的可用性无法得到满足的问题,提高了数据写 入的可靠性。
同时,现结合具体的应用场景,对本发明数据读取的技术方案进行说明, 如图5所示。
步骤S501、获取数据读取请求
本系统的数据读取是采用的内容寻址方式,客户端通过哈希值访问内容, 本系统中构建有分布式哈希表,在该表中记录了哪些节点存储了哪些文件, 当客户端通过哈希值发起读取请求时,本系统中的任意节点都可进行响应, 当响应节点接收到读取请求时,首先判断自身是否存在该请求读取的数据, 若存在,则以该文件的数据块为单位向客户端发送数据。
步骤S502、广播任务清单
当响应节点自身不存在所需要读取的数据文件时,便在执行读取任务时 生成wantlist清单并向全网广播,该清单内容以哈希列表的形式展示客户端 发来的所有读取任务清单。
步骤S503、返回数据
在本系统IPFS网络中存储有需要读取的文件的节点接收到步骤S502中 的广播后,将会直接与客户端进行数据传输,并且,用户在读取数据的过程 中,响应读取任务的节点是逐步增加直到达到N值,也即系统中的N个节点 均向客户端发送数据块,同时,为了高效的进行数据传输,还可根据节点与 客户端位置关系、网络响应速度、数据传输速度等实现节点的智能推荐,客 户端在接收到数据块后会根据默克尔有向无环图数据结构进行还原文件。
通过应用以上技术方案,客户端通过哈希值访问内容,多节点返回数据 文件,并从多节点中智能推荐节点传输数据,返回完毕后根据默克尔有向无 环图数据结构还原文件,如图9所示,避免了主备副本之间出现问题无法连 接从而导致数据无法读取的问题。
为了达到以上技术目的,本申请实施例还提出了一种基于星际文件IPFS 的数据写入设备,如图6所示,所示设备包括:
接收模块601:用于当接收到客户端发送的数据写入请求时,从所述所述 IPFS网络的其他节点中选取用于写入数据的存储节点;
写入模块602:用于向所述客户端通告所述存储节点,以使各所述存储节 点分别吸入与上传数据文件对应的多个数据块以及哈希信息;所述多个数据 块是通过将所述上传数据文件通过数据切片处理生成的,所述哈希信息是根 据各所述数据块的哈希值生成;
同步模块603:用于在各所述存储节点完成写入后同步更新个所述存储节 点的存储信息。
在具体的应用场景中,还包括:
读取模块:用于接收到来自客户端的数据读取请求时,将所述数据读取 请求中携带的哈希信息通过列表在所述IPFS网络中进行广播,并判断自身是 否存储于所述数据读取请求中携带的哈希信息对应的数据块,以及在存在时 向所述客户端发送所述数据块。
在具体的应用场景中,所述读取模块,还具体用于:
当判断自身存储的哈希信息中存在于所述IPFS网络中广播列表的哈希信 息匹配时,将匹配的哈希信息对应的数据块想所述客户端发送。
在具体的应用场景中,所述接收模块601,还具体用于:
根据各所述其他节点的设备性能信息、存储信息、状态信息以及连接状 态信息确定各所述其他节点的评价值;
按照评价值从高至低的顺序依次选择指定数量的其他节点作为所述存储 节点。
在具体的应用场景中,还包括:
生成模块:用于生成与自身唯一对应的标识ID;
连接模块,用于根据节点配置文件与所述IPFS网络中的目标节点连接, 所述节点配置文件预置与所述节点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。 基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软 件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘 等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务 器,或者网络设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中 的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景 描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施 场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可 以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于 此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (10)

1.一种基于星际文件系统IPFS的数据写入方法,其特征在于,所述方法应用于包含客户端的分布式存储系统中,所述分布式存储系统还包含由多个节点形成的IPFS网络,所述客户端与各所述节点分别连接,该方法包括:
当接收到客户端发送的数据写入请求时,所述节点从所述IPFS网络的其他节点中选取用于写入数据的存储节点;
所述节点向所述客户端通告所述存储节点,以使各所述存储节点分别写入与上传数据文件对应的多个数据块以及哈希信息;所述多个数据块是通过将所述上传数据文件通过数据切片处理生成的,所述哈希信息根据各所述数据块的哈希值生成;
所述节点在各所述存储节点完成写入后同步更新各所述存储节点的存储信息。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述节点接收到来自于客户端的数据读取请求时,所述节点将所述数据读取请求中携带的哈希信息通过列表在所述IPFS网络中进行广播,并判断自身是否存储与所述数据读取请求中携带的哈希信息对应的数据块;
若存在,所述节点向所述客户端发送所述数据块。
3.如权利要求2所述的方法,其特征在于,还包括:
当所述节点判断自身存储的哈希信息中存在与所述IPFS网络中广播列表的哈希信息匹配时,所述节点将匹配的哈希信息对应的数据块向所述客户端发送。
4.如权利要求1-3任一项所述的方法,其特征在于,所述节点从所述IPFS网络的其他节点中选取用于写入数据的存储节点,具体为:
根据各所述其他节点的设备性能信息、所述存储信息、状态信息以及连接状态信息确定各所述其他节点的评价值;
按照评价值从高至低的顺序依次选择指定数量的其他节点作为所述存储节点。
5.如权利要求4所述的方法,其特征在于,在接收到客户端发送的数据写入请求之前,还包括:
所述节点生成与自身唯一对应的标识ID;
所述节点根据节点配置文件与所述IPFS网络中的目标节点连接,所述节点配置文件预置于所述节点。
6.一种基于星际文件系统IPFS的数据写入设备,其特征在于,所述设备应用于包含客户端的分布式存储系统中,所述分布式存储系统还包含由多个节点形成的IPFS网络,所述客户端与各所述节点分别连接,该设备包括:
接收模块,用于当接收到客户端发送的数据写入请求时,从所述所述IPFS网络的其他节点中选取用于写入数据的存储节点;
写入模块,用于向所述客户端通告所述存储节点,以使各所述存储节点分别写入与上传数据文件对应的多个数据块以及哈希信息;所述多个数据块是通过将所述上传数据文件通过数据切片处理生成的,所述哈希信息是根据各所述数据块的哈希值生成;
同步模块,用于在各所述存储节点完成写入后同步更新个所述存储节点的存储信息。
7.如权利要求6所述设备,其特征在于,还包括:
读取模块,用于当接收到来自客户端的数据读取请求时,将所述数据读取请求中携带的哈希信息通过列表在所述IPFS网络中进行广播,并判断自身是否存储于所述数据读取请求中携带的哈希信息对应的数据块,以及在存在时向所述客户端发送所述数据块。
8.如权利要求7所述设备,其特征在于,所述读取模块,还具体用于:
当判断自身存储的哈希信息中存在于所述IPFS网络中广播列表的哈希信息匹配时,将匹配的哈希信息对应的数据块想所述客户端发送。
9.如权利要求6-8任一项所述的设备,其特征在于,所述接收模块,还具体用于:
根据各所述其他节点的设备性能信息、存储信息、状态信息以及连接状态信息确定各所述其他节点的评价值;
按照评价值从高至低的顺序依次选择指定数量的其他节点作为所述存储节点。
10.如权利要求9所述的设备,其特征在于,还包括:
生成模块,用于生成与自身唯一对应的标识ID;
连接模块,用于根据节点配置文件与所述IPFS网络中的目标节点连接,所述节点配置文件预置与所述节点。
CN201911408675.9A 2019-12-31 2019-12-31 一种基于星际文件系统ipfs的数据写入方法及设备 Active CN111182067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911408675.9A CN111182067B (zh) 2019-12-31 2019-12-31 一种基于星际文件系统ipfs的数据写入方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911408675.9A CN111182067B (zh) 2019-12-31 2019-12-31 一种基于星际文件系统ipfs的数据写入方法及设备

Publications (2)

Publication Number Publication Date
CN111182067A true CN111182067A (zh) 2020-05-19
CN111182067B CN111182067B (zh) 2021-08-27

Family

ID=70654203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911408675.9A Active CN111182067B (zh) 2019-12-31 2019-12-31 一种基于星际文件系统ipfs的数据写入方法及设备

Country Status (1)

Country Link
CN (1) CN111182067B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767250A (zh) * 2020-06-10 2020-10-13 钛星投资(深圳)有限公司 去中心化存储方法、下载方法及存储系统
CN112069259A (zh) * 2020-09-09 2020-12-11 天津大学 一种基于区块链的多云环境数据存储系统及方法
CN112181297A (zh) * 2020-09-24 2021-01-05 普华云创科技(北京)有限公司 一种分布式文件切片生成与存储系统及其控制方法
CN112187912A (zh) * 2020-09-24 2021-01-05 普华云创科技(北京)有限公司 一种基于分布式网络的数据漫游方法与装置
CN112306721A (zh) * 2020-11-11 2021-02-02 天津汇商共达科技有限责任公司 一种数据对接设备连续自主运行稳定性的优化方法
CN112348140A (zh) * 2020-11-27 2021-02-09 杭州安恒信息技术股份有限公司 条形码信息存储方法、查询方法、电子装置和存储介质
CN113434094A (zh) * 2021-07-08 2021-09-24 山东中科好靓科技有限公司 一种基于ipfs的数据文件存储提取方法
CN113434093A (zh) * 2021-07-08 2021-09-24 山东中科好靓科技有限公司 一种可有效提高存储能力的ipfs数据存储方法
CN114338700A (zh) * 2021-12-23 2022-04-12 杭州星布智能科技有限公司 局域网点对点分布式存储方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667884A (zh) * 2017-04-01 2018-10-16 华为技术有限公司 镜像分发方法、镜像获取方法及装置
US20180308134A1 (en) * 2015-12-21 2018-10-25 Kochava Inc. Self regulating transaction system and methods therefor
CN108769146A (zh) * 2018-05-11 2018-11-06 北京奇虎科技有限公司 一种基于区块链的数据传输方法、装置及区块链系统
CN109450996A (zh) * 2018-10-25 2019-03-08 国信优易数据有限公司 一种数据上链管理方法、装置、设备和区块链系统
CN109617903A (zh) * 2018-12-29 2019-04-12 杭州趣链科技有限公司 一种基于ipfs和区块链的可信文件存储系统及方法
CN109992447A (zh) * 2017-12-29 2019-07-09 杭州华为数字技术有限公司 数据复制方法、装置及存储介质
CN110569213A (zh) * 2018-05-18 2019-12-13 北京果仁宝软件技术有限责任公司 文件存取方法、装置和设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180308134A1 (en) * 2015-12-21 2018-10-25 Kochava Inc. Self regulating transaction system and methods therefor
CN108667884A (zh) * 2017-04-01 2018-10-16 华为技术有限公司 镜像分发方法、镜像获取方法及装置
CN109992447A (zh) * 2017-12-29 2019-07-09 杭州华为数字技术有限公司 数据复制方法、装置及存储介质
CN108769146A (zh) * 2018-05-11 2018-11-06 北京奇虎科技有限公司 一种基于区块链的数据传输方法、装置及区块链系统
CN110569213A (zh) * 2018-05-18 2019-12-13 北京果仁宝软件技术有限责任公司 文件存取方法、装置和设备
CN109450996A (zh) * 2018-10-25 2019-03-08 国信优易数据有限公司 一种数据上链管理方法、装置、设备和区块链系统
CN109617903A (zh) * 2018-12-29 2019-04-12 杭州趣链科技有限公司 一种基于ipfs和区块链的可信文件存储系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
APPLE: "《IPFS:一种与区块链牵手相伴的技术》", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/54525627》 *
LINFEI SHI等: ""A High-availability Data Backup Strategy for IPFS"", 《2019 IEEE INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS - TAIWAN (ICCE-TW)》 *
NAWRAS KHUDHUR: ""Siva - The IPFS Search Engine"", 《2019 SEVENTH INTERNATIONAL SYMPOSIUM ON COMPUTING AND NETWORKING (CANDAR)》 *
郝锦涛: "《基于IPFS的分布式电商系统的研究与实现》", 《中国优秀硕士学位论文全文数据库——信息科技辑》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767250A (zh) * 2020-06-10 2020-10-13 钛星投资(深圳)有限公司 去中心化存储方法、下载方法及存储系统
CN112069259A (zh) * 2020-09-09 2020-12-11 天津大学 一种基于区块链的多云环境数据存储系统及方法
CN112069259B (zh) * 2020-09-09 2023-08-18 天津大学 一种基于区块链的多云环境数据存储系统及方法
CN112181297A (zh) * 2020-09-24 2021-01-05 普华云创科技(北京)有限公司 一种分布式文件切片生成与存储系统及其控制方法
CN112187912A (zh) * 2020-09-24 2021-01-05 普华云创科技(北京)有限公司 一种基于分布式网络的数据漫游方法与装置
CN112187912B (zh) * 2020-09-24 2023-12-19 宜宾三江电子信息产业有限公司 一种基于分布式网络的数据漫游方法与装置
CN112306721A (zh) * 2020-11-11 2021-02-02 天津汇商共达科技有限责任公司 一种数据对接设备连续自主运行稳定性的优化方法
CN112348140A (zh) * 2020-11-27 2021-02-09 杭州安恒信息技术股份有限公司 条形码信息存储方法、查询方法、电子装置和存储介质
CN113434094A (zh) * 2021-07-08 2021-09-24 山东中科好靓科技有限公司 一种基于ipfs的数据文件存储提取方法
CN113434093A (zh) * 2021-07-08 2021-09-24 山东中科好靓科技有限公司 一种可有效提高存储能力的ipfs数据存储方法
CN113434093B (zh) * 2021-07-08 2023-12-01 山东中科好靓基础软件技术有限公司 一种可有效提高存储能力的ipfs数据存储方法
CN114338700A (zh) * 2021-12-23 2022-04-12 杭州星布智能科技有限公司 局域网点对点分布式存储方法

Also Published As

Publication number Publication date
CN111182067B (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN111182067B (zh) 一种基于星际文件系统ipfs的数据写入方法及设备
JP7374100B2 (ja) リソース予約方法、リソース予約装置、リソース予約デバイス、及びリソース予約システム
US7685459B1 (en) Parallel backup
US9934242B2 (en) Replication of data between mirrored data sites
US7689764B1 (en) Network routing of data based on content thereof
US9031906B2 (en) Method of managing data in asymmetric cluster file system
CN107018185B (zh) 云存储系统的同步方法和装置
CN104580439B (zh) 一种云存储系统中使数据均匀分布的方法
KR20120018178A (ko) 객체 저장부들의 네트워크상의 스웜-기반의 동기화
JP2007520783A (ja) データストレージシステムにおける冗長データ割り当て
CN107657027B (zh) 数据存储方法及装置
CN106452836B (zh) 主节点设置方法及装置
CN112202853B (zh) 数据同步方法、系统、计算机设备和存储介质
CN103902410A (zh) 云存储系统的数据备份加速方法
CN113282564B (zh) 数据存储方法、系统、节点和存储介质
CN107295030B (zh) 一种数据写入方法、装置、数据处理方法、装置及系统
US20130226867A1 (en) Apparatus and method for converting replication-based file into parity-based file in asymmetric clustering file system
CN111225003B (zh) 一种nfs节点配置方法和装置
CN114594914A (zh) 用于分布式存储系统的控制方法及系统
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
CN111459416B (zh) 一种基于分布式存储的热迁移系统及其迁移方法
US9037762B2 (en) Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data
Yu et al. Granary: A sharing oriented distributed storage system
JP2016177724A (ja) ノード、情報処理システム、方法、および、プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant