IPFS
IPFS 全称为 Inter Planetary File System. 星际文件系统.
- 用于存储和访问文件、网站、应用程序和数据的分布式文件系统。
- “一个点对点的超媒体传输协议”.点对点的分布式文件存储系统.
- 它的目标是成为更快、更安全、更开放的下一代互联网,用来替代传统中心化的服务器模式.
- 所有的IPFS节点组成一个分布式网络,每个节点都可以存储文件.
- 用户可以从IPFS构建的网络中以DHT(Distributed Hash Table,分布式哈希表) 的方式获取文件.
工作原理
IPFS 可以从本质上改变网络数据的分发机制
- 每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹。
- IPFS 通过网络删除重复具有相同哈希值的文件,通过计算是可以判断哪些文件是冗余重复的。并跟踪每个文件的版本历史记录。
- 每个网络节点只存储它感兴趣的内容,以及一些索引信息,有助于弄清楚谁在存储什么。
- 查找文件时,你通过文件的哈希值就可以在网络查找到储存改文件的节点,找到想要的文件。
- 使用称为 IPNS(去中心化命名系统),每个文件都可以被协作命名为易读的名字。通过搜索,就能很容易地找到想要查看的文件。
从 IPFS 的介绍可以看出, IPFS 设想的是让所有的网络终端节点不仅仅只充当 Browser 或 Client 的角色,其实人人都可以作为这个网络的运营者,人人都可以是服务器。
基本使用
Install & use
参考官网:https://ipfs.io/docs/install 使用参考:https://ipfs.io/docs/getting-started
wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz
tar xvfz go-ipfs_v0.4.14_linux-amd64.tar.gz
cd go-ipfs
./install.sh
# test
ipfs help
# start
ipfs init
# start daemon to keep connection with internet
ipfs daemon &
# show point connectted on IPFS
ipfs swarm peers
Practice
上传GitHub Pages主页到IPFS
git clone <git-pages-repo>
ipfs add -r <git-gages-repo>
# 以下输入会生成哈希码,标识了文件在网路上的位置
# 只要IPFS进程还开启着,数据就不会被垃圾回收
ipfs pin add -r <your-hash>
# 过网址访问个人主页
https://gateway.ipfs.io/ipfs/<your-hash>
IPNS
一个命名系统,它可以把文件的哈希值命名为一个简单易懂的名字。
IPFS系统有版本管理系统,并且每一个节点上都有所存文件的哈希值构成的哈希表