做者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师| 我的网站:www.daijiale.cn 联系方式:微信号:daijiale6239。html
因为一些特殊缘由,ipfs.io网关在天朝没法访问,以前在外作宣讲的时候,也被不少朋友问到ipfs.io是否一直会被禁的问题,纷纷表示担心,这边经过一个简单的Demo,让你们能够搭建属于本身的协议网关,经过这种方式,咱们跑在IPFS上的资源将不在受限,而且每一个人均可以独立出本身的节点服务并分享给其余人、应用程序访问使用。linux
对IPFS这项技术不熟悉的同窗,能够参考我以前一次演讲分享的内容:【IPFS】戴嘉乐:详解IPFS的本质、技术架构以及应用。程序员
Ngrok是一个反向代理,经过在公共的端点和本地运行的 Web 服务器之间创建一个安全的通道,比较轻量级,不须要去在本地构建一个相似Nginx或者Tomcat这样的服务器,便可完成IP动态映射和内网穿透,对创建IPFS这样的资源网关来讲,最为方便,并且,经过Ngrok ,咱们能够直观的捕获和分析全部通道上的流量,便于后期资源上的分析和重放,还有便于开发者调试的协议信息展示等功能。api
官网:https://ngrok.com/
教程:https://ngrok.com/docs
下载:https://ngrok.com/download
复制代码
博主采用的是Mac OS 10.13.3 + go-ipfs v0.4.13 + Ngrok v2.2.8。浏览器
####3.1.1 Ngrok安装缓存
从 download page下载你所需的系统版本。安全
若是是linux or mac系统,建议移动到系统用户目录下安装,以便更好使用terminal来操做ngrok:服务器
$ mv ngrok.zip ../user/
复制代码
$ unzip /path/to/ngrok.zip微信
这里能够注册Ngrok,经过Dashboard,绑定Ngrok帐户,享受更多权益功能:架构
./ngrok help
复制代码
出现以下信息,表示安装成功:
./ngrok http 80
复制代码
出现以下信息,表示启动ngrok成功:
打开浏览器,键入http://127.0.0.1:4040 ,能够监控资源访问状况:
部署方式能够参考我以前的文章:利用ipfs构建本身的去中心化分布式wiki系统。
./ngrok http 8080
咱们看到了分别来自本地ipfs和手来自机的GET Response,资源访问成功。
固然,有朋友说,反向代理层可否自定义本身的域名前缀,其实,Ngrok是为咱们提供了这样的服务的,可是须要购买付费服务:
咱们能够成功监控到两次资源请求的耗时以及协议报文的详细数据。
然而,有朋友又会抱怨了:以上的全部操做都是须要人工手动来创建和部署的,可否实现远程自动化的运维服务。
答案是:没有什么是程序员解决不了,“懒”是咱们永远追求的境界。
经过 Ngrok API 文档,咱们能够经过RPC远程调用来控制节点,并集成到业务程序代码里,实现自动化运维和控制。
一些经常使用的操做以下:
方法名 | 请求形式 | API | 备注 |
---|---|---|---|
Start tunnel | POST | /api/tunnels | |
Stop tunnel | DELETE | /api/tunnels/:name | |
Delete Captured Requests | DELETE | /api/requests/http |
有兴趣的朋友能够在本身的业务或者App中进行集成。
咱们经过Ngrok为IPFS节点配置HTTP Tunnels,充分利用了其NAT穿越的特性,成功搭建了属于本身的资源网关,为他人提供IPFS节点服务。可是这仅仅是一个雏形,缺陷还不少,随后会再写一篇文章《【应用】(进阶)基于IPFS和Ngrok构建自维护资源网关》,来说解对资源网关的种种优化,例如:
【戴嘉乐】(进阶)基于IPFS和Ngrok构建自维护资源网关
圆方圆学院聚集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。 公开课地址:ke.qq.com/course/3451…