IPFS:星际文件系统(InterPlanetary File System,缩写ipfs)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。该技术是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。

原理:ipfs通过任何人上传资源(图片,视频等),资源不会存储到自己的服务器,而是放存储在IPFS星际文件系统,并会转化成一个hash值,一旦被人传播,,即使你上传的那个平台关闭,你也可以根据哈希值找到你上传的视频,下载的人越多那么资源节点就会越来越多,下载速度就越快。存储空间无限使用,重点还是免费。IPFS和传统文件系统的一个重要区别就是——内容寻址,相比较而言,内容寻址的ipfs就具有一个天然的优势——防篡改。数据只要修改了一个bit,其地址就彻底变化,而完全相同的文件则hash值是一样的,想借助修改文件瞒天过海,难度就陡增。

1.手把手教学搭建ipfs服务(基于centos7)

环境:
CentOS Linux release 7.3.1611、xshell、xftp

1)下载go-ipfs程序,地址:https://dist.ipfs.io/#go-ipfs
ipfs-搭建一个去中心化分布式存储和共享文件平台

2)root身份登录linux系统,利用xftp上传文件ipfs程序到linux上面。
依次执行下面的命令:
tar zxvf go-ipfs_v0.4.18_linux-amd64.tar.gz
cd go-ipfs
./install.sh
/usr/local/bin/ipfs init
nohup /usr/local/bin/ipfs daemon &

此时,你就可以访问127.0.0.1:5001/webui到界面了。
注意:正常情况下5001端口没有开放,并且默认配置文件里面是127.0.0.7:5001/webui才能访问,若有图形界面可以尝试用浏览器本地访问,我这里就使用隧道穿透到本地进行访问,如下图配置(依次点击xshell顶部导航-查看-隧道窗格打勾-底部转移规则右击添加如下图所示):
ipfs-搭建一个去中心化分布式存储和共享文件平台

3)访问本地http://localhost:5001/webui即可看到界面了~
ipfs-搭建一个去中心化分布式存储和共享文件平台

4)此时就可以通过界面上传文件了,或者在服务器端通过ipfs add 文件添加,添加成功会生成一个hash值。
ipfs-搭建一个去中心化分布式存储和共享文件平台

5)同样可以通过这个hash值分享文件呃,同步全球所有节点后,即便你的服务器停了也永远保存在互联网中哦~
如这个图片永久保存在ipfs中:https://ipfs.io/ipfs/QmRAwyo9DQrYDDQkmCo6gPX3g81qBfx9EXfc1CYWiotBqD

ipfs-搭建一个去中心化分布式存储和共享文件平台

6)目前ipfs节点全国已经过百,赶快去试试吧
ipfs-搭建一个去中心化分布式存储和共享文件平台

2.一些经典ipfs应用收集

1)去中心化电影分享:https://ipfstube.erindachtler.me/
测试电影hash值

神秘巨星:QmWBbKvLhVnkryKG6F5YdkcnoVahwD7Qi3CeJeZgM6Tq68
芳华:QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
大佛普拉斯:QmdpR9iP9EhUg1rmduHqwA4ddyHNMcsR8t9saXA9BmMU4t
看不见的客人:QmYWwXkgjdhMps9mB6DyEp4zSFmDQ9U6SuqGRGovEycr49
勇往直前:QmZRJevYhADpXmCGGF6eCcP1afNEYFahDW5jxje3iyyCJS
至暗时刻:QmUPvs7iyM5ZWPQwDovRqvNzxMJHSUWNRWAWRkAsseVcvs
银翼杀手2049:QmcUHdzKgRrcJrD5Ah46HgBHF7urWDhmAnLKYwcHaLgeGP
盗梦空间:QmQATmpxXvSiQgt9c9idz9k3S3gQnh7wYj4DbdMQ9VGyLh
狮子王:QmfHGQZNQNymHDC6b7TZjgGbh962VWQQN5oV92w9jHE4qt
祖宗十九代:QmbrwEH4AEQhUN929yPy4j5B2PfQYk3JJyG8iq7HVoXbia
疯狂动物城:QmUKaQwN2ppapUEFhbHsKoVXn2yBRM7mLpu5HQv9am7dB7
彩绘心天地:QmXg1c6qPtoQAyfrXrWnuDrUgFehnt4kLvv1hxheMUeFBC
肖申克的救赎:QmRUYeMkvirV4frGX8wcntCq6x5GqDixAjZnFj5Jg1E3qj
太空旅客:QmdxpUVnvFnert9nmEkzwwz2tWdavU3fUQzrgBsTZP5yyG

2)去中心化上传图片:http://ipfs.pics/

3)更多等待你的发现,欢迎评论留言

参考链接:
https://ipfs.io/
https://www.youtube.com/watch?v=8CMxDNuuAiQ
https://blog.csdn.net/ns2250225/article/details/79277929
https://blog.csdn.net/qq_27516777/article/details/79522997

附 ipfs常用命令:

ipfs init
初始化配置ipfs,得到本机的ipfs节点id,也就是一串哈希字符串;

ipfs cat /ipfs/节点id/readme
下载readme文件,并在命令提示符窗口显示其内容

ipfs daemon
启动节点,命令提示符窗口被锁定

ipfs add
文件上传

ipfs add example.jpg
上传文件

ipfs add –r dirpath
上传文件夹

ipfs repo gc
批量清理本地节点内容

ipfs pin rm HASH
删除缓存

ipfs block rm HASH
删除二进制块

ipfs pin add ipfs/HASH
添加pin

ipfs pin rm ipfs/HASH
删除pin

ipfs pin ls ipfs/HASH
查看pin信息
文章目录