一、IPFS概述
IPFS(Inter Planetary File System)是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Git、自证明文件系统SFS、BitTorrent和DHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。
IPFS用基于内容的寻址替代传统的基于域名的寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。我们将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。
IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、 数据备份,还有静态网站。
IPFS提供了一个友好的WEB访问接口,用户可通过http://ipfs.io/hash 获取IPFS公共网络中的内容,也许在不久的将来,IPFS协议将会彻底替代传统的HTTP协议。
也可以根据业务需要,搭建自己私有结点的IPFS系统。
在区块链工程项目中,IPFS一般用于区块链网络中大文件的存放,是区块链网络有力的补充。
二、准备环境
1、系统环境:ubuntu-18.04.1-live-server-amd64.ios
2、语言环境:go1.11.2.linux-amd64.tar.gz (下载网址:https://golang.org/dl/ ,下载不了是因为被“墙”了)
3、IPFS软件:go-ipfs_v0.4.18_linux-amd64.tar.gz (下载网址:https://github.com/ipfs/go-ipfs/releases/tag/v0.4.18)
4、两个服务器IP为:192.168.1.100,192.168.1.101
三、安装Golang语言环境
sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
四、安装IPFS
cd ~
tar xvfz go-ipfs_v0.4.18_linux-amd64.tar.gz #解压缩
cd go-ipfs/
sudo ./install.sh #安装IPFS
五、初始化IPFS
ipfs init #初始化IPFS
该操作执行后,默认会在~目录下生成一个隐藏目录.ipfs,作为ipfs的local存储
cd ~/.ipfs
ll #查看.ipfs中安装的内容
drwxrwxr-x 5 he he 4096 Nov 22 15:51 ./
drwxr-xr-x 6 he he 4096 Nov 24 13:25 ../
-rw-