资讯专栏INFORMATION COLUMN

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

CloudwiseAPM / 3480人阅读

摘要:作者简介戴嘉乐前百度高级研发工程师应用实践者布道师个人网站联系方式微信号。二技术介绍对这项技术不熟悉的同学,可以参考我之前一次演讲分享的内容戴嘉乐详解的本质技术架构以及应用。

作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师|
个人网站:https://www.daijiale.cn
联系方式:微信号:daijiale6239。
一、应用背景

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

二、技术介绍 2.1 IPFS

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

2.2 Ngrok

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

官网: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 环境搭建 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... 进行访问

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

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

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

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

浏览器打开 http://localhost:4040/inspect/http

我们来监控刚才对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中进行集成。

四、未完待续

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

视频等大文件本地缓存优化

ipns动态解析目录

自动化控制资源的分享权限

...

五、参考文献

【区块链】利用ipfs构建自己的去中心化分布式wiki系统

Ngrok Doc

ipfs.io


相关文章和视频推荐

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24427.html

相关文章

  • 嘉乐】(进阶)基于IPFSNgrok构建维护资源网关

    摘要:五参考文献区块链利用构建自己的去中心化分布式系统相关文章和视频推荐戴嘉乐入门基于和构建自维护资源网关圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师|个人网站:https://www.daijiale.cn联系方式:微信号:daijiale6239。 一、背景 上篇文章[《(入门...

    xiyang 评论0 收藏0
  • 嘉乐】详解IPFS的本质、技术架构以及应用

    摘要:戴嘉乐去年月参与了的众筹,从而了解到技术,独立开发了两款基于的开源应用,一个是与有关的系统,另一个是相关的地理位置检索系统。现在支持的数据结构,支持比特币以太坊的区块数据。 戴嘉乐是前百度高级研发工程师,ipfser.org&巴比特专栏作者。戴嘉乐去年8月参与了FileCoin的众筹,从而了解到IPFS技术,独立开发了两款基于IPFS的开源应用,一个是与IPFS有关的wiki系统,另一...

    whlong 评论0 收藏0
  • 嘉乐】利用IPFS构建己的去中心化分布式Wiki系统

    摘要:全称,中文名星际文件系统,是一个旨在创建持久且分布式存储和共享文件的网络传输协议。在网络中的节点将构成一个分布式文件系统。使用称为去中心化命名系统,每个文件都可以被协作命名为易读的名字。三项目实践利用构建一个去中心化不可篡改的分布式系统。 作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师|个人网站:https://www.daijial...

    keithxiaoy 评论0 收藏0
  • 嘉乐基于IPFSGeoHash构建具有地理位置价值服务的DDApp(理论篇)

    摘要:数据将具有如下个特点将二维的经纬度转换成字符串,比如下图展示了北京个区域的字符串,分别是,等等,每一个字符串代表了某一矩形区域。例如,坐标对,位于北京安定门附近,后形成的值为。 作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师|个人网站:https://www.daijiale.cn联系方式:微信号:daijiale6239。 show...

    lmxdawn 评论0 收藏0
  • 【许晓笛】EOS:IPFS落地的重要途径

    摘要:写在前面,这一篇文章是许晓笛在北京开发者圆桌会议上的发言实录,感谢主办方戴嘉乐和董天一的邀请,感谢编辑们。我这次分享题目是有可能有点标题党,前面拉了三个字有可能是落地的一个非常重要的途径。共识机制共识机制,就是所有代币持有人选举。 写在前面,这一篇文章是许晓笛 2018.05.20 在北京 《IPFS开发者圆桌会议》上的发言实录,感谢主办方戴嘉乐和董天一的邀请,感谢编辑们。先介绍一下《...

    tuomao 评论0 收藏0

发表评论

0条评论

CloudwiseAPM

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<