在提供以用户为中心的方法来解决互联网最大的问题时,去中心化会很慢。目前,完全由用户控制的软件通常过于技术,脆弱和耗时,无法成为默认选择。
但是我们正在努力。今天,我们想分享一下IPFS项目已经进行了一段时间的一些合作,这使我们离无中介的信息访问可行的一步。通过解决“最后一英里”问题,IPFS直接进入网络浏览器。
阶段
通往真正去中心化网络的道路很长。30多年来,浏览器一直是客户端,但是P2P系统的基本概念是参与者既是客户端又是服务器。Web浏览器供应商和Web标准组织尚未针对这种体系结构转变进行设计,因此我们将其分解为若干步骤。
从一开始,IPFS就拥有一个HTTP网关。网关允许HTTP客户端(例如Web浏览器)发布到IPFS网络或从IPFS网络读取。现在,有许多不同的IPFS网络公共HTTP网关,我们在ipfs.io上运行的网关每天处理超过500万个请求。
最初在浏览器工作中,我们的目标是简化对IPFS HTTP网关的访问-在集中式Web上的数十亿人和分布式Web上的内容之间建立桥梁。我们期望在下一阶段进行一些试验-根据浏览器API,设备功能,带宽可用性和功耗来调整节点行为-同时随着我们在标准机构学习并建立共识,我们将与浏览器合作伙伴一起提高采用率。最终,我们旨在使多个浏览器实现完全本机(并且可互操作!)IPFS支持。
在向本机IPFS支持的过程中,我们与Firefox,Brave,Opera和其他浏览器进行了持续的合作。请继续阅读以了解最新状态并了解我们到目前为止的进展。
Brave
自一开始以来,Brave就一直名不虚传-席卷了浏览器,发行商和加密世界。自2018年以来,我们一直在与Brave合作以某种形式提供IPFS支持,并且这项工作的成果正在显现。
删除此安装步骤对于采用确实很重要。虽然技术用户熟悉浏览器扩展,但对于非技术用户而言却不太舒服,并且Brave的用户有额外的开销,需要去Chrome Web应用商店查找和安装它们。
将来,当您加载以“ ipfs://”开头的URL时,Brave会提示您启用扩展名,从而提供顺畅的发现和入门体验。当您浏览IPFS资源时,地址栏将反映该内容。
但这还不是全部。甚至仅在浏览器中尝试真正的p2p网络的最大障碍之一就是缺少可用于扩展程序和网页的API。大多数p2p系统的原语是文件系统访问,原始TCP套接字,用于广播和接收的UDP套接字,在浏览器中,您需要一种使用自定义协议进行导航的方法。在使用Brave:Chromium OS插槽时,我们已经找出了一个难题。
Chromium操作系统具有原始套接字API,但已在Chrome浏览器中禁用。Brave修改了其内部版本,将那些供IPFS Companion使用的API列入白名单-与目前的任何其他浏览器相比,这赋予了我们超强的能力。
这些强大的API使浏览器中嵌入的js-ipfs节点无需外部守护程序即可提供真正的 P2P体验:
嵌入式HTTP网关通过HTTP连接到本地IPFS节点,从而消除了对公共网关的依赖。
TCP传输改善了连接性-不仅通过启用与go-ipfs节点的传输互操作性,而且还使同一网络内的浏览器到浏览器直接通信成为可能
UDP套接字启用了LAN中go-ipfs的基于DNS的服务发现,我们正在研究在脱机环境中工作的其他浏览器到浏览器发现方法
默认情况下,我们的浏览器扩展程序仍希望安装IPFS桌面,但是您可以选择下面显示的实验性选项,以便在Brave本身中运行独立的IPFS节点。请注意,这是完整JS IPFS节点和在浏览器扩展中运行的网关的早期预览。性能和功能将随着时间的推移而改善。
在今年早些时候的IPFS营地上,勇敢的工程师Jocelyn Liu在科学博览会上演示了其中的一些功能,包括一键安装嵌入式网关Companion,还讨论了将来的发展:解决当前的连接限制(例如缺乏)在js-ipfs中支持DHT,并且还计划Brave在加载IPFS内容时设计地址栏。
Opera
Opera是该领域的另一位早期领导者。他们在浏览器中开发了本机加密钱包,该钱包于2018年开始在Android中发货,现在也在其iOS和桌面浏览器中发布。
今年早些时候,Opera宣布他们正在努力支持IPFS!从那以后我们一直在谈论,并期待在今年年底之前在其Android浏览器中推出IPFS支持。
火狐浏览器
自2018年libdweb项目出现以来,我们一直与Mozilla一起使用初始API ,为P2P系统所需的许多原语提供浏览器扩展API:文件系统访问,TCP,UDP和协议注册和处理。
在2018年初,ipfs://方案已在Firefox中列入白名单,因此现在有了libdweb,我们就可以尝试使用合适的ipfs://协议处理程序,我们在2018年8月的Lab Day进行了演示:
我们在libdweb中使用了更多的API来实现本地发现和TCP传输:
不幸的是,libdweb仍然是一组实验性的API-尚未包含在Firefox中。我们希望Mozilla很快能在今年至少在某些扩展中为Firefox中提供libdweb API方面取得更多进展!
万事开头难
集成IPFS网关支持是向前迈出的一大步,但是顾名思义,它并没有真正分散。只有当浏览器可以完全参与网络(包括客户端和服务器)时,我们才能拥有真正的分布式网络。
这些早期采用者为将来的工作指明了方向,证明了行之有效的方法和不行的方法,并简化了dapp开发人员的开发。
但是还有很多工作要做。IPFS本身仍在不断变化,有关性能和健壮性的主要工作正在进行中,并且围绕隐私和内容过滤的新功能也在不断发展。
我们正在研究与标准机构共享的详细用例,以及浏览器供应商可以针对其建立和设计的威胁模型。两者都是未来所有主流浏览器都具有可互操作实现的前提,这将使IPFS真正成为网络的一部分。
领取专属 10元无门槛券
私享最新 技术干货