Filecoin官方丨将 Filecoin 与 IPFS 结合使用

2021-09-20 17:17

Browsers 3000 是 Protocol Labs 为期五周的黑客马拉松,专注于为 Web3 浏览器的未来构建的去中心化解决方案。以下是 Jimmy “Cake” Lee 关于如何实现 Textile 的库或 Estuary 通过标准 Web 浏览器利用 Filecoin 的讨论摘要。




随着 Web 浏览器逐渐转向使用 web3,对去中心化文件存储的需求变得越来越明显。然而,浏览器插件变得越来越有限,对分布式存储协议(如IPFS)的访问也是如此。标准 Web 浏览器并不总是能够直接地利用 IPFS。因此,需要有一个中介来帮助打算使用这些存储系统开发应用程序的开发人员。

Estuary是许多为 web3 编码的开发人员寻求的解决方案。Estuary 本质上是一个集成了最小 Filecoin 库的 IPFS 节点。让 Filecoin 与 IPFS 一起工作不应该是一个复杂的过程,但要做到正确可能有点挑剔。

在这个示例中,Textile 作为托管中介,允许开发人员通过标准 API 将内容固定到 IPFS。在我们了解这些如何相互配合之前,我们需要了解每个项目的作用及一些背景知识。


IPFS 和 Filecoin:在(区块链)世界中的一对搭档


Filecoin是一个去中心化的网络,允许存储来自任何地方访问的数据。用户可以提供他们可用的存储作为网络上的节点,并在这些节点上存储和检索数据时赚取 FIL。

这个等式的另一边是 IPFS。IPFS 是 web3 的文件系统,用于为开发人员处理跨网络的数据存储和检索。最接近的非区块链类型是云存储——除非不受大型公司控制。

老派的程序员可能还记得在 C 语言家族中使用指针来访问变量。IPFS 在内容 ID (CID) 中使用类似的东西从可用的节点访问数据。

您可以参考 IPFS“驱动器”上的 CID 地址,而不是使用本地驱动器上的文件地址。然而,由于浏览器并不自然地理解 IPFS,他们需要一种方法来将这些 CID“视为”文件。为此,一个名为 Textile 的工具应运而生。


引入 Textile 作为持久性 IPFS 数据存储

浏览器对 IPFS 文件的问题在于它们不是持久的。Textile提供了一个简单的托管解决方案,开发人员可以将其添加到任何网站或应用程序。

尽管 IPFS 协议并非在每个主流浏览器中都直接可用,但Textile 通过使用“Buckets”作为组织、索引和固定 IPFS 数据的一种方式来实现这一点。

设置存储Buckets很简单,只需创建一个本地机密文件来存储访问Textile Hub帐户所需的密钥。当您注册 Textile Hub 帐户并开始开发应用程序时,您将收到一个公钥和私钥。这个key需要插入到文本文件中,格式如下:

TEXTILE_HUB_KEY = XXXX

TEXTILE_HUB_SECRET = XXXX

IPFS_GATEWAY = https://ipfs.io


这部分过程可能是技术上最具挑战性的。Textile 的 CLI 工具应该为系统访问存储Buckets提供公钥和私钥的值。一旦开发人员通过了这一点,使用存储Buckets开发应用程序应该很简单。

Textile 的集成允许使用任何语言或框架进行开发。虽然一些开发人员可能更喜欢在他们的产品中使用 React 或 Vue,但 Angular 或任何其他 JS 实现也可以正常工作。公钥和私钥允许以安全的方式托管数据。它们还允许生成 libp2p 身份。

一旦您应用程序的用户设置了 libp2p 密钥,他们就可以开始使用通过 Textile 设置的存储Buckets基础设施将数据固定到 IPFS。根据服务器负载和连接质量,文件可能需要一段时间才能访问。

IPFS 网络上的数据越流行,检索速度就越快。如果您的用户存储的数据需要更多可验证的证据来证明它将被长期存储,Textile Buckets 支持 Filecoin API,允许您与在 Filecoin 网络中已知的存储提供商进行存储交易。

但是,如果您不知道任何存储提供商,您会怎么做?Estuary可以提供更简单的解决方案,将您的数据传输到 Filecoin 网络。

双重存储系统

当使用 Textile 将数据添加到存储Buckets时,该数据会固定到 IPFS 并且可以访问,但该数据不会自然进入 Filecoin 链。由 Textile 提供的 IPFS 网关访问的数据需要与供应商达成存储协议才能添加到 Filecoin 区块链中。要将数据固定到 Filecoin 网络,需要像Estuary或 [Textile's Bidbot]()这样的中介。

使用Estuary,可以上传数据访问100多个节点,但是你的数据是否真的上链还是个问题。对此有一些简单的验证方法,允许您读取文件、CID 和当前数据提供者。

将文件上传到 Estuary 很容易,因为上传文件的方法有很多:用户可以在他们的应用程序中使用 [Estuary 的 API]()、使用命令行,或者只是登录并在浏览器中拖放文件。

Estuary 还允许列出与特定帐户相关的数据。该列表提供了用户有权访问的所有文件及其 CID 的读数,包括哪些存储提供商在 Filecoin 网络上拥有这些文件。

Estuary 提供了与 React JS 的简单复制粘贴集成,以便与应用程序一起使用。当然,开发人员需要添加自己的 API 密钥,但在大多数情况下,可以直接使用 Estuary 指南中的片段来完成。

Web 存储的新范式


IPFS 和 Filecoin 是互补的系统,生态系统开发了 Textile 和 Estuary 等工具来帮助它们协同工作。

随着插件限制的增加,这些工具是使用当前浏览器为 web3 开发的一些最佳解决方案。随着时间的推移和 IPFS 变得更容易访问,浏览器将继续支持原生集成(参见:Opera和Brave)。

随着这些集成的继续,Textile 和 Estuary 提供了一种简单的解决方法,用于将这些系统同时使用。