IPFS内置的去中心化可用于任何应用程序开发,它的实用性超出了Web3实现

夕夕说经济 2022-12-16 11:11:42

关于星际文件系统(IPFS) 的大部分对话都是从它与区块链技术的关系开始和结束的。虽然利用 IPFS 协议的去中心化特性为基于区块链的游戏和 NFT 托管媒体资产有很多实用性,但它的实用性超出了 Web3 实现。IPFS 内置的去中心化可用于任何应用程序开发,并有可能改变 Web 应用程序的构建和扩展方式。

IPFS 快速复习

这个名为“Interplanetary File System”的宏大名称最初是由Protocol Labs创始人Juan Benet构想的,作为 HTTP 解决内容的替代方法。HTTP 基于到文件位置的路由。理论上,该位置的文件每次在浏览器中加载时都可能不同。IPFS 地址指向一个特定的加密可验证文件,这意味着该文件的修改版本将使用不同的地址进行引用。

其中一种方式是地址永远不会改变,即使内容暂时不可用也是如此。公司 A 可以托管 IPFS 地址的内容。如果 B 公司出现并托管相同的内容,该地址将返回相同的结果。如果有一段时间没有包含内容的节点可用,则内容将变得不可用,直到托管该内容的节点上线。

在接受 The New Stack 采访时,协议实验室浏览器和平台生态系统负责人Dietrich Ayala说:“IPFS 和 HTTP 之间的主要区别之一是,当 HTTP 中出现 404 时,只有一方可以提供原始 URL . 更改文件名会破坏 HTTP 地址。使用 HTTP,提供数据的一方是该数据可用性的上限;但是对于 IPFS,提供数据的一方只是起点。随着更多节点存储数据,可用性和弹性也会提高。”

为什么要为 IPFS 放弃 HTTP?

考虑到这里提到的所有挑战,为什么开发人员会考虑使用 IPFS 而不是坚持使用 HTTP 堆栈?“目前全栈开发人员的端到端工作流程非常复杂,”Ayala 说。“它需要一系列服务。在发布到 IPFS 的工作流程中有一个即时满足的机会。如果一切正常并且您的节点可用,您可以将您的应用程序添加到您的本地节点,将地址提供给某人,他们可以立即加载它。这与需要注册域名和更新 SSL 证书非常不同,或者 NPM 模块可能在部署时中断,一周后您的代码可以在本地运行,但仍然无法分发。自我出版时的即时满足感真的很强大。”

Protocol Labs 为您提供了一些工具来开始使用 IPFS。您可以通过桌面应用程序或使用 IPFS 的 Go 实现的命令行界面运行节点。使用js-ipfs结合 Node.js 或通过 IPFS 的 Go 实现(称为Kubo ),可以使用 IPFS 进行构建。还有一个 sidecar IPFS Cluster分布式应用程序,允许将文件轻松部署到多个节点,在部署应用程序时提供即时扩展。

IPFS 采用的挑战

IPFS 听起来像是解决许多 Web 基本限制的好方法,但它也听起来好得令人难以置信。我向阿亚拉询问了收养的挑战。他从 HTTP 作为协议的成功开始强调了一些核心问题。

“HTTP 是我们呼吸的空气。这就是我们此时用来与其他计算机对话的一切。AJAX 和 REST API 真正巩固了这样一种观念,即计算机与计算机的通信,而不仅仅是人与人之间的通信,是通过 HTTP API 进行的。当你要求 2800 万以上的开发人员重新评估整个 OSI 堆栈以及网络应用程序的工作方式时,这是一个非常有趣的挑战。”

提高密码素养

密码学教育是采用 IPFS 等新协议的另一个挑战。很少有开发人员和用户希望将散列作为日常生活的一部分的情况。“如果你下载 Linux 发行版,”Ayala 解释说,“你可能很熟悉看到 MD5 哈希值,你可能会或可能不会实际验证哈希值是否匹配。在这种情况之外,您是否需要处理散列?您可能会编写一些代码来将密码保存到您不存储明文的数据库中。在这两个实例之外,它不是日常开发人员体验的一部分。使用 IPFS,这是我们处理无处不在的数据的核心。”

这种可验证性对开发人员和用户都有影响,并且最终是存储在 IPFS 方法中的位置数据不再重要的原因。如果有人从一张照片开始,编辑该照片,然后将其重新发布到 HTTP 世界中,就好像它是原始照片一样,这取决于修改后的像素数量,人眼可能无法区分它不再看同一张图片。从验证的角度来看,IPFS 会将修改后的图像视为新图像。

