Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

注:本文翻译自Textile最新消息。注意,将技术概念从一种语言完美地翻译到另一种语言是困难的。因此,并不能保证翻译的准确性。Textile原文链接如下:

https://blog.textile.io/adding-filecoin-support-to-near-dapp/

Textile 最近宣布了将原生 Filecoin 存储引入 NEAR、ETH、Polygon 等的愿景。在上一篇文章中,我们讨论了推出一系列 Bridge 智能合约的计划,这些合约将为每个目标区块链上的用户和应用程序提供无需许可的存储。在我们最初的版本中,我们专注于 NEAR 的测试网,目前已经准备好开始测试!这个初始版本提供了一个功能齐全的存储桥,可以为任何 NEAR 地址所有者存储数据。为了让人们对#BUIDL 感到兴奋并做好准备,今天我们提供了一个利用@textile/near-storage Javascript SDK 的演示dApp 的简短技术演练。对于现有的 NEAR 开发人员,该库与已经编写的 Near-api-js 代码交互,以提供易于使用的 API,用于存储 NEAR 区块链和 Filecoin 网络中的任意数量的数据。对于 NEAR 生态系统的新手,您会喜欢上 NEAR、Textile 和 Filecoin 的简单和直观!

 

让我们开始深入了解吧…

 它是什么? 

该演示允许用户使用他们的 NEAR (Testnet) 帐户进行身份验证,创建细胞自动机的独特可视化,将这些可视化存储在 Filecoin 网络上,并在 NEAR 智能合约中创建存储可视化的可验证记录。

 

此应用程序是从众多 NEAR 示例应用程序之一开始构建的,因此请确保您熟悉这些示例和 NEAR 文档,以便了解 NEAR 智能合约和near-api-js 用法的基础知识。

 

您可以在此处找到演示源代码:https://github.com/textileio/near-storage-dapp-demo。对于纯网络应用程序(即没有智能合约,但仍与 Near 交互),请参阅我们的基本演示。

 快速开始 

要在本地运行此项目:

 

先决条件:确保您安装了 Node.js ≥ 12 (https://nodejs.org)。

安装依赖项:npm install (或只是 npm i)

运行本地开发服务器:npm run dev(有关可以使用 npm 运行的脚本的完整列表,请参阅 package.json)

现在您将拥有一个由 NEAR TestNet 和 Filecoin Storage 支持的本地开发环境!运行 npm run dev 会告诉你可以在浏览器中访问以查看应用程序的 URL。

 

 如何运作 

在这个使用 Filecoin Storage 的 NEAR dApp 示例中,有两个主要组件:

 

示例 NEAR dApp 和相关的智能合约。这将被您自己的应用程序和智能合约所取代。

@textile/near-storage 库将 Filecoin Storage NEAR 智能合约和 Filecoin Storage Provider 的使用抽象为一个易于使用的 API。

dApp 和智能合约示例

我们从您通常会在任何 NEAR dApp 中看到的代码开始…在 src/index.tsx 中,我们读取我们的配置,初始化 Near 客户端,创建一个 WalletConnection,获取对当前 NEAR 用户的引用,并创建一个引用到我们示例应用程序的智能合约:

Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

我们的应用程序的智能合约(源代码在程序集目录中)公开了两个函数;我们将使用 storeNewAsset 来存储存储在 Filecoin 上的自动机可视化的链记录,getStoredAssets 将用于检索以前使用 storeNewAsset 存储的所有记录的列表。

 

 使用 Filecoin 存储 

初始化 API

在上面的 src/index.tsx 代码中创建 NEAR WalletConnection 之后,我们将该对象传递给@textile/near-storage 提供的 init 函数。这提供了我们以后将用于与 Filecoin Storage 交互的 API。

Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

我们将新创建的 NEAR 和 Filecoin Storage 对象绑定到 App React 组件,然后在 App.tsx 中呈现 Web 应用程序。

 

 用户登录 

在使用 Filecoin Storage 存储数据之前,Web 应用程序用户必须登录到他们的 NEAR 帐户。如果他们尚未登录,Filecoin Storage 会提供一个辅助方法来启动登录。在这里,我们在绑定到可点击 UI 元素的函数中使用它:

Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

 添加 Deposit 

在用户可以使用 Filecoin Storage 存储数据之前,必须由用户或您(dApp 开发者)代表用户将资金(或资金锁定)存入 Filecoin Storage NEAR 智能合约。存入的资金有助于为 Filecoin 存储提供商提供一定程度的 Sybil 攻击抵抗力。存入资金后,用户有一个活跃的存储会话。会话将在一个小时后到期,存入的资金将退还给发送方。

Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

 存储数据 

一旦Deposit完成并且用户有一个活动的存储会话,我们现在可以存储数据。就像将 File 对象传递给 Filecoin Storage 存储函数一样简单。我们在 App.tsx 中的 mint 函数从一组数据中构建一个文件,我们的元胞自动机可视化,使用 store 函数存储文件,然后使用其 storeNewAsset 函数将有关存储数据的结果信息保存在我们的 dApp 的智能合约中:

Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

 检查 Filecoin 存储状态 

您存储的数据在 IPFS 网络上可用(请注意,在测试网发布期间,数据只会在有限的时间内固定),但存储的数据需要时间才能通过 Filecoin 存储提供程序、被 Filecoin 矿工密封并验证 在 Filecoin 区块链上。您可以随时通过调用 Filecoin Storage status 方法来检查数据的状态。在 App.tsx 中,我们通过从 dApp 的智能合约获取存储数据 ID 列表并将这些 ID 传递给 statusmethod 来在页面加载时执行此操作。这有点像 Javascript 异步 Promise wrangling,但都归结为调用:

Textile 公布了向 NEAR DAPP添加 Filecoin 的简单方法

这是迄今为止将 Filecoin 存储集成到您现有的 NEAR dApp 开发工作流程中的最简单方法。总而言之,在 Filecoin 上存储数据为您的 dApp 增加了大约 10 行代码,并且与您已经与链外存储交互的方式很好地发挥了作用。就这么简单!

 

 了解更多 

我们的示例 dApp 提供了将 Filecoin Storage 集成到 NEAR dApp 的完整示例。我们已经在本自述文件中介绍了集成的所有亮点,但请务必查看完整的 Filecoin Storage 文档以了解更多信息。

 

 探索代码 

后端代码位于 /assembly 文件夹中。当您运行 npm run deploy:contract 时,此代码将部署到 NEAR 区块链。这种在区块链上运行的代码称为“智能合约”——了解有关 NEAR 智能合约的更多信息。

前端代码位于 /src 文件夹中。/src/index.html 是开始探索的好地方。请注意,它加载在 /src/index.ts 中,您可以在其中了解前端如何连接到 NEAR 区块链。

当您更改源文件时,合同和客户端代码都会自动重新加载。

免责声明:平台所发布文章仅代表作者个人观点,与链科天下无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

(802)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注