最近,笔者的微信朋友圈被“Cloudflare网关”刷屏了,到底是怎么回事呢?
原来在9月17日这天,IPFS项目团队Protocol Labs发布了一条推特,为美国互联网安全提供商Cloudflare的一款新产品打call。据悉,该产品可以帮助用户更容易地访问由Protocol Labs开发的去中心化存储协议IPFS(星际文件系统)。
此信息一出,Cloudflare网关迅速成为许多IPFS爱好者关注的焦点,各大新闻媒体及矿机厂商纷纷报道相关信息。
很多朋友要问了,Cloudflare的IPFS网关到底有何魅力让协议实验室以及众多IPFS大佬为其站台宣传呢?
笔者认为,Cloudflare公司此次推出基于IPFS的分布式web网关,是大型公司对与IPFS价值的又一肯定。Cloudflare是一家非常优秀的互联网安全提供商,在国内外享有很高的知名度,这样一个跨国公司肯定并参与到IPFS项目中,标志着IPFS已经开始走向主流。
那么,如何利用Cloudflare网关搭建访问IPFS网站呢?黑萤科技从不来虚的,这次就手把手带您体验一番吧!
先声明一下:本教程由黑萤科技首发,安装部分只指针对Windows系统的用户,其他系统安装go-ipfs,请自行百度相关教程。
首先去ipfs官网下载对应版本的go-ipfs,放在任意目录,打开cmd命令行工具,进入go-ipfs的目录,初始化ipfs节点:
ipfs init
输入ipfs daemon,启动ipfs节点守护进程:
ipfs daemon
在go-ipfs根目录下创建Cloudflare文件夹,在Cloudflare文件夹内新建一个index.html静态页面,内容自定义。然后重新打开一个cmd控制台,进入go-ipfs目录,输入以下命令实现递归添加:
ipfs add -r Cloudflare
返回目录和文件对应的hash
这个时候我们的静态网站就被添加到ipfs主网上了,如果您能科学上网的话,就可以通过以下链接访问到我们的静态网站:
https://ipfs.io/ipfs/QmYvQQTs2Sx4cRB1k1XhAJGmYMkTygjVuTP5qizaaxtiBJ
到此为止都和平时把文件上传到IPFS网络中再进行访问一样,如果我们不想通过ipfs.io的网关,而是用其他网关访问也是一样的,这里我们就可以用CloudFlare的网关来访问:
https://cloudflare-ipfs.com/ipfs/QmYvQQTs2Sx4cRB1k1XhAJGmYMkTygjVuTP5qizaaxtiBJ
使用cloudflare-ipfs.com网关访问ipns也是一样的,速度比/ipfs/要慢(ipns的解析何时能大力优化ToT),但比ipfs.io快得多:
https://cloudflare-ipfs.com/ipns/Qmb5c8NkxTk6m63tC5sKELASkNJYH1taExzoGeHD73txsU
不过这并不完美,带着QmYvQQTs2Sx4cRB1k1XhAJGmYMkTygjVuTP5qizaaxtiBJ这样长串哈希的域名链接是很难让人记忆并运用的。庆幸的是,Cloudflare充分考虑到了这一点,支持给网站自定义一个简短好记的域名,步骤如下:
1、用于your.website指向的CNAMEwww.cloudflare-ipfs.com
2、_dnslink.your.website带有该值的TXT记录dnslink=/ipfs/
按照上面的步骤完成后,您就可以通过您解析的域名访问到这个静态网站了,如果有问题可以参考https://developers.cloudflare.com/distributed-web/ipfs-gateway/connecting-website/
好了,以上的所有功能,ipfs.io上也都能实现,那么Cloudflare还有什么独特之处呢?简单来说有两点:
1、无需使用梯子,至少目前还不用。
2、速度快!真的很快,小编用Cloudflare下载大文件都是满速的!满速的!速的!的!
那么实现以上这些优点的基础是什么呢,我们来看一张示意图:
我们假设有许多用户购买了黑萤Ms.家用矿机,接入IPFS网络成为网络节点,这些网络节点的行为不再赘述了。当我们(用户)通过网关访问IPFS网络内容的时候,在没有客户端的情况下必须借助网关访问,比如ipfs.io和cloudflare-ipfs.com。这时的访问过程大致可以分成以下几个环节:
每个环节都有可能成为完整交互的速度瓶颈,简要分析如下:
1、环节一所需通信带宽可以忽略不计,所以无需考虑其速度。
2、环节二的耗时主要受IPFS网络可用性、文件分布状态的影响。
3、环节三的耗时主要受服务器带宽、服务器位置的影响。
所以,环节二采用IPFS进行过通信,其耗时和网关无关,而环节三采用HTTP通信,我们以往分析IPFS和HTTP时所用提及的影响因素这里也同样适用。那么仔细对比一下两个网关:
l ipfs.io:(1)服务器处于美国,大陆访问服务器的时候需要依赖国际主干网络。(2)我们通过这个网关获取文件的速度不可能超过ipfs.io服务器提供的带宽上限。
l cloudflare-ipfs.com:(1)Cloudflare本身有经营CDN业务,在全球有150多个HTTP缓存节点,在中国大陆就有21个缓存节点,根据用户的位置,会直接由大陆的服务器来响应用户的请求。(2)Cloudflare提供的带宽非常巨大,速度上限极高。(3)150缓存节点之间为CDN内部通信,十分快捷,文件在部分缓存节点上缓存过之后,其他节点再响应同个文件的请求时,可通过内部通信快速响应。
说了那么多,最后来划重点:Cloudflare就是活雷锋、大好人!大家想在IPFS上做什么都可以撸起袖子加油干了!
最后附上本文章实例的几个链接,大家可以打开测试下速度哦:
ipfs.io网关访问ipns(龟速)::https://ipfs.io/ipns/Qmb5c8NkxTk6m63tC5sKELASkNJYH1taExzoGeHD73txsU
cloudflare-ipfs.com网关访问ipns(慢速):https://cloudflare-ipfs.com/ipns/Qmb5c8NkxTk6m63tC5sKELASkNJYH1taExzoGeHD73txsU
ipfs.io网关访问ipfs(快速):https://ipfs.io/ipfs/QmYvQQTs2Sx4cRB1k1XhAJGmYMkTygjVuTP5qizaaxtiBJ
cloudflare-ipfs.com网关访问ipfs(神速):https://cloudflare-ipfs.com/ipfs/QmYvQQTs2Sx4cRB1k1XhAJGmYMkTygjVuTP5qizaaxtiBJ