美文网首页IPFS-星际文件传输系统IPFSIPFS
【应用】(入门)基于IPFS和Ngrok构建自维护资源网关

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

作者: 嘉乐的SOHO | 来源:发表于2018-03-31 13:07 被阅读126次

    一、应用背景

    由于一些特殊原因,IPFS在天朝一直被封,之前在外做宣讲的时候,也被很多朋友问到IPFS是否一直会被禁的问题,纷纷表示担忧,这边通过一个简单的Demo,让大家可以搭建属于自己的协议网关,通过这种方式,我们跑在IPFS上的资源将不在受限,并且每个人都可以独立出自己的节点服务并分享给其他人、应用程序访问使用。

    二、技术介绍

    2.1 IPFS

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

    2.2 Ngrok

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

    三、应用实践

    博主采用的是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账户,享受更多权益功能:


    image

    3.1.2 验证、启动Ngrok

    ./ngrok help
    

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

    image
    ./ngrok http 80
    

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

    image

    打开浏览器,键入http://127.0.0.1:4040 ,可以监控资源访问情况

    image

    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
    
    image
    • 我们再在浏览器发起一个对本地ipfs资源的访问:localhost:8080/ipfs/QmdzsNmv...Tow
    image

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

    当然,有朋友说,反向代理层能否自定义自己的域名前缀,其实,Ngrok是为我们提供了这样的服务的,但是需要购买付费服务:

    image

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

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

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

    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中进行集成

    四、未完待续

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

    • 视频等大文件本地缓存优化
    • ipns动态解析目录
    • json资源映射响应
    • 利用自维护资源网关和ipfs-cluster,构建本地IPFS集群服务
    • ....

    转载声明:特别鸣谢天一哥(飞向未来 IPFS指南公众号作者)ipfser.org早期在IPFS大量的布道工作,才有了博主致力于IPFS应用实践的想法,期望更多和我们一样对这个领域感兴趣的朋友能加入进来。

    本文章版权归博主daijiale.cn所有,若想转载请联系作者授权,未经授权,禁止转载,如若发现,将通过个人律师以侵犯《中华人民共和国著作权法》起诉(奉陪到底),授权转载也请注明原出处。

    已授权转载的公众号和媒体网站有:

    微信联系方式如下:

    http://career-pic.oss-cn-beijing.aliyuncs.com/my-certificate/wechat-qrcode.jpeg

    也欢迎加入知识星球:

    image

    五、参考文献

    相关文章

      网友评论

        本文标题:【应用】(入门)基于IPFS和Ngrok构建自维护资源网关

        本文链接:https://www.haomeiwen.com/subject/rfugcftx.html