首页 > 其他分享 >世界杯竞猜项目Dapp-第四章(subgraph)

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

时间:2022-12-14 13:22:49浏览次数:45  
标签:node 存储 竞猜 subgraph graph Dapp 合约

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 为当前合约所部署的块,如果不增加,则从最初块开始扫,效率低

标签:node,存储,竞猜,subgraph,graph,Dapp,合约
From: https://www.cnblogs.com/pandacode/p/16981793.html

相关文章

  • 世界杯竞猜项目Dapp-第三章(ERC20)
    ERC20是标准的以太坊Token协议,它也是一个合约代码,只要在该合约内部实现了特定的6个方法,就会被系统判定为代币合约,具体总结为:6个必要接口,2个必要事件,3个可选接口,详......
  • C# .NET 从dapper调用存储过程,该存储过程接受用户定义表类型的列表【实战】
    dapper给存储过程传《用户自定义表类型》tabledapper给存储过程传用户自定义表类型tabledapper给存储过程传table存储过程​​InsertUserInfo​​​,该存储过程接受《用......
  • 泰山众筹dapp项目开发原理分析(源码搭建)
    泰山众筹”是一种以卖货为主的一种电商商业模式。众筹模式是商城快速驱动用户自我裂变的一种促销活动。通过用户主动发起链接人脉,好友互助的模式,以更低的门槛参与并完成项......
  • 如何用vue+免费的webdb 实现一个世界杯足球竞猜系统
    一、前言最近世界杯在如火如荼的进行。我们都知道,中国也派出了我们的一支强大的队伍:中国建筑队,全程参与了世界杯的所有比赛。哈哈开个玩笑,不过说到世界杯,还真有不少朋友,不......
  • DApp实战:开发属于你的第一个DApp - 我的日记本
    效果预览项目的视频教程部分已经发布到了b站​​https://space.bilibili.com/391924926/channel/seriesdetail?sid=2745034​​初始化状态添加删除开发环境准备系统环境Remi......
  • 世界杯竞猜项目Dapp-第一章(合约开发)
    前言最近卡塔尔世界杯如火如荼,让我们一起来尝试利用solidity语言做一个世界杯竞猜的Dapp实战项目,本次实战学习主要参考:https://github.com/dukedaily/solidity-expert......
  • .NET6之MiniAPI(二十六):封装Dapper
    在上一篇说过,Dapper是通过扩展IDbConnection来达到实现的,那带来的一个问题就是隔离性不好,比如在做单元测试时,mock就有点困难,所以在实践中,我对Dapper作了扩展,下面分享出......
  • .NET6之MiniAPI(二十六):封装Dapper
    在上一篇说过,Dapper是通过扩展IDbConnection来达到实现的,那带来的一个问题就是隔离性不好,比如在做单元测试时,mock就有点困难,所以在实践中,我对Dapper作了扩展,下面分享出......
  • .NET6之MiniAPI(二十五):Dapper
    注:如果你使用Dapper一段时间了,这篇你可以跳过去了。在第十二篇中,我们聊过官方的ORM——EntityFramework,它可以把SQL细节都隐藏,这对于一些标准化的关系数据库项目......
  • .NET6之MiniAPI(二十五):Dapper
    注:如果你使用Dapper一段时间了,这篇你可以跳过去了。在第十二篇中,我们聊过官方的ORM——EntityFramework,它可以把SQL细节都隐藏,这对于一些标准化的关系数据库项目非......