如何使用 Ormi Labs 部署 subgraph

本文介绍了如何使用 QuickNode 上的 Ormi Labs subgraph 插件, 通过 Graph CLI 设置 subgraph 项目,并轻松部署 subgraph。主要步骤包括:在 QuickNode 上启用 Ormi Labs subgraph 插件、使用 Graph CLI 设置 subgraph 项目、使用 subgraph 插件部署 subgraph。

概述

子图使得通过 GraphQL 查询区块链数据成为可能,从而极大地简化了去中心化应用程序的数据访问。使用 Ormi 的 0xgraph,你可以通过 5 个简单的步骤访问实时、索引的区块链数据。

在本指南中,你将学习如何在你的 QuickNode 终端节点上启用 Ormi 的 0xgraph,使用 The Graph CLI 设置你的子图,并快速轻松地部署你的子图。

如果你想更深入地了解子图的工作原理以及如何从头开始创建它们,请查看如何使用 The Graph 创建自定义子图指南。

你将要做的事

  • 在 QuickNode 上启用 Ormi Labs' Subgraph add-on
  • 使用 The Graph CLI 设置你的子图项目
  • 使用 Subgraph add-on 部署你的子图

你需要的

一个展示如何使用 Ormi 的 0xgraph 设置子图的视频,从 QuickNode Marketplace 开始。

1 subscriber

通过 QuickNode Marketplace 部署 Ormi Subgraph

Ormi

Watch on

/ •Live

订阅我们的 YouTube 频道,获取更多视频!Subscribe

什么是子图?

子图索引区块链数据,使其可以通过 GraphQL 查询访问。这简化了为去中心化应用程序 (dApps) 获取复杂数据的过程。有关更详细的介绍,请参阅我们的指南:如何使用 The Graph 创建自定义子图

为什么选择 Ormi Labs?

Ormi Labs 极大地简化了子图部署。Ormi 提供了一个稳定的、可用于生产的基础设施,无需花费数百个工程小时来配置托管、确保正常运行时间和数据新鲜度。这让你可以专注于构建应用程序,而实时分析和仪表板可以轻松跟踪和优化性能。

Ormi Labs 提供跨 40 多个链的支持,让你可以在流行的网络上部署子图。在开始之前,请务必查看 add-on's marketplace page 以确保与你计划使用的网络兼容。

总而言之,以下是 Ormi Labs' Subgraph add-on 的关键功能:

  • Petabyte 级基础设施:完全符合 The Graph 协议,提供 Petabyte 级数据访问,而无需基础设施负担。
  • 无缝 Graph 迁移:使用熟悉的 Graph CLI 工具轻松从现有设置迁移。
  • 分析和指标仪表板:实时了解查询量、性能指标和正常运行时间。
  • 可靠性和性能:通过强大的 SLA 和亚秒级延迟保证 99.9% 的正常运行时间。
  • 内置 Webhooks:Webhook 支持通知、消息或其他用例。

前提条件

在 QuickNode 上启用 Ormi Labs Add-on

要在你的 QuickNode 终端节点上启用 Ormi Labs add-on,请按照以下步骤操作:

  1. 如果你还没有,请创建一个免费的 QuickNode 帐户
  2. 登录到你的 QuickNode 仪表板
  3. 创建一个新的终端节点或选择一个现有的终端节点。
  4. 导航到 Add-ons,找到并选择 Subgraph by Ormi Labs, Inc
  5. 安装 add-on。

Subgraph Add-on - 用户仪表板

创建一个 API Key

要创建一个 API key,请按照以下步骤操作:

  1. 登录到你的 QuickNode 仪表板
  2. 在你的终端节点页面上,导航到 Add-ons 选项卡。
  3. 单击 add-on 旁边的 Sign in to DashboardOmni Subgraph - SSO
  4. 在 Ormi Labs 仪表板中,按照 Launch with the Graph CLI 说明(或单击 API Keys 选项卡)创建一个 API key。

Omni Subgraph - Create API Key

  1. 复制生成的 API key 以供以后使用。

Omni Subgraph - Copy API Key

部署一个子图

在本节中,我们将首先使用 The Graph CLI 在本地搭建和配置你的子图。准备好你的子图后,你将使用新创建的 API key 将其部署到 Ormi Labs。

我们将使用以下示例合约,这是一个用于 NFT 集合的 ERC721 合约:

步骤 1:设置你的子图项目

使用 Graph CLI 创建你的子图:

graph init my-graph

my-graph 替换为你想要的项目名称。

