最近,应项目组需求,研究了与区块链结合应用的星际文件系统IPFS的使用入门,下面就IPFS的Windows环境安装和入门使用进行介绍。
在官网下载对应的go-ipfs软件,注意选择适合自己机器的版本
解压下载的压缩包,cmd进入到对应目录,如D:\360安全浏览器下载\go-ipfs_v0.4.13_windows-amd64\go-ipfs,执行ipfs init指令,结果如下:
成功执行后,会在对应用户目录下产生一个.ipfs文件夹,如C:\Users\wht\.ipfs,文件的目录结构如下:
至此,完成了节点的成功启动的工作,启动节点的目的主要包含:1).加入IPFS网络;2).启动本地HTTP服务器,默认端口为8080;3).处理后续IPFS客户端的指令。
addedQmXnA3jtjcthBbgrkx8eeJX9YrvFT7BRJVxvhvkpKGEUPk fileTest/test/README.md
addedQmZiBRkXJVvunKhxaUDtjhTfffXqZgxYiRSKKJBKYLwwEm fileTest/test
addedQme6jkYWEMekhe5QJpYvVYdExukitcCQxFQvz2gYShT2am fileTest
完成了上述添加步骤之后,我们就可以使用
ipfs cat /ipfs/QmXnA3jtjcthBbgrkx8eeJX9YrvFT7BRJVxvhvkpKGEUPk,查看README.md的内容了,上述指令成功地获取了README.md中的内容:
当然,也可以通过HTTP浏览器访问,记得默认端口为8080,访问的URL如下:
http://localhost:8080/ipfs/QmXnA3jtjcthBbgrkx8eeJX9YrvFT7BRJVxvhvkpKGEUPk
使用指令ipfs get + hashID
每次修改文件后,add都会返回不同的哈希,这对于网站来说就没法固定访问地址了,所以我们需要使用ipns来绑定节点名。上面的fileTest的目录的hash ID为Qme6jkYWEMekhe5QJpYvVYdExukitcCQxFQvz2gYShT2am,我们将整个目录作为节点根目录发布,执行:
ipfs name publish Qme6jkYWEMekhe5QJpYvVYdExukitcCQxFQvz2gYShT2am
然后我们就可以通过 ipns 访问了,注意是 ipns:
ipfs cat /ipns/Qma9HnEJyV7ZcLEXt9tob6kAUi7ioDHSgvXcXuNJNRTVtA/test/README.md,其中的Qma9HnEJyV7ZcLEXt9tob6kAUi7ioDHSgvXcXuNJNRTVtA是客户端的ID。这边就将文件的根目录与节点名绑定在以前,可以通过节点名加上对应的路径访问文件。
2.我们可以用它来存取文件,数据永不丢失;
3. 应用可以用它来做数据库,自动拥有版本化、缓存及分布式特性;
4.官方参考实现使用golang编写,JavaScript、Python、C 等不同版本语言在陆续开发中;
5.总之,IPFS 是一套非常厉害的文件系统。