本文介绍了如何使用 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 创建自定义子图指南。
一个展示如何使用 Ormi 的 0xgraph 设置子图的视频,从 QuickNode Marketplace 开始。
1 subscriber
通过 QuickNode Marketplace 部署 Ormi Subgraph
Ormi
Watch on
/ •Live
•
订阅我们的 YouTube 频道,获取更多视频!Subscribe
子图索引区块链数据,使其可以通过 GraphQL 查询访问。这简化了为去中心化应用程序 (dApps) 获取复杂数据的过程。有关更详细的介绍,请参阅我们的指南:如何使用 The Graph 创建自定义子图。
Ormi Labs 极大地简化了子图部署。Ormi 提供了一个稳定的、可用于生产的基础设施,无需花费数百个工程小时来配置托管、确保正常运行时间和数据新鲜度。这让你可以专注于构建应用程序,而实时分析和仪表板可以轻松跟踪和优化性能。
Ormi Labs 提供跨 40 多个链的支持,让你可以在流行的网络上部署子图。在开始之前,请务必查看 add-on's marketplace page 以确保与你计划使用的网络兼容。
总而言之,以下是 Ormi Labs' Subgraph add-on 的关键功能:
要在你的 QuickNode 终端节点上启用 Ormi Labs add-on,请按照以下步骤操作:
要创建一个 API key,请按照以下步骤操作:
在本节中,我们将首先使用 The Graph CLI 在本地搭建和配置你的子图。准备好你的子图后,你将使用新创建的 API key 将其部署到 Ormi Labs。
我们将使用以下示例合约,这是一个用于 NFT 集合的 ERC721 合约:
0xB6a37b5d14D502c3Ab0Ae6f3a0E058BC9517786e
(Elemental NFT)17516233
使用 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 合约的配置选项:
完成此步骤后,你应该在终端中看到一条成功消息:
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 基础设施部署它。
导航到你的项目文件夹并从你的智能合约 ABI 生成类型:
cd my-graph
graph codegen
编译子图以确保你的映射和模式配置正确:
graph build
使用 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。
等待你的子图与网络同步。你可以通过仪表板的 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 的 id
、from
、to
和 blockTimestamp
。
query LatestTransfers {
transfers(first: 5, orderBy: blockTimestamp, orderDirection: desc) {
id
from
to
blockTimestamp
}
}
你现在已成功使用 QuickNode 上的 Ormi Labs 部署了你的子图,从而可以轻松访问强大的分析和可靠的基础设施。尽情开发你的数据驱动的去中心化应用程序吧!
我们很乐意听到更多关于你正在构建的内容。在 Discord 中给我们留言,或者在 X 上关注我们,以随时了解所有最新信息!
如果你对新主题有任何反馈或要求,请告诉我们。我们很乐意收到你的来信。
- 原文链接: quicknode.com/guides/mar...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!