IPFS介绍
一种点对点的分布式文件系统。网络上对于这个概念有很多详细的阐述,通过我个人的学习过程,说一下我的理解:首先,IPFS应该是一种系统,而不仅仅是一种点对点的协议,它在实现点对点通信方式的同时,还包括了git版本控制系统、共识机制(比如文件所在节点的同步、分布哈希表的更新等)等。IPFS的功能,在某些程度上可以更好的代替现有的htpp协议。因为在IPFS系统里面,每一个加入的机器都是一个平等的节点,系统上的文件被多个节点保存,所以它的通信不需要服务器一直开启,因为每一个保存这份数据的节点都可以作为通信的服务器,同时也不会存在由于某一台服务器宕机,导致数据丢失的情况。
安装IPFS
安装IPFS,官网给出了两种安装方式。
第一种:直接下载IPFS的压缩包,自己解压安装。
访问网址:https://dist.ipfs.io/#go-ipfs,并下载本机器版本的压缩包。
linux或者Mac,使用命令:
安装完成之后输入ipfs,会显示IPFS的使用帮助。
第二种:使用工具ipfs-update安装。安装此工具需要机器自身安装有1.8以上的go版本。
如果机器没有go环境,首先需要安装go环境。安装之后输入go version 查看版本是否高于1.8。
安装ipfs-update工具:go get -u github.com/ipfs/ipfs-update
使用ipfs-update工具安装IPFS最新的版本:ipfs-update install latest
在ubuntu与mac上测试两种安装方法,建议使用第一种安装。在ubuntu16.04下安装go环境,安装1.8以上的版本比较麻烦,导致我安装一直没有成功。相对来说,第一种安装IPFS更简便一些。
在本地初始化节点添加文件
初始化本地节点
IPFS集成了git,所以使用ipfs初始化本地节点类似于git的初始化本地仓库。
命令:ipfs init
初始化节点之后,会在机器的根目录下生成一个.ipfs的目录,使用命令查看readme文件
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
其中的哈希值换成自己的。
添加文件到本地节点
命令:ipfs add -r 风景.jpg
切换到需要提交的文件目录,输入命令将文件添加到本地节点。
可以添加文件和目录。执行命令回车之后,会显示该文件的hash值与该文件的名称如下图。
节点保存的并非我们文件的名字,而是与文件内容有关的哈希值。
当我们把文件添加到本地节点服务器的时候,还需要同步到网络中去,这样其他节点才可以访问我们的文件。
将本地节点同步到网络
命令:ipfs daemon
该命令是将本地节点服务器的文件同步到网络上,同步之后相当于将文件上传到了IPFS系统网络里面,会广播给其他节点进行保存,防止文件到丢失。下图命令将本地文件同步到网络,不要关闭这个终端,关闭之后,daemon服务就会停止运行,无法同步到网络。
其他信息查看,查看节点服务器信息:ipfs swarm peers可以查看存在的节点服务器信息,包括了ip地址,端口,节点服务器的id。
查看节点id:ipfs id
使用IPFS提供的网关访问文件
使用IPFS提供的网关访问提交的文件,输入gateway.ipfs.io/ipfs/hash值可以访问同步到IPFS系统上的文件。
https://gateway.ipfs.io/ipfs/QmPi465oc1N6VFJYkNkuyCoyixZfgSjA8zSxNBLd6X9F67 风景.jpg
-END-
若在学习过程中遇到问题,请留言给我们,我们会及时回复与您进行探讨。
领取专属 10元无门槛券
私享最新 技术干货