2024年Web端IPFS技术全景:星际船坞重大更新解析

本文深入探讨IPFS在2024年的Web技术进展,涵盖Verified Fetch验证获取、Service Worker网关、浏览器传输协议优化、AutoTLS自动证书服务等核心技术架构,实现去中心化、抗审查且可验证的Web数据检索方案。

IPFS在Web平台的发展:星际船坞更新

今年早些时候,我们推出了星际船坞,作为领导libp2p开源开发和最流行IPFS实现、工具及基础设施维护者的演进。在我们的介绍中,我们分享了路线图和愿景,其中一个关键部分是让IPFS在Web上运行。在这篇博客文章中,我们将分享自那时以来取得的所有进展以及未来的计划。

Web上的IPFS

自IPFS存在以来,关键目标之一就是让在Web上使用IPFS成为可能。即在Web上实现弹性、去中心化和可验证的数据检索。但IPFS在Web上运行意味着什么?

  • 弹性:即使某些提供者离线,浏览器中仍可检索数据
  • 去中心化:可以从浏览器连接到其他对等节点进行内容路由和检索,同时免受审查和网络中断点的影响
  • 可验证:在本地验证数据,确保完整性而不需要信任假设(即无需信任)

数据指的是任何可以由CID寻址的内容:文件、目录、Web应用/dapp、视频等。

虽然Web平台拥有最广泛的影响力,但由于平台的固有约束和浏览器之间的差异,它也是让IPFS运行最具挑战性的平台。像ipfs.io这样的网关是一把双刃剑,因为它们使IPFS内容可被Web访问,但也突显了IPFS在Web上的挑战。

星际船坞的技术项目

在星际船坞,我们一直在通过libp2p和IPFS堆栈中的多个项目正面应对这一挑战:

  • Verified Fetch(验证获取)
  • Service Worker Gateway(服务工作者网关)
  • 新的浏览器传输协议
  • 使用libp2p.direct的AutoTLS
  • 基于HTTP的IPFS
  • 浏览器开发者工具
  • 委托路由HTTP API
  • Bitswap改进
  • libp2p改进

Verified Fetch

Verified Fetch是一个TypeScript库,用于IPFS内容的验证检索,我们今年早些时候发布并构建在Helia之上。我们设计它的目的是使通过CID检索IPFS内容像大多数开发人员已经熟悉的Fetch API一样简单。

从开发者体验的角度来看,Verified Fetch遵循以下模式:

  • 将CID作为输入
  • 返回Response对象

Service Worker Gateway

Service Worker Gateway是一个在浏览器中运行的原生Web IPFS网关。它在Service Worker中实现了IPFS网关规范,并从网络上的提供者直接获取IPFS内容,同时在本地进行验证。

Service Worker Gateway为去中心化Web发布释放了新的可能性:

  • 去中心化:通过点对点检索
  • 无需信任:通过本地验证,移除对任何给定网关或提供者的隐式信任
  • 离线使用:访问过的页面缓存在Cache API中,为每个静态Web应用启用离线支持

浏览器传输协议

浏览器传输协议是Web的基础,也是IPFS在Web上的致命弱点。如果你无法与其他对等节点通信,你就无法做太多事情。

浏览器使用多种传输协议通过互联网通信,每种协议都有自己的优缺点。假设Web应用处于安全上下文中(即通过HTTPS提供服务,如大多数现代Web应用),以下传输协议可用:

  • HTTPS:通过TLS的请求/响应HTTP
  • 安全WebSocket:通过WebSocket的安全双向流通信
  • WebRTC:最初为浏览器到浏览器的实时通信而设计
  • WebTransport:基于QUIC的WebSocket替代方案

AutoTLS与libp2p.direct

AutoTLS是一项新功能,显著改善了浏览器(Helia、Service Worker)连接到Kubo节点的方式。如上所述,安全WebSocket是在Service Worker中可靠工作的唯一流传输,但需要TLS证书和域名。

为了克服这一点,船坞团队一直在开展一个项目,为公开可拨号的Kubo节点自动颁发通配符TLS证书。这样,节点可以使用安全WebSocket libp2p传输,而无需注册域名。

IPFS over HTTP

贯穿本博客文章中许多项目的一个主题是使用HTTP作为互操作性的蓝图。这是由以下原因驱动的:

  • HTTP在Web生态系统中无处不在,并且被开发人员充分理解
  • HTTP在所有现代浏览器中都受支持,并且与Service Worker兼容
  • HTTP具有强大的缓存原语,在基础设施提供商和开源基础设施中广泛采用

浏览器开发者工具

随着新的浏览器传输协议,我们还开发了许多开发者工具,使调试依赖libp2p和IPFS的Web应用更加容易。

历史上,在浏览器中调试IPFS和libp2p意味着启用日志记录然后通过日志进行筛选。我们现在发布了一个浏览器扩展,允许您检查libp2p节点并直接从浏览器开发者工具与之交互。

委托路由HTTP API

委托内容路由HTTP API允许IPFS节点使用HTTP API将内容和对等节点路由卸载到另一个进程/服务器。此外,它还允许与不同路由系统的可组合性和实验。

Bitswap改进

Bitswap是IPFS网络中最普遍的数据传输协议。我们代表IPFS基金会运营公共IPFS网关的经验使我们有机会大规模测量和优化Bitswap。

libp2p改进

Libp2p是上述大多数项目的依赖项,是整个IPFS堆栈的基石。除了前面提到的传输协议工作外,我们还在进行许多改进和规范以支持上述项目。

下一步计划

在我们标记这一里程碑的同时,我们也在展望下一阶段的工作。在接下来的几个月中,我们将重点关注以下几个领域:

  • AutoTLS基础设施的生产化及在Kubo和其他IPFS实现中的集成
  • Boxo/Kubo中的HTTP检索
  • 更多示例、文档和指南
  • Service Worker Gateway中改进的错误处理
  • 将Service Worker Gateway集成到IPFS Companion中

总结

上述所有项目要么已完成,要么接近完成。这是在libp2p和IPFS堆栈以及标准机构和浏览器供应商之间艰苦合作的结果。在Web上实现弹性、去中心化和可验证的IPFS检索终于成为现实。

这项工作的广度和影响力只有通过IPFS和libp2p项目的开源性质才可能实现。但它也强调了资助星际船坞团队的重要性,以便我们能够继续在整个生态系统中引导这些努力。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计