【戴嘉乐】(入门)基于IPFS和Ngrok构建自维护资源网关

做者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师| 我的网站:www.daijiale.cn 联系方式:微信号:daijiale6239。html

1、应用背景

因为一些特殊缘由,ipfs.io网关在天朝没法访问,以前在外作宣讲的时候,也被不少朋友问到ipfs.io是否一直会被禁的问题,纷纷表示担心,这边经过一个简单的Demo,让你们能够搭建属于本身的协议网关,经过这种方式,咱们跑在IPFS上的资源将不在受限,而且每一个人均可以独立出本身的节点服务并分享给其余人、应用程序访问使用。linux

2、技术介绍

2.1 IPFS

对IPFS这项技术不熟悉的同窗,能够参考我以前一次演讲分享的内容:【IPFS】戴嘉乐:详解IPFS的本质、技术架构以及应用。程序员

2.2 Ngrok

Ngrok是一个反向代理,经过在公共的端点和本地运行的 Web 服务器之间创建一个安全的通道,比较轻量级,不须要去在本地构建一个相似Nginx或者Tomcat这样的服务器,便可完成IP动态映射和内网穿透,对创建IPFS这样的资源网关来讲,最为方便,并且,经过Ngrok ,咱们能够直观的捕获和分析全部通道上的流量,便于后期资源上的分析和重放,还有便于开发者调试的协议信息展示等功能。api

官网:https://ngrok.com/
教程:https://ngrok.com/docs
下载:https://ngrok.com/download
复制代码

3、应用实践

博主采用的是Mac OS 10.13.3 + go-ipfs v0.4.13 + Ngrok v2.2.8。浏览器

3.1 环境搭建

####3.1.1 Ngrok安装缓存

从 download page下载你所需的系统版本。安全

若是是linux or mac系统,建议移动到系统用户目录下安装,以便更好使用terminal来操做ngrok:服务器

$ mv ngrok.zip ../user/
复制代码

$ unzip /path/to/ngrok.zip微信

这里能够注册Ngrok,经过Dashboard,绑定Ngrok帐户,享受更多权益功能:架构

3.1.2 验证、启动Ngrok

./ngrok help
复制代码

出现以下信息,表示安装成功:

./ngrok http 80
复制代码

出现以下信息,表示启动ngrok成功:

打开浏览器,键入http://127.0.0.1:4040 ,能够监控资源访问状况:

3.1.3 IPFS部署

部署方式能够参考我以前的文章:利用ipfs构建本身的去中心化分布式wiki系统

3.1.4 Ngrok绑定IPFS资源

  • 启动本地IPFS节点
  • 运用IPFS上传一张图片,并获得IPFS指纹:QmdzsNmv...Tow
  • 启动ngrok,绑定在IPFS的默认端口:127.0.0.1/tcp/8080,

    ./ngrok http 8080

  • 以下图所示,Ngrok帮咱们动态映射了:29e22496.ngrok.io -> localhost:8080
  • 咱们用手机微信对http://29e22496.ngrok.io/ipfs/QmdzsNmv...Tow 进行访问

  • 咱们再在浏览器发起一个对本地ipfs资源的访问:localhost:8080/ipfs/QmdzsNmv...Tow

咱们看到了分别来自本地ipfs和手来自机的GET Response,资源访问成功。

固然,有朋友说,反向代理层可否自定义本身的域名前缀,其实,Ngrok是为咱们提供了这样的服务的,可是须要购买付费服务:

3.1.5 使用Ngrok对IPFS资源进行监控

  • 咱们来监控刚才对IPFS资源访问的详细记录和报文数据:

咱们能够成功监控到两次资源请求的耗时以及协议报文的详细数据。

3.1.6 经过Ngrok API 自动化运维IPFS节点

然而,有朋友又会抱怨了:以上的全部操做都是须要人工手动来创建和部署的,可否实现远程自动化的运维服务。

答案是:没有什么是程序员解决不了,“懒”是咱们永远追求的境界。

经过 Ngrok API 文档,咱们能够经过RPC远程调用来控制节点,并集成到业务程序代码里,实现自动化运维和控制。

一些经常使用的操做以下:

方法名 请求形式 API 备注
Start tunnel POST /api/tunnels
Stop tunnel DELETE /api/tunnels/:name
Delete Captured Requests DELETE /api/requests/http

有兴趣的朋友能够在本身的业务或者App中进行集成。

4、未完待续

咱们经过Ngrok为IPFS节点配置HTTP Tunnels,充分利用了其NAT穿越的特性,成功搭建了属于本身的资源网关,为他人提供IPFS节点服务。可是这仅仅是一个雏形,缺陷还不少,随后会再写一篇文章《【应用】(进阶)基于IPFS和Ngrok构建自维护资源网关》,来说解对资源网关的种种优化,例如:

  • 视频等大文件本地缓存优化
  • ipns动态解析目录
  • 自动化控制资源的分享权限
  • ...

5、参考文献


相关文章和视频推荐

【戴嘉乐】(进阶)基于IPFS和Ngrok构建自维护资源网关

圆方圆学院聚集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。 公开课地址:ke.qq.com/course/3451…

相关文章
相关标签/搜索