快速开始

This guide will quickly take you through how to initialize, create, and deploy your subgraph to the Subgraph Studio or the hosted service.

确保您的子图将从一个受支持的网络 中索引数据。

本指南是在假设您具备以下条件的情况下编写的:

  • 您选择的网络上的智能合约地址
  • GRT来策划你的子图
  • 一个加密钱包

1. 在子图工作室中创建子图

链到本节

Go to the Subgraph Studio and connect your wallet.

连接后,您可以单击“创建子图”开始。选择您选择的网络,然后单击“继续”。

2. 安装 Graph CLI

链到本节

Graph CLI 是用 JavaScript 编写的,需要安装npm 或yarn 来使用。

在本地计算机上,运行以下命令之一:

Using npm:

npm install -g @graphprotocol/graph-cli

Using yarn:

yarn global add @graphprotocol/graph-cli

3. 初始化子图

链到本节

您可以在Subgraph Studio的子图页面找到针对您特定子图的命令。

初始化子图时,CLI工具会要求您提供以下信息:

  • 协议:选择子图索引数据的协议
  • 子图段塞:为您的子图创建一个名称。您的子图段塞是子图的标识符。
  • 创建子图的目录:选择您的本地目录
  • 以太坊网络(可选):您可能需要指定子图将从哪个EVM兼容网络索引数据
  • 合约地址:找到要查询数据的智能合约地址
  • ABI:如果ABI不是自动填充的,则需要将其手动输入为JSON文件
  • 起始区块:建议您在子图索引区块链数据时输入起始区块以节省时间。您可以通过查找部署合约区块来定位起始区块。
  • 合约名称:输入您的合约名称
  • 将合约事件作为实体进行索引:建议您将其设置为true,因为它将自动为每个发出的事件向子图添加映射
  • 添加其他合约(可选):您可以添加其他合约

通过运行以下命令从现有合约初始化子图:

graph init --studio <SUBGRAPH_SLUG>

请参阅下面的屏幕截图,以获取初始化子图时所需的示例:

Subgraph command

4. 编写子图

链到本节

前面的命令创建了一个原始子图,可以将其用作构建子图的起点。当对子图进行更改时,将主要使用三个文件:

  • 清单(subgraph.yaml)--清单定义子图将索引哪些数据源。
  • 模式(schema.graphql)--GraphQL 模式定义从子图中检索到的数据。
  • AssemblyScript 映射(mapping.ts)--将数据源中的数据转换为模式中定义的实体的代码。

想了解更多如何编写子图的信息,请参阅创建子图

5. 部署到子图工作室

链到本节

一旦您的子图被编写好,请运行以下命令:

$ graph codegen
$ graph build
  • 认证并部署子图。部署密钥可以在子图工作室的子图页面上找到。
$ graph auth --studio <DEPLOY_KEY>
$ graph deploy --studio <SUBGRAPH_SLUG>

您将被要求输入一个版本标签。强烈建议使用(语义化版本)semver 进行版本控制,如0.0.1。尽管如此,您可以自由选择任何字符串作为版本,比如:v1version1asdf

6. 测试子图

链到本节

您可以通过在playground部分进行示例查询来测试子图。

日志会告诉你你的子图是否有任何错误。操作子图的日志如下所示:

Subgraph logs

如果子图失败了,可以通过使用 GraphiQL Playground查询子图的健康状况。注意,你可以利用下面的查询,输入你的子图的部署 ID。在这种情况下,Qm... 是部署 ID(可以在子图页面的详细信息下找到)。下面的查询会提示,当一个子图失败时,则可进行相应调试。

{
indexingStatuses(subgraphs: ["Qm..."]) {
node
synced
health
fatalError {
message
block {
number
hash
}
handler
}
nonFatalErrors {
message
block {
number
hash
}
handler
}
chains {
network
chainHeadBlock {
number
}
earliestBlock {
number
}
latestBlock {
number
}
lastHealthyBlock {
number
}
}
entityCount
}
}

7. 将你的子图发布到Graph的去中心化网络

链到本节

一旦你的子图被部署到子图工作室,你已经测试了它,并准备把它投入生产,你就可以把它发布到去中心化的网络。

在子图工作室中,单击您的子图。在子图的页面上,您可以单击右上角的发布按钮。

选择您希望发布子图的网络。建议将子图发布到 Arbitrum One,以利用更快的交易速度和更低的Gas费用

在你可以查询你的子图之前,索引人需要开始在上面提供查询。为了简化这个过程,你可以使用GRT来策展你自己的子图。

在撰写本文时,建议您用10000 GRT策展自己的子图,以确保它被索引并可尽快查询。

为了节省gas成本,您可以在将子图发布到Graph的去中心化网络时选择此按钮,在发布子图的同一交易中策展子图:

Subgraph publish

8. 查询子图

链到本节

现在,您可以通过将GraphQL查询发送到子图的查询URL来查询子图,您可以单击查询按钮找到该查询URL。

如果你没有你的API密钥,你可以通过免费的、速率有限的临时查询URL从你的去中心化应用查询,该URL可用于开发和暂存。

For more information about querying data from your subgraph, read more here.

编辑

上页
L2转移工具指南
下页
支持的网络
编辑