【戴嘉乐 IFPS】IPFS伴侣:一个对IPFS资源管理更加便捷的浏览器插件
作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师| 个人网站:https://www.daijiale.cn 微信号:daijiale6239
注意:文章中部分链接需要 访问外国网站 才能访问下载
一、应用简介
IPFS伴侣(IPFS Companion)是一个由IPFS官方应用社区(IPFS-Shipyard)孵化出来的应用项目。 Ta是一个浏览器插件,可以帮助用户在本地更好的运行、管理自己的节点,并随时查看IPFS节点的资源信息。
1.1 效果
1.2 开源地址
https://github.com/ipfs-shipyard/ipfs-companion
二、应用特性
2.1 IPFS资源自动检测
可以检测到如:/ipfs/$cid
或 /ipns/$peerid_or_fqdn
这样网页端的任何资源请求链接。如果经过测试的资源链接是一个有效的IPFS地址,它将被重定向并从本地网关加载:
例如:
https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
→ http://127.0.0.1:8080/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
2.2 IPFS连接状态和图形操作栏
- IPFS接口和网关状态
- 本地文件快速上传图形操作
- 一键登录WebUI控制台以及偏好管理
- 支持重定向切换到本地网关(默认情况下,手动模式可以在首选项中启用)
- 可以对IPFS加载页进行如下的附加操作:
- 通过API对IPFS资源进行Pin/Unpin
- 复制IPFS地址
- 将可分享的资源地址复制到首选网关中
2.3 调试实验
默认情况下是未启用的,需要切换到Preferences Screen。
- 通过 自定义ipfs://网关协议 重新路由到HTTP网关:
ipns://$cid
ipns://$cid_or_fqdn
dweb:/ipfs/$cid
dweb:/ipns/$cid_or_fqdn
- 通过 dnslink 检测DNS文本记录并从IPFS加载它们
- 让纯文本的IPFS链接可以被点击
- 右键点击任何图像或视频来进行IPFS镜像切换
- 即使在外部API关闭的情况下,本地节点也可以用于上传数据。
- 将IPFS API的子集公开为window.ipfs ,意味着每个网页加载时就可以监听到IPFS节点的接入,而不是生成自己的js-ipfs节点,这节省了资源、电量等消耗。
三、安装方式
3.1 稳定版本(Release)
注意: ipfs-companion是作为IPFS Daemon守护进程的扩展而设计的,请确保你的电脑上已先提前安装了 IPFS
3.2 测试版本(Beta)
主要面向开发者人群和发烧友调试使用
- Firefox Beta 版本 : Self-hosted Signed Dev Build
- Chrome Beta 版本: Dev Build at Chrome Web Store
四、使用演示
这边截图了部分自己的使用情况,给大家图文说明:
- 安装扩展
- 设置Chrome浏览器该插件为启用状态
- 插件识别不到本地节点启动,处于离线状态
- 启动本地节点
- 打开 IPFS伴侣插件,将自动识别IPFS短链,并开启重定向功能
- 得益于官方的JS扩展支持到了window.ipfs的程度
- 进入插件配置选项,如下图所示,这边可以根据用户&开发者需要,灵活调整网关、API、和DNS配置
- 识别到ipfs短链资源,且能查看到连接节点数
- 快速上传功能
- 快速上传后发布到公网
- 通过插件打开Web UI控制台 Review资源同步状态
PS:之前大部分的朋友都是通过命令行来操作这些,比较繁琐,耗时,这次 Mr.Maple博主特意给大家介绍了一款这样的浏览器工具,期望能帮助各位IPFS开发者&发烧友节约更多精力。
五、开发支持其他浏览器的插件
这边,官方公布了Web扩展API,供开发者和发烧友使用,支持开发者构建基于其他浏览器的插件。感兴趣、有能力的朋友可以实现一下运行在360、猎豹、QQ(这些基于Chrome和Firefox内核)的浏览器的IPFS工具插件。
官方支持两种构建模式:
- 资源包构建(推荐)
- Docker镜像构建
具体实现Tips如下: Developer Notes for IPFS Companion
值得一提的是:
2018年1月26日,火狐 WebExtensions 产品经理 Mike Conca 在 Mozilla 官网发布了文章(Extensions in Firefox 59),列举了火狐59的最新扩展(目前发布于测试版)。其中一项特性是支持包括IPFS在内的分布式协议。
所以,强烈建议对IPFS浏览器插件开发感兴趣的开发者使用基于Firefox内核的浏览器 调试会比较好。
六、使用QA和Bug提交
官方在Github上提供了专门的issue讨论区,大家在使用过程中遇到问题可以在这查询解决方案: https://github.com/ipfs/ipfs-companion/issues/22.
七、参考文献
- 【区块链】利用ipfs构建自己的去中心化分布式wiki系统
- ipfser.org:火狐浏览器支持IPFS在内的分布式协议
- Github Organization ---- IPFS Shipyard 船厂
相关文章和视频推荐
【戴嘉乐】IPFS Desktop:IPFS节点桌面管理App
圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/345101?flowToken=1007371
- Redis密码设置与访问限制(网络安全)
- Elasticsearch-sql 用SQL查询Elasticsearch
- python使用装饰器@函数式化django开发
- python 设计模式,“多”例模式
- 怎样把微信聊天记录导出备份到电脑【微信公众平台技巧】
- zookeeper curator选主(Leader)
- zookeeper curator使用caches实现各种监听
- python apschedule安装使用与源码分析
- 数据迁移过程中hive sql调优
- 词序:神经网络能按正确的顺序排列单词吗?
- 使用spark对hive表中的多列数据判重
- 如何从微信公众平台上下载关注用户(备份微信关注用户)
- 使用hive客户端java api读写hive集群上的信息
- 大数据算法设计模式(1) - topN spark实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- django form和field具体方法和属性说明
- 总结PHP中初始化空数组的最佳方法
- tensorflow使用CNN分析mnist手写体数字数据集
- PHP7 mongoDB扩展使用的方法分享
- 主流开源分布式图数据库 Benchmark
- PHP封装的简单连接MongoDB类示例
- 基于Tensorflow的MNIST手写数字识别分类
- Yii框架ACF(accessController)简单权限控制操作示例
- tensorflow 动态获取 BatchSzie 的大小实例
- TP5.0框架实现无限极回复功能的方法分析
- Tensorflow之MNIST CNN实现并保存、加载模型
- tensorflow 大于某个值为1,小于为0的实例
- YII框架模块化处理操作示例
- 基于tensorflow for循环 while循环案例
- 浅谈Python 命令行参数argparse写入图片路径操作