The Graph
The Graph 网络是一个去中心化的索引协议,用于组织区块链数据。 应用程序使用 GraphQL 查询称为子图的开放 API,以检索网络上的索引数据。 通过 The Graph,开发者可以建立完全在公共基础设施上运行的无服务器应用程序。
用它做什么(我用到的)
swap交易数据展示 token holder快照
官方教程
官方教程视频
#Building a Subgraph with Subgraph Studio
步骤
1. 安装并初始化 @graphprotocol/graph-cli
yarn global add @graphprotocol/graph-cli
graph init
2.初始化会得到一个demo (我们需要的是3个文件)
subgraph.yaml: 包含子图清单的 YAML 文件schema.graphql: 一个 GraphQL 模式文件,它定义了为您的子图存储哪些数据,以及如何通过 GraphQL 查询这些数据AssemblyScript映射: 将事件数据转换为模式中定义的实体(例如本教程中的mapping.ts)的 AssemblyScript 代码
3. 定义子图清单(subgraph.yaml)
- 把abi文件的位置写好
- 把event事件写好
- entities 内写实体
4.定义实体(schema.graphql)
- 就是你需要的数据
- 类似ts 设置参数和类型
5.编译生成generated
yarn codegen
6.编写映射
- 设置id
- load(id)
- save()
7.发布
- ETH主网使用Subgraph Studio 发布
- 其他的链使用Hosted Service
- 使用
Hosted Service需要使用github 链接账户后,创建子图, 创建后会生成密钥(ID) 复制 在项目终端执行graph auth --product hosted-service xxxId - 发布前执行
graph build检查 - 无问题的话 就可以发布了 在package.json 设置deploy 的子图名称 执行
graph deploy发布 发布完成后 控制台会有链接 使用链接到托管服务查看 等待同步 查询数据 - 更新就是再次deploy 会在托管服务看到正在pending 同步的数据