一名热爱体感技术的
业余专业开发人员

[转]IPFS(InterPlanetary File System,星际文件系统)

https://www.netkiller.cn/blockchain/ipfs/index.html

转了先

IPFS(InterPlanetary File System,星际文件系统)

23.1. 什么是 IPFS

IPFS “星际文件系统” 是去中心化保存和共享文件的分布式文件系统,它是一种内容可寻址、版本化、点对点超媒体的分布式协议,IPFS旨在替代HTTP。它希望将所有的计算设备都连接到同一个文件系统中。

由于 IPFS 去中心化特点,使得很多区块链项目做文件存储的时候首选IPFS。

23.1.1. 传统的中心化HTTP服务

举个例子,服务器上有一个文件https://www.netkiller.cn/video/av.mp4,按照HTTP协议标准流程,浏览器首先会解析域名并查找到服务器的IP地址,随后与服务器建立链接,并根据路径向服务器请求该文件/video/av.mp4。在这种体系下用户是否能获取该文件取决于文件是否被移动或删除,并且服务器没有关闭。

另一个问题就是文件服务器管理,中心化管理是很复杂的,如果访问量比较大,我们通常会使用负载均衡来解决,负载均衡需要每个节点上的数据是完整的,这就需要大量的数据同步。如果从深圳数据中心同步到上海数据中心 100T的数据可能要数个工作日。

HTTP过度依赖Internet主干网,同时网络通信遭遇DDoS攻击的风险也大大增加。

CDN 只解决最后一公里的性能问题,数据回源仍然是中心化,仍然无法彻底解决。

23.1.2. IPFS 解决方案

IPFS的做解决方案是不再关心中心服务器的位置,也不考虑文件的名字和路径,只关注文件中的内容。例如将文件av.mp4添加到IPFS节点,会得到一个新名字QmS8R3nSbDHjQ7WRTjtX1pkiQ6BUpti9qTjweZkBgGPKiN,通过文件内容计算出的哈希值,访问文件不在使用文件名而是使用这个统一的 hash 值。

当用户被请求一个文件哈希时,它会根据这个分布式哈希表找到文件所在的节点,并取回文件内容并验证文件数据。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。

IPFS 可以理解为内容被永久缓存到节点上的CDN。

23.2. 安装 IPFS

23.2.1. go get 方式

23.2.2. 安装 ipfs-update

ipfs-update 是一个 ipfs 版本管理工具,可以通过这个工具安装ipfs 和升级 ipfs.

23.2.3. Ubuntu

23.2.4. Netkiller OSCM

Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | 云栖社区 | OSChina 博客 | Facebook | Linkedin | 知乎专栏 | Github | Search | About

23.3. ipfs 命令

创建 ipfs 用户

23.3.1. 基本命令

23.3.1.1. 初始化节点

目录结构

23.3.1.2. 添加文件

添加文本

修改内容

23.3.1.3. 查看文件

23.3.1.4. 下载文件

23.3.1.5. 列出文件或目录

23.3.2. 数据结构命令

23.3.2.1. 块

23.3.2.2. 对象

23.3.3. 高级命令

23.3.3.1. 守护进程

http://localhost:5001/webui

23.3.3.2. 发布并解析IPNS

验证发布

23.3.3.3. 将 Pin 对象存储到本地

ls

23.3.3.4. 查看状态

23.3.3.4.1. 仓库状态

23.3.3.4.2. 带宽状态

23.3.4. 网络命令

23.3.4.1. 显示 IPFS 信息

23.3.4.2. 节点

23.3.4.3. 管理P2P网络链接

23.3.5. 工具命令

23.3.5.1. 配置

23.3.5.1.1. 显示配置

23.3.5.1.2. 修改配置

23.3.5.2. 命令列表

Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | 云栖社区 | OSChina 博客 | Facebook | Linkedin | 知乎专栏 | Github | Search | About

23.4. HTTP 网关

默认 IPFS 监听 127.0.0.1 使用下面命令启动IPFS守护进程,然后使用 nginx 代理 127.0.0.1

23.4.1. 访问文件

23.4.2. 配置代理服务器

Nginx 配置

使用浏览器访问文件

http://localhost/ipfs/QmdoPoadYA5HYvSzgUrgXYdEVRNL1T7pY38GaWabZ3KLgn


23.4.4. 监听地址

或者修改配置文件直接暴漏地址出去

Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | 云栖社区 | OSChina 博客 | Facebook | Linkedin | 知乎专栏 | Github | Search | About

23.5. WebUI

如果你远程访问 webui 会议都 403 问题,需要配置 IPFS 然后重启 ipfs daemon

修改后如下

现在就可以访问 http://your_ip_address/webui 了

相关推荐

  • 暂无文章

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址