IPFS(The InterPlanetary File System)是一个建立点到点的分布式文件存储的协议,跟它连接的计算设备都拥有相同的文件管理模式。这个概念跟互联网的最初理念很类似,但它是去中心化的。IPFS更像是互相转发Git目标的单个Bittorrent用户群。IPFS具备成为internet子系统的素质,通过合理配置可以完善甚至替代HTTP。我们以后会更详细的介绍。下面是安装一个Go版本的IPFS的流程。本文写的是如何在Mac上安装,但跟在Linux上的安装流程非常相似。
安装的方式很多,我们可以直接下载编译好的程序。这里介绍的是直接下载GO源码。Go的安装就不详细介绍了,大家可以看这里:下载 Go 1.9+.
首先要在本机上设置好GOPATH,并且将GOPATH/bin加到PATH中。
vi ~/.bash_profile
在文件末尾加上这两句:
export GOPATH="/Users/rfu/go"
export PATH=$PATH:$GOPATH/bin
然后调用一下
. ~/.bash_profile
下载并安装IPFS源码。
go get -u -d github.com/ipfs/go-ipfs
cd $GOPATH/src/github.com/ipfs/go-ipfs
make install
缺省IPFS路径是 ~/.ipfs。
开始调试IPFS
ipfs init
查看
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Hello and Welcome to IPFS!
██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗ ███████╗
██║██╔═══╝ ██╔══╝ ╚════██║
██║██║ ██║ ███████║
╚═╝╚═╝ ╚═╝ ╚══════╝
If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!
-------------------------------------------------------
| Warning: |
| This is alpha software. Use at your own discretion! |
| Much is missing or lacking polish. There are bugs. |
| Not yet secure. Read the security notes for more. |
-------------------------------------------------------
Check out some of the other files in this directory:
./about
./help
./quick-start <-- usage examples
./readme <-- this file
./security-notes
把一个文件夹中全部文件加到IPFS中。
ipfs add -r .
# 查看刚刚加的文件
ipfs ls QmPiZzFRVVs7JNjJpx2f313ke3T9rwNugmKKaTEK7jNdJP
ipfs daemon
ipfs swarm peer
打开浏览器看文件
localhost:8080/ipfs/QmPiZzFRVVs7JNjJpx2f313ke3T9rwNugmKKaTEK7jNdJP
https://gateway.ipfs.io/ipfs/QmPiZzFRVVs7JNjJpx2f313ke3T9rwNugmKKaTEK7jNdJP
打开本地ipfs浏览器。
http://127.0.0.1:5001/webui
为了方便后续前端的开发和数据访问,提前对跨域资源共享CORS进行配置,ctrl+c 退出ipfs,然后按照下面的步骤进行跨域配置:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
(为了做ipfs mount
,尝试了各种在Mac上装osxfuse,没有成功。)
Download osxfuse
or
brew cask install osxfuse
vi ~/.ipfs/config
Replace "DontCheckOSXFUSE": true, to "DontCheckOSXFUSE": "true",
## the following line will not work.
ipfs config DontCheckOSXFUSE true
ipfs mount
ls /ipfs
如果要将ipfs daemon停止,可以用ctrl+c
或者
ps -ef | grep ipfs
kill -9 [pid]
IPFS单机版学会玩了吗?接下来就可以学习怎样使用集群版了。