The Graph子图怎么建?部署、发布与核验

 / 
1

建 The Graph 子图的核心分界点是:部署(Deploy)和发布(Publish)是两件事。部署只是把子图推到 Subgraph Studio 里测试和暂存,发布才是把子图放到去中心化网络上,让索引器(Indexer)和策展人(Curator)能看到它。很多人卡在"部署完了怎么查不到数据",原因往往是没有发布,或者发布了但没有足够的 GRT 信号让索引器愿意接活。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

前置条件:合约和工具先就位

开始之前需要三样东西:一个已部署并在区块浏览器上验证过的智能合约(否则 CLI 拿不到 ABI)、本地安装 Node.js 和包管理器、以及一个能连接 Subgraph Studio 的加密钱包。

初始化:从合约自动生成脚手架

在 Subgraph Studio 连接钱包后创建子图,命名建议用"子图名 链名"的格式(如 MyDapp Ethereum)。创建完成后,页面右侧会显示该子图专属的 CLI 命令,包括 。

本地安装 Graph CLI 后,运行从 Studio 复制的 graph init --studio 命令。CLI 会依次询问合约地址、网络、起始区块等。起始区块(Start Block)填合约部署时的区块高度,这能显著减少索引时间;如果填 0 或留空,子图会从创世块开始扫,慢很多。如果合约已验证,ABI 会自动拉取;如果没有,需要手动提供 JSON 文件。

初始化会生成三个核心文件:subgraph.yaml(定义索引哪些数据源和事件)、schema.graphql(定义你想查询的实体)、mapping.ts(把链上事件转换成实体的逻辑)。之后的主要开发工作就是修改这三个文件。

部署到 Studio:先测试,别急着发布

写完 mapping 后,依次运行 graph codegen(根据 schema 生成类型)和 graph build(编译)。然后从 Studio 复制部署命令,先 graph auth --studio 认证,再 graph deploy --studio 部署。CLI 会要求输入版本标签,建议用语义化版本(如 0.0.1),因为策展人会在 Graph Explorer 里看到这些标签,并据此决定是否 signal。

部署成功后,在 Studio 的 Playground 里跑一个示例查询,确认实体数据能返回。同时检查 Dashboard 的 Logs,如果有 mapping 错误会在这里暴露。Studio 的测试查询端点有速率限制(每天 3000 次),够调试用,不适合生产。

发布到网络:这一步才产生链上记录

点击 Studio 的 Publish 按钮,选择网络,确认发布。发布是 Arbitrum One 上的链上交易,需要钱包里有 ETH 付 gas。发布后子图才会出现在 Graph Explorer 里,索引器才能开始为它服务。

索引器不会自动来找你。 刚发布的子图没有信号,索引器缺乏经济激励去索引它。官方建议在发布时同时用自己的 GRT 做策展(self-curate),至少 3,000 GRT 来加速索引。这个数字是 2024 年 5 月前后的建议值,实际所需信号量随网络状态变化,但 3,000 GRT 是一个被多个文档反复引用的起步参考。如果没有 GRT 可 signal,子图可能长时间处于"已发布但无索引器服务"的状态,查询会失败或极慢。

核验:区分"部署成功"和"可查询"

核验分阶段,不能用一个标准判断全部。

Studio 阶段:部署后看 Logs 无报错,Playground 查询能返回数据。此时数据来自 The Graph Foundation 运营的 Upgrade Indexer,是单点服务,不代表去中心化网络已经就绪。

发布后阶段:在 Graph Explorer 找到你的子图页面,查看 Indexers 列表和 Curation 信号量。如果信号量接近零、索引器列表为空,说明还没有索引器接手。可以等待,或者追加 GRT signal。

查询验证:用 Studio 里创建的 API Key,向去中心化网络的查询 URL 发 GraphQL 请求。URL 格式是 https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/[SUBGRAPH_ID],ID 在 Explorer 页面顶部。如果返回 indexing_error 或超时,回 Explorer 看索引状态。

一个容易忽略的边界:Graph 的智能合约(GNS 等)都在 Arbitrum One 上,即使你的子图索引的是以太坊、Polygon 或其他链的数据。发布和策展的 gas 用 ETH(Arbitrum 上的),不是被索引链的原生代币。

更新和归档

修改子图后重新部署会产生新版本,在 Studio 测试通过后再次 Publish。旧版本不会自动消失,但 Graph Explorer 会展示最新已发布版本。未发布的 Studio 版本有归档策略:创建超过 45 天且 30 天内未被查询的未发布版本会被归档;每次部署新版本时,未发布子图的 N-2 版本也会被归档。如果只是开发调试,注意别让重要版本被自动清理。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

参考资料

  1. The Graph·5 Simple Steps to Build a Subgraph,2024-12-17
  2. The Graph·Quick Start
  3. The Graph·Deploying Using Subgraph Studio
  4. The Graph·Enabling Publication Flows
  5. The Graph·Deploying a Subgraph to Multiple Networks(归档策略与健康检查)
  6. Uniswap Developers·Build a Subgraph,2026-05-19
  7. Polygon Knowledge Layer·The Graph,2026-06-02
  8. Kaia Docs·The Graph,2026-01-28