如何使用 Ormi Labs 部署 subgraph
2025-06-05 18:00
登链社区
2025-06-05 18:00
订阅此专栏
收藏此文章
登链社区

概述

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

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

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

你将要做的事

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

你需要的

  • 一个免费的 QuickNode 帐户
  • 启用 Subgraph add-on 的 QuickNode 终端节点
  • 对 The Graph 的基本了解
  • 已安装 Graph CLI

什么是子图?

子图索引区块链数据,使其可以通过 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。
image-20240930222847819.png

创建一个 API Key

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

  1. 登录到你的 QuickNode 仪表板
  2. 在你的终端节点页面上,导航到 Add-ons 选项卡。
  3. 单击 add-on 旁边的 Sign in to Dashboard
    image-20240930222847819.png
  4. 在 Ormi Labs 仪表板中,按照 Launch with the Graph CLI 说明(或单击 API Keys 选项卡)创建一个 API key。
image-20240930222847819.png
  1. 复制生成的 API key 以供以后使用。
image-20240930222847819.png

部署一个子图

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

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

  • 合约0xB6a37b5d14D502c3Ab0Ae6f3a0E058BC9517786e (Elemental NFT)
  • 网络: Ethereum Mainnet
  • 部署在区块17516233

步骤 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 合约的配置选项:

image-20240930222847819.png

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

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 auth 或 yarn 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。

image-20240930222847819.png

步骤 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

image-20240930222847819.png

查询你的子图

一旦你的子图上线,你可以通过 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 的 idfromto 和 blockTimestamp

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

结论

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

  • 原文链接:https://www.quicknode.com/guides/marketplace/marketplace-add-ons/how-to-deploy-a-subgraph-with-ormi-labs
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

登链社区是一个 Web3 开发者社区,通过构建高质量技术内容平台和线下空间,助力开发者成为更好的 Web3 Builder。

登链社区
  • 登链社区网站 : learnblockchain.cn
  • 开发者技能认证 : decert.me
  • B 站 : space.bilibili.com/581611011
  • YouTube : www.youtube.com/@upchain
登链社区

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

登链社区
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开