IPFS是我比较看好的一个项目,它有可能替代现有的HTTP协议,因为越来越好奇IPFS的技术,所以也找了很多相关的资料研究了一番。
今天也根据官网的文档开始一步步搭建ipfs运行环境,我们先来看一下IPFS的简介:
IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Git、自证明文件系统SFS、BitTorrent和DHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。
IPFS用基于内容的寻址替代传统的基于域名的寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。我们将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。
IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、8英寸软盘的备份,还有静态网站。
1、下载IPFS
打开官网https://ipfs.io/ ,点击Try it
点击 Install IPFS now
下载对应版本的IPFS安装文件
下载完之后,将文件解压到C盘根目录
2、安装IPFS
打开CMD,输入 cd C:/go-ipfs 进入ipfs文件目录
输入 dir 查看目录信息,然后输入ipfs init 开始初始化 ipfs网络环境,并且系统会分配一个属于你自己的IPFS网络哈希值(类似你在IPFS网络中的一张身份证ID)。有了这个ID,别人就可以访问到你的节点
输入上面获取的内容 ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme 出现Hello and Welcome to IPFS! 那恭喜你!说明你的电脑已经成功安装IPFS并已经加入到IPFS网络了。
3、IPFS环境配置
IPFS安装的默认配置将存放到你的用户文件夹根目录下 文件夹名.ipfs,接下来打开config,里面的是ipfs的一些基础配置数据,可以根据自己的需求修改里面的配置
配置修改请参考官网文档
4、运行测试
输入ipfs daemon启动IPFS服务监听,目的是用于监听IPFS网络通信数据,使用的监听端口是5001。注意要并保持开启状态,才能守护监听的进程
另开一个cmd,同样进入ipfs目录,试着执行一些基础命令
使用ipfs help,获取一些常用的命令
如 ipfs id,可以查看你的通信ID信息
使用ipfs swarm peers 可以查看附近也在使用IPFS网络节点伙伴,如果列出有数据说明你并不是一个人在使用IPFS网络
5、尝试调用一个ipfs网络中的文件:
打开官网点击 右上角 Docs -> 选择目录 Getting Started
找到Going online,复制代码 ipfs cat /ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg >cat.jpg
粘贴到CMD,回车确认即可获得ipfs网络的的一个猫的图片资源,也说明我们的ipfs环境可以访问网络中的文件了。
6、可视化界面
IPFS网络状态保持开启,此时浏览器输入http://localhost:5001/webui 你可以看到一个漂亮的可视化IPFS管理界面,里面可以做一些基础的资源获取查看操作
6、上传一个文件以及在ipfs获取自己上传的文件
将自己的文件放在ipfs配置目录,如我的daxiang.txt这个文档
执行命令ipfs add daxiang.txt,显示如下,说明我的文件已经加入了我的ipfs网络节点中,并且生成了一个daxiang.txt这个文件的唯一哈希值QmQ8TAwaaomyMTp9oaffr2SmzcaQ6FedsaWiPdPuQqdA5Z
此时我们可以通过上面返回的文件哈希值获取我们上传的文件,在刚才的可视化界面把哈希值粘贴到搜索栏即可得到我们上传的文件信息
另:我们也可以使用控制台CMD 输入命令 ipfs cat QmQ8TAwaaomyMTp9oaffr2SmzcaQ6FedsaWiPdPuQqdA5Z 获得文件信息
注意:我们刚才的文件获取操作都是只在我们本机内网建立的ipfs环境中,我们尝试使用https://ipfs.io/ipfs/QmQ8TAwaaomyMTp9oaffr2SmzcaQ6FedsaWiPdPuQqdA5Z 查看信息,出现没有找到资源的提示,说明我们上传的文件还没有同步到ipfs外网,所以访问不了。
接下来执行下面的命令同步节点数据到IPFS网络:
先把刚在运行的ipfs daemon服务停止(Ctrl + c),然后重新启动 ipfs daemon
再次在浏览器访问 https://ipfs.io/ipfs/QmQ8TAwaaomyMTp9oaffr2SmzcaQ6FedsaWiPdPuQqdA5Z ,可以看到我们上传的文件,说明我们现在已经成功把文件上传到ipfs网络节点了。
以上简介的IPFS的环境搭建和基础的几个命令操作,之后我还好作进一步学习研究,你也可以一起来玩哦。