b bajsj.com
bajsj.com · 话题 · The Graph从零开始

The Graph 从零开始:一周内跑通自有子图的实战路径

按零基础顺序讲解 The Graph 的安装、子图初始化、合约事件映射、本地调试与去中心化网络部署,并结合交易所对账场景给出案例代码与上线建议。

1112 关注 · 22 2026-05-24T15:28:26.750837+00:00

回答共 1 条

默认排序 ▾
b
bajsj.com 主编
The Graph从零开始 领域深度内容
优秀回答者
The Graph从零开始 - The Graph 从零开始:一周内跑通自有子图的实战路径

The Graph 从零开始:一周内跑通自有子图的实战路径

The Graph 是 Web3 索引层的事实标准,但官方文档跨度较大,新人很容易迷路。本文按真实开发节奏,把从零到上线的流程拆成五个步骤,配上常见坑点与解决办法。

一、环境准备

开发机需要 Node.js 18 与 pnpm 9,再装上官方 CLI:

npm install -g @graphprotocol/graph-cli

做本地调试还要装 Docker,准备好 graph-node + postgres + ipfs 三件套。如果做主网 ETH 上的子图,建议提前在 Binance官网 买一些 ETH 用于支付查询费用,Binance提币 选择 ERC20 网络到 dev 钱包即可。

二、初始化子图

graph init --product hosted-service \
  --from-contract 0x... --network mainnet my-subgraph

CLI 会自动抓取合约 ABI 并生成 subgraph.yaml、schema.graphql 与 mapping.ts。新手第一次跑别改太多,先确认能编译过。

三、写映射逻辑

mapping.ts 是用 AssemblyScript 写的(它与 TypeScript 类似但更严格)。最常见的逻辑是把 ERC20 Transfer 事件映射成 Account 与 Transfer 实体。关键技巧:

  • 把昂贵的查找(loadInBlock)缓存到局部变量;
  • BigInt.fromI32(0) 显式声明大整数,避免类型错误;
  • 调用 entity.save() 前 double-check 关联字段。

四、本地调试

graph test 跑映射的单元测试,验证给定事件下实体的状态是否正确。然后 graph deploy --node http://localhost:8020 推到本地 graph-node 上,从 GraphiQL 跑几个查询验证。

如果项目涉及与交易所的对账,本地子图可以同时索引 Binance合约Binance现货 的链上结算合约,方便对比中心化平台与链上事件。

五、上主网与维护

经过本地验证后,部署到 The Graph Studio,提交 IPFS hash 后即可 publish 到去中心化网络。建议预留 1-2 周的策展期,让 Indexer 把数据 sync 完整。

上线后接入告警:当某区块同步落后头部超过 100 时自动 ping 你;同时把 Binance充值 入金记录通过日终对账接入子图查询,差异超过 0.1% 立刻发钉钉提醒。

写在最后

第一次部署完整子图大概会消耗 3 个工作日,加上上主网与策展的 4-5 天,从零到上线刚好一周。掌握 ABI 处理、AssemblyScript 类型、本地调试与对账接入这四块能力,团队就拥有了一套属于自己的链上数据中台。

111 赞同
发布于 2026-05-24T06:12:21.451507+00:00 · 更新于 2026-05-24T15:28:26.750837+00:00