IPFS 快速入门
IPFS是基于对等模式的网络传输系统,类似于Git和BitTorrent的结合。
开始
如果还没有安装,参考 install IPFS.
如有任何问题,可以到这里讨论 https://discuss.ipfs.io/ ,或者 #ipfs on chat.freenode.net.
初始化 repo 仓库
所有ipfs发布的文件都纳入仓库中,并建立索引。
ipfs
采用全球统一索引的本地对象仓库, 添加到 ~/.ipfs
:
> ipfs init
initializing ipfs node at /Users/jbenet/.go-ipfs
generating 2048-bit RSA keypair...done
peer identity: Qmcpo2iLBikrdf1d6QU6vXuNb6P7hwrbNPW9kLAH8eG67z
to get started, enter:
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
注意这里的 hash 值每个节点和文件都是不一样的。
现在, 试一下:
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
可以看到如下的画面(上面的/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG是ipfs的地址,是一个对等节点,而不是传统意义上的主机服务器):
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
可以接着访问其他对象,例如获得 quick-start
:
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/quick-start
将会看到几个有趣的 examples。
启用在线服务
Once you’re ready to take things online, run the daemon in another terminal:
> ipfs daemon
Initializing daemon...
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway server listening on /ip4/127.0.0.1/tcp/8080
Wait for all three lines to appear.
Make note of the tcp ports you get. if they are different, use yours in the commands below.
Now, if you’re connected to the network, you should be able to see the ipfs addresses of your peers:
> ipfs swarm peers
/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx
/ip4/134.121.64.93/tcp/1035/ipfs/QmWHyrPWQnsz1wxHR219ooJDYTvxJPyZuDUPSDpdsAovN5
/ip4/178.62.8.190/tcp/4002/ipfs/QmdXzZ25cyzSF99csCQmmPZ1NTbWTe8qtKFaZKpZQPdTFB
These are a combination of <transport address>/ipfs/<hash-of-public-key>
.
Now, you should be able to get objects from the network. Try:
ipfs cat /ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg >cat.jpg
open cat.jpg
And, you should be able to give the network objects. Try adding one, and then viewing it in your favorite browser. In this example, we are using curl
as our browser, but you can open the IPFS URL in other browsers as well:
> hash=`echo "I <3 IPFS -$(whoami)" | ipfs add -q`
> curl "https://ipfs.io/ipfs/$hash"
I <3 IPFS -<your username>
Cool, huh? The gateway served a file from your computer. The gateway queried the DHT, found your machine, requested the file, your machine sent it to the gateway, and the gateway sent it to your browser.
Note: depending on the state of the network, the `curl` may take a while. The public gateways may be overloaded or having a hard time reaching you.
检查一下local gateway是否工作:
> curl "http://127.0.0.1:8080/ipfs/$hash"
I <3 IPFS -<your username>
缺省情况下, 你的gateway 未对外部地址开放, 只能本地访问。
Web控制台
目前有一个简单的web console,可以查看节点状态。访问输入:
界面如下:
- 说明:对于5001系统服务端口,如果在Docker中映射了端口,可以直接在服务器可访问的网络中访问,但与4001的P2P端口服务不同,仍然不会被其他的外部节点访问。
好来,现在基本系统已经搭建完毕。