Untitled

IPFS 的 PYTHON API 参考手册：https://www.cnblogs.com/yoyo1216/p/13489699.html

ipfs cli 手册 (中文版)：https://blog.51cto.com/u_9152644/5958171

IPFS 安装及基础操作（存贮目录）：https://www.superc.xyz/2018/02/28/ipfs/

一、介绍

1：星际文件系统 (InterPlanetary File System). IPFS 是一个分布式的 web, 点到点超媒体协议。可以让我们的互联网速度更快，更加安全，并且更加开放。IPFS 实际上就是一个分布式文件系统。

2：互联网基于 HTTP 协议的，是中心化的，低效，成本也高。
使用 HTTP 协议每次需要从中心化的服务器下载完整的文件 (网页，视频，图片等), 速度慢，效率低.
IPFS 采用 P2P 方式，基于内容寻址（非域名寻址），文件（内容加密的哈希值）具在唯一的存在性，大大减少文件存贮的冗余。可以节省大量的带宽。且将文件分割为小的块，从多个服务器同时下载，而且就近下载 ，速度非常快.
IPFS 网络上运行着一条区块链，用来存贮互联网文件的哈希表，每次有网络访问，就在链上查看该内容（文件）的地址。

3：Web 文件经常被删除
http 的页面的 eb 文件经常被删除 (由于存储成本太高), 无法永久保存。所以经常会出现收藏的网址无法打开，404 错误。
而 IPFS 文件可以在多个节点永久保存，并且提供了文件的历史版本回溯功能 (像 git 版本控制工具一样), 可以很容易的查看文件的历史版本。

4：我们的现有互联网是一个高度中心化的网络。而分布式的 IPFS 是一个去中心化的网络，可以克服 web 的一些（如：高度依赖互联网主干网、互联网封锁，管制，监控，中心化服务器宕机等）缺点.

4、IPFS 应用意义

可以为内容创作带来一定的自由。
代表应用：Akasha Akasha（ https://blog.akasha.world）是一个基于以太坊和 IPFS 的社交博客创作平台，用户创作的博客 内容通过一个 IPFS ⽹网络进行发布，而非中心服务器。 同时，用户和以太坊钱包账户进⾏行行绑定，⽤用户可以对优质内容进⾏行行 ETH 打赏，内容创作者能以此赚取 ETH，如同⼈人脑挖矿⼀一样。它没有太多监管的限制，也没有中间商抽成，内容收益直接归创作者所有。

可以降低存储和带宽成本。
代表应⽤用：Dtube Dtube（https://d.tube）是⼀一个搭建在 Steemit 上的去中⼼心化视频播放平台，其⽤用户上传的视频⽂文件都经 过 IPFS 协议进⾏行行存储，具有唯⼀一标识。相较于传统视频⽹网站，它降低了了同资源冗余程度，同时⼤大⼤大节约 了了海海量量⽤用户在播放视频时所产⽣生的带宽成本。

可以与区块链完美结合。
代表应⽤用：EOS 运⽤用 IPFS 技术解决存储瓶颈是⽬目前来看的过渡⽅方案，最典型的应⽤用就是 EOS。EOS 引以为傲的是可以⽀支 持百万级别 TPS 的并发量量，其中除了了 DPOS 共识机制的功劳之外，还归功于其底层存储设计是采取 IPFS 来解决⼤大型数据的传输效率。
EOS 将⾃自⼰己打包好的区块数据通过 IPLD 进⾏行行异构处理理，统⼀一成⼀一种便便于内容寻址的数据结构类型，并挂 载到 IPFS 的 link 上，让 IPFS ⽹网络承担存储和 P2P 检索的逻辑，⽽而不不消耗 EOS 区块链系统本身太多的计算 资源。
可以为传统应⽤用提供分布式缓存⽅方案。

二、环境搭建

1：官网（dist.ipfs.io/#go-ipfs）下载安装最新对应的 go-ipfs
安装（为方便先安装预编译二进制 ipfs）

下载最新（已编译）包

wget https://dist.ipfs.io/go-ipfs/v0.6.0/go-ipfs_v0.6.0_linux-amd64.tar.gz

解压

tar -zxf go-ipfs_v0.6.0_linux-amd64.tar.gz

安装

cd go-ipfs
dir
sudo ./install

验证

which ipfs
ipfs --help
ipfs version

配置运行 ipfs

初始化节点 在命令行执行 ipfs init

$ ipfs init

初始化时会默认初始化在你的用户目录下新建一个.ipfs 生成你的节点 id：如：QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv

