世界杯竞猜项目Dapp-第四章(subgraph)

subgraph 是什么

subgraph 索引协议作为 Dapp 领域最重要的基建之一(如 uniswap、wave 等都在使用),主要用来做链上数据索引,即在链下对链上事件进行捕捉(扫链、计算、存储),然后可对存储下来的数据进行相关读操作,其关键总结为三点:

  • 通过链下监听事件,逻辑处理,然后存储到数据库中,供前端调用;
  • 常用于统计历史信息及变化,仅做展示相关,可以节约链上存储成本,且响应更快;
  • 请求 subgraph 时使用专门的 graphql 语言,而非 sql;

原理

  • 用户从合约侧发起交易;
  • 合约发送事件;
  • 由 subgraph 监听到该事件,并在内部执行逻辑(根据实际业务需求自定义),处理后入库;
  • 用户(前端)从 subgraph 的数据库中读取数据,完成展示;

使用方式

  • the graph 官方提供的去中心化网络:subgraph studio(需要 token 支持,请自行尝试)
  • 也可搭建本地 graph node,先下载其环境到本地:
git clone https://github.com/graphprotocol/graph-node/

这里对 graph node 与 subgraph 关系进行说明,在 graph node 上可以部署多个 subgraph,每个 subgraph 可以服务多个不同的项目。

创建 subgraph

// 安装 subgraph
npm install -g  @graphprotocol/graph-cli
// 初始化
graph init

具体选项跟随引导程序填写,选择:网络 -> 名称 -> 合约地址 -> 合约名字,引导程序会自动在网络上拉取 ABI(前提是我们 verify 了,否则需要自己填写)

配置修改

增加扫块起点 startBlock 为当前合约所部署的块,如果不增加,则从最初块开始扫,效率低

posted @   这个杀手冷死了  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
历史上的今天:
2021-12-14 中文技术文档写作规范

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示