“在错误信息和虚假信息泛滥的时代,这很重要,”阿亚拉说。“在开发人员如何处理数据、他们如何进行密码验证以及最终用户思考拥有自己的数据意味着什么方面,我们需要克服一个很大的教育障碍。”

后 HTTP 世界中的数据所有权

这给我们带来了采用 IPFS 的第三个障碍,这也是协议之间的另一个根本区别。

Ayala 说,“如果你通过 IPFS 加载一个网站,它就会存储在你的 IPFS 节点中。您拥有它,直到您决定不再需要副本为止。今天网络的运作方式是,网站的所有组件都存储在您的浏览器缓存中,但浏览器不会将浏览器缓存视为属于您的东西。发布者设置的 cookie 决定是否从您的浏览器缓存中删除某些内容。这对我们看待应用程序分发的模式来说是一个相当重大的变化。”

在开发用户决定是保留还是清除网站应用程序数据的模型时,存在一些潜在的挑战。随着新功能的推出或错误的修复,用户应该会看到采用新版本的显着好处,但 IPFS 允许旧版本继续存在。另一方面,当网站删除内容或使部分内容不可用时,用户可能不会从其 IPFS 节点中清除该数据以保持对开发人员不再支持的内容的访问。

Protocol Labs 和 Igalia 解决浏览器问题

采用的另一个挑战是网络浏览器的设计方式。浏览器从根本上设计为 HTTP 协议和请求-响应安全模型的载体。浏览器权限和隐私是围绕 HTTP 设计的。这是使采用像 IPFS 这样的新协议变得简单的核心挑战之一。

由于这一限制,Protocol Labs 聘请了Igalia ,这是一家在构建浏览器技术(包括 MathML 和 CSS Grid)方面具有丰富经验的网络咨询公司。Igalia 在过去的一年里重构了 Chromium 代码库的某些部分,以包括对非 HTTP 协议的支持。“我们与 Igalia 合作修复了一些跨不同浏览器的 Web 兼容性错误,”Ayala 说,“因此源安全模型应用于本地主机地址的方式是一致的,因此 Web 开发人员可以知道他们的代码与浏览器兼容。”

基于 Chromium 的 Brave 浏览器是首批直接集成 IPFS 的浏览器之一。Brave 的集成主要集中在安全模型和如何权衡利弊方面。

“Brave 安全团队之前已经评估和审核了集成,”Ayala 告诉我。“他们已经支持 Tor。IPFS 模型与 Brave 中的 Tor 集成非常相似。一旦用户启用该功能,Brave 就会下载一个 IPFS 节点,启动该节点并将其作为单独的二进制文件运行,通过进程间通信来回发送消息,并将内容流式传输回 Web 渲染引擎。”

在撰写本文时,这种对协议支持的更改尚未出现在 Chromium 的发布版本中,但预计很快就会出现。Igalia 为扩展浏览器中的协议支持所做的工作具有超出 IPFS 的优势。解决 IPFS 与浏览器集成所面临的一些挑战,从根本上改变了浏览器与非 HTTP 协议交互的方式,这在理论上意味着现有协议以及尚未发明的协议也会受益;并可能有更快的采用途径。同时,IPFS 为 Chrome 和 Firefox 提供扩展,并在 Opera 和 Brave 中提供原生支持。

看看IPFS

如果你因为没有在自己的工作中看到区块链的用例而一直推迟研究 Web3 技术的潜力,我鼓励你看看 IPFS。虽然它可以与区块链技术结合使用,但它作为一种点对点协议独立存在,具有解决许多实际挑战的潜力。

努力与更广泛的互联网建立可靠连接的地区可以通过运行 IPFS 节点来创建本地冗余。它还提供了一个可行的解决方案,可以提高面对灾难性停电时的恢复能力,政府和基本服务部门可以更好地应对这种情况。

正如 Ayala 所说,“我们现在正处于十字路口,我们拥有一些现成的技术,允许开发人员构建首先为特定国家的特定公司服务的应用程序。对于互联网用户来说,这是一个巨大的机会,可以利用满足他们需求的东西,而不是千篇一律的协议或平台。”

0 阅读:9

夕夕说经济

简介:IPFS