$ export IPFS_PATH=/ipfs

vim /lib/systemd/system/ipfs.service

加上：Environment=export IPFS_PATH=/ipfs # 设置 IPFS 目录

修改 IPFS 默认目录，此时我们将目录放在 /ipfs 下 https://www.superc.xyz/2018/02/28/ipfs/

查看安装情况

$ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

启动守护进程运行 ipfs 节点上线

$ ipfs daemon

查看 ipfs 链接的节点

$ ipfs swarm peers

三、上传下载
ipfs 提供了两种方式对文件进行操作

1）weiui 方式
可以进入 ipfs daemon 所在的主机，通过浏览器输入 localhost:5001/ipfs/webui 进入浏览器文件操作页面添加文件

2）命令行方式

新建文件 1.txt，内容为：123456789

上传 1.txt

ipfs add 1.txt

返回文件 hash 值，通过它可以找到这个文件

通过 hash 查看 1.txt

ipfs cat 文件 hash 值

下载 1.txt 下载到当前目录下，且文件名为默认为 hash 值

ipfs get 文件 hash 值

上传图片

$ ipfs add ly.jpg

下载图片

$ ipfs cmp /ipfs/QmaYQaCwxg8pK9Z5QQC8vrb1hdBC5nV8YFGwGNVNQ3fWka > after.jpg

和原来的图片对比 就是原来上存的那个文件了

$ cmp ly.jpg after.jpg

也可以直接在部署运行 ipfs daemon 的机器上的浏览器查看：

http://127.0.0.1:8080/ipfs/QmaYQaCwxg8pK9Z5QQC8vrb1hdBC5nV8YFGwGNVNQ3fWka

IPFS 建一个静态网站

上传网站目录

cd D:\Works\ipfs_file
ipfs add -r ipfs-qkw
返回信息的最后部分，即 hash QmNpRuzmmucd5sDoC7fjfZRgo2mnaXb35hpsLQf77A96xu，就是访问的入口
https://ipfs.io/ipfs/QmYaGz9ChV3PcRuz3Zmr8XP34gxAe2gunZdtM7sKhDMqUS

使用 ipfs cat 命令，后边跟的是文件路径，操作如下：
ipfs cat QmNmGoyiFpaHx1tra4zNL2iZHAfj8JM7gETjk2hZWVGWXi/ipfs-tutorial/new/newfile

四、常用指令
https://docs.ipfs.io/reference/cli/#ipfs

五、JS HTTP client library
https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-http-client#getting-started

USE HTTP API reference
https://docs.ipfs.io/reference/http/api/#getting-started

六、IPFS 电影资源
神秘巨星：QmWBbKvLhVnkryKG6F5YdkcnoVahwD7Qi3CeJeZgM6Tq68
芳华：QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
https://gateway.ipfs.io/ipfs/QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
大佛普拉斯：QmdpR9iP9EhUg1rmduHqwA4ddyHNMcsR8t9saXA9BmMU4t
看不见的客人：QmYWwXkgjdhMps9mB6DyEp4zSFmDQ9U6SuqGRGovEycr49
勇往直前：QmZRJevYhADpXmCGGF6eCcP1afNEYFahDW5jxje3iyyCJS
至暗时刻：QmUPvs7iyM5ZWPQwDovRqvNzxMJHSUWNRWAWRkAsseVcvs
银翼杀手 2049：QmcUHdzKgRrcJrD5Ah46HgBHF7urWDhmAnLKYwcHaLgeGP
盗梦空间：QmQATmpxXvSiQgt9c9idz9k3S3gQnh7wYj4DbdMQ9VGyLh
狮子王：QmfHGQZNQNymHDC6b7TZjgGbh962VWQQN5oV92w9jHE4qt
祖宗十九代：QmbrwEH4AEQhUN929yPy4j5B2PfQYk3JJyG8iq7HVoXbia
疯狂动物城：QmUKaQwN2ppapUEFhbHsKoVXn2yBRM7mLpu5HQv9am7dB7
彩绘心天地：QmXg1c6qPtoQAyfrXrWnuDrUgFehnt4kLvv1hxheMUeFBC
肖申克的救赎：QmRUYeMkvirV4frGX8wcntCq6x5GqDixAjZnFj5Jg1E3qj
太空旅客：QmdxpUVnvFnert9nmEkzwwz2tWdavU3fUQzrgBsTZP5yyG

ipfs video player：https://github.com/download13/ipfstube