当你运行 Graph CLI init 命令时,系统会询问你一系列问题,例如协议、网络和合约地址。

输入合约地址后,CLI 将尝试自动获取 ABI。如果失败,你可以手动提供 ABI 文件(包含合约 ABI 的 JSON 文件)路径。

合约部署区块号和合约名称也是如此。如果你不知道它们,你可以通过检查合约创建交易在 Etherscan 上找到它们。

手动获取 ABI

如果合约已在 Etherscan(或类似网站)上验证,请转到合约页面,单击 Contract 选项卡,向下滚动到 Contract ABI 部分,然后复制 ABI。将其另存为项目目录中的 JSON 文件。

请参阅下面的屏幕截图,了解我们用于 Elemental NFT 合约的配置选项:

Graph CLI - Init 命令

完成此步骤后,你应该在终端中看到一条成功消息:

Subgraph my-graph created in my-graph

Next steps:
  1. Run `graph auth` to authenticate with your deploy key.
  2. Type `cd my-graph` to enter the subgraph.
  3. Run `yarn deploy` to deploy the subgraph.

Make sure to visit the documentation on https://thegraph.com/docs/ for further information.

由于你使用的是 Ormi Labs,因此你不需要运行 graph authyarn deploy 命令。相反,你将使用 Graph CLI 生成类型和映射,编译你的子图,然后使用 Ormi Labs 基础设施部署它。

步骤 2:生成类型和映射

导航到你的项目文件夹并从你的智能合约 ABI 生成类型:

cd my-graph
graph codegen

步骤 3:编译你的子图

编译子图以确保你的映射和模式配置正确:

graph build

步骤 4:部署你的子图

使用 Ormi Labs 基础设施部署你的子图:

graph deploy <your_subgraph> --node  https://subgraph.api.ormilabs.com/deploy --ipfs https://subgraph.api.ormilabs.com/ipfs --deploy-key <api_key>

<your_subgraph> 替换为你的子图标识符(例如,my-graph),并将 <api_key> 替换为你从 Ormi Labs 仪表板生成的 API key。

部署子图

步骤 5:等待同步

等待你的子图与网络同步。你可以通过仪表板的 Subgraphs 选项卡或使用其 Status API 终端节点来检查子图的状态。

你可以在 Ormi Labs 仪表板的 Sync Status API Endpoint 部分找到 cURL 命令。它看起来像这样:

curl "https://api.subgraph.ormilabs.com/api/public/query_deployment?subgraph_id=<subgraph_id>"

响应将如下所示。请注意,一旦子图同步,synced 字段将为 true

{
    "id": "<your_id>",
    "name": "ormi-subgraph",
    "deployment": "<your_subgraph_id>",
    "deploy_version": "v0.0.1",
    "failed": false,
    "synced": false,
    "health": "healthy",
    "message": "",
    "latest_block": "19102326",
    "earliest_block": "19101826",
    "chain_name": "mainnet",
    "chain_id": "1",
    "chain_head_block": "22543608"
}

同步后,你将在子图旁边看到 Live status

已同步子图

查询你的子图

一旦你的子图上线,你可以通过 REST API 执行 GraphQL 查询(例如,https://api.subgraph.ormilabs.com/api/public/<your_id>/subgraphs/<your_subgraph>/<your_version>)。单击仪表板中的 Public GraphQL Link 以访问 GraphiQL 界面,你可以在其中运行查询并探索你的子图。

以下是一个示例查询,用于从 Elemental NFT 合约中获取最新的 transfer。请务必调整实体名称和字段名称以匹配你的模式(schema.graphql)。

此查询检索 5 个最新的 Transfer 事件,按区块时间戳降序排列。它返回每个 transfer 的 idfromtoblockTimestamp

query LatestTransfers {
    transfers(first: 5, orderBy: blockTimestamp, orderDirection: desc) {
        id
        from
        to
        blockTimestamp
    }
}

结论

你现在已成功使用 QuickNode 上的 Ormi Labs 部署了你的子图,从而可以轻松访问强大的分析和可靠的基础设施。尽情开发你的数据驱动的去中心化应用程序吧!

附加资源

我们很乐意听到更多关于你正在构建的内容。在 Discord 中给我们留言,或者在 X 上关注我们,以随时了解所有最新信息!

我们 ❤️ 反馈!

如果你对新主题有任何反馈或要求,请告诉我们。我们很乐意收到你的来信。

  • 原文链接: quicknode.com/guides/mar...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。