使用IPFS来去中心化地分发数据

本篇文章主要会讲使用IPFS来去中心化分发资源的方法. 注: 之前瞎写的, 实际上没有什么用.

灵感

不久前看到的GFW Blog的一篇文章,今天正巧在V2EX上看到了关于IPFS的一个主题,便开始折腾起来。
用了那一篇文章的方法,我也搭建了用IPFS作为存储的hexo博客(和主站是一样的),可以在这里访问测试。
在搭建这个测试站的时候,突然发现,虽然ipfs.io被墙了,但是利用Cloudflare的反代,可以实现免费在墙内分发IPFS内容。

效果展示

我用这个方法传了个视频上去:

此视频已失效!

Why IPFS

使用IPFS分发文件,意味着这个文件是去中心化的,也就是说,政府很难删除这个文件;并且,只要HASH还在,文件是不会丢失的,不会因为某个服务器出了问题,而整个数据就全没了。
并且,这不会耗费你的服务器的流量。

如何实现

IPFS上传文件

要想分发,就肯定要先上传文件,这里简略地说一下,具体可以参考这个教程。
官网下载后解压。(需要翻墙!!!) 解压后,Shell/cmd切换到目录下,运行ipfs.exe daemon。我这里以windows为例,其他系统请自行将ipfs.exe换为其他文件名。 之后,打开http://localhost:5001/webui,打开左边的Files,再点右边的Upload,选择文件,进行上传。
上传好后,右键上传好的文档,点击Copy hash,获得文件的HASH,接着,你就可以测试了,到https://ipfs.io/ipfs/HASH,将HASH换为你之前复制的HASH,就可以看到你上传的文件啦! 什么?打不开https://ipfs.io?这就对了!接下来,教你如何免费反代资源!

绑定域名|反代资源

前提:请将域名使用Cloudflare DNS
添加一条CNAME记录,名称随便你,指向gateway.ipfs.io,将后面的小云点亮(默认是点亮的) ,之后,访问你刚刚设的域名(xxx.yourdomain.ltd),后面加上/ipfs/HASHHASH换为你之前复制的HASH),即可访问,比如:https://mirror-ipfs.iochen.com/ipfs/QmUHraPc2sQbvnRqt2b7m2tzwLKyzCt5u19GVsR9C6urJh

其它

参考

GFW Blog