IPFS 上手试玩
关于IPFS
IPFS 是一个很宏大的理念,而不简单地是一个应用或一个文件系统。 它希望建立一个点对点的分布式文件系统,使用内容Hash地址代替原Web网络中的域名,来获取得相应的资源。
IPFS 说明文档对IPFS的介绍如下:
- IPFS is a protocol
- IPFS is a filesystem
- IPFS is a web
- IPFS is modular
- IPFS uses crypto
- IPFS is p2p
- IPFS is a cdn
- IPFS has a name service
当前IPFS虽经历了几年的开发,但仍处于很早期的阶段(go-ipfs/0.4.10 ipfs/0.1.0),所以未来可能会有比较大变化(也可能失败…)。
下载安装
IPFS 可以从官网下载,也可以从Github下载源代码进行编译安装。
如Linux进行安装IPFS的0.4.10版本,不同版本请自行修改下面的版本号
wget https://dist.ipfs.io/go-ipfs/v0.4.10/go-ipfs_v0.4.10_linux-amd64.tar.gz
tar xzvf go-ipfs_v0.4.10_linux-amd64.tar.gz
mv go-ipfs/ipfs /usr/local/bin/
基本使用
使用IPFS需要先进行初始化ipfs init
,初始化目录一般为~/.ipfs
目录,即当前用户HOME目录下的.ipfs
目录。
显示当前节点信息
ipfs id
如果守护进程启动后,会显示网络地址信息,否则只显示节点参数信息。
添加文件(这里假设要添加文件
readme.txt
,其内容为readme
)ipfs add readme.txt #added Qmc7m4k5KUtEbyrTVjP6k8cRt7C99Rhe28hqFThGgGgEof readme.txt
当执行添加文件后,会给出添加文件的唯一Hash值。这个Hash值很重要,后面获取文件时就是依赖于这个值。
查看文件(根据Hash值)
ipfs cat /ipfs/Qmc7m4k5KUtEbyrTVjP6k8cRt7C99Rhe28hqFThGgGgEof # readme
这里不仅仅是可以查看本地添加的文件内容,还可以查看其它IPFS使用者添加的文件(在联入IPFS网络后)。
下载文件
ipfs get /ipfs/Qmc7m4k5KUtEbyrTVjP6k8cRt7C99Rhe28hqFThGgGgEof # 下载文件到当前目录,文件名为Hash值
列出文件(注意,这里只能对文件夹或者shard使用,和普通shell命令有区别)
ipfs ls /ipfs/Qmc7m4k5KUtEbyrTVjP6k8cRt7C99Rhe28hqFThGgGgEof
获取对象
ipfs object get Qmc7m4k5KUtEbyrTVjP6k8cRt7C99Rhe28hqFThGgGgEof # 打印出文本内容
守护进程
运行ipfs daemon
会运行起IPFS后台守护进程服务,这样可以与其它运行IPFS的节点连接,并将当前节点的数据发送到其它节点上。
运行服务后,会有一个Web服务,可以使用浏览器访问http://localhost:5001/webui
这个网址看到。
这个网站会显示当前节点的基本信息,以及与当前节点连接的节点,简单的文件处理UI界面等。