TheGraph 教程

官方文档: https://thegraph.com/docs/zh/quick-start/

简介

The Graph 可以干什么,记录区块链上数据,以前都要有个后端服务和数据库,维护和开发成本大,使用The Graph,方便快捷节省成本

部署

核心: the graph node,将合约的事件索引,存入数据库
自己部署 TheGraphNode rust 实现 ,依赖IPFS,postgrest, geth 归档节点
火币部署文档

使用

合约部署

以一个ERC20代币的合约为例:

// SPDX-License-Identifier: agpl-3.0pragma solidity 0.8.0;import "@openzeppelin/contracts/token/ERC20/ERC20.sol";import "@openzeppelin/contracts/access/Ownable.sol";contract MockToken is ERC20 {string internal NAME = "Mock Token";string internal SYMBOL = "MT";uint256 internal constant TOTAL_SUPPLY = 1e28;uint8 public decimal;constructor(uint8 _decimal) public ERC20(NAME, SYMBOL) {_mint(msg.sender, TOTAL_SUPPLY);decimal = _decimal;}function decimals() public view override returns (uint8) {return decimal;}}

将这个合约部署在mumbai测试网上
部署的地址是: https://mumbai.polygonscan.com/address/0x011c747be9439031b5f3f52ebff12c3109f03aa6
并做一笔转账交易,后面我们将通过graph来索引并查询到这笔转账交易。

graph 创建

打开graph studio 后台
https://thegraph.com/studio/

![[Pasted image 20240305144447.png]]

选择Add Subgraph
填上Subgraph Name, 点击最下方的创建即可

![[Pasted image 20240305144615.png]]

接下来就是我们创建好的样子了:
![[Pasted image 20240305145425.png]]

graph 配置

按照上述命令在本地进行graph 安装配置,先进行安装
![[Pasted image 20240305145801.png]]

执行初始化命令,这里选择 ethereum,我部署的在mumbai 测试网,与etherum一样。
![[Pasted image 20240305145552.png]]

接着按提升一步步选择即可:
![[Pasted image 20240305153808.png]]

最后这里有个让选自己的合约地址的选择,如果开源了合约,就可以选择,graph 会抓取开源的ABI,如果没开源就抓取不到,可以不填

![[Pasted image 20240305154243.png]]

在执行init 安装的时候,可能会遇到一些版本或依赖上的错误,一点点按照提示解决即可。

安装完成之后,就可以graph codegen 和build了
graph codegen 命令是根据subgraph.yaml 中的配置文件和abis中的合约ABI文件,生成文件,
并存放在generated目录中,在这个模板下的文件,开发者可以根据自己的需求处理事件逻辑。
graph build 是将编写好的generated,生成wasm文件。
部署的时候需要进行认证,可以设部署key在环境里,只需要设置一次,或者是每次部署的时候带上要部署的key。
最后就是graph deploy,指定好要部署的名称,部署是会将wasm上传到ipfs 上进行保存。

![[Pasted image 20240305163731.png]]

部署完成后会生成一个IPFS的存储id,
![[Pasted image 20240305165338.png]]

部署完成后可以在graph 控制台看到结果
![[Pasted image 20240305165452.png]]

playground 可以进行查询,如图所示可以查到在这个合约上发生过的一笔转账交易信息。
![[Pasted image 20240305165618.png]]

以上就完成了一个graph的完整使用流程。

graph进阶使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分析案例-二手车用户数据可视化分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【深度学习笔记】计算机视觉——风格迁移

风格迁移 摄影爱好者也许接触过滤波器。它能改变照片的颜色风格,从而使风景照更加锐利或者令人像更加美白。但一个滤波器通常只能改变照片的某个方面。如果要照片达到理想中的风格,可能需要尝试大量不同的组合。这个过程的复杂程度不亚于模型调参。 本…

leetcode 11.盛最多水的容器

题目链接:https://leetcode.cn/problems/container-with-most-water/ 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以…

【unity实战】事件(Event)的基本实战使用

文章目录 最终效果前言一、素材二、角色金币交互1. 拾取金币2. 显示金币数UI 完结 最终效果 前言 之前我们介绍过委托的用法,具体可以跳转:【unity小技巧】委托(Delegate)的基础使用和介绍 这期来讲讲事件,使用你会发…

【SpringBoot3.x教程02】SpringBoot配置文件详解

前言:什么是配置文件 SpringBoot的配置文件是指用于定义和管理SpringBoot应用程序配置的文件。这些配置文件允许开发者调整和控制应用程序的行为,而无需改变代码。主要有两种格式的配置文件: 1、application.properties:这是一种使…

主流开发环境和开发语言介绍

主流开发环境和开发语言介绍 一、主流开发环境介绍 主流开发环境是指广泛应用于软件开发的集成开发环境(Integrated Development Environment,简称IDE)。IDE是一种集成了编辑器、编译器、调试器等工具的软件,提供了一站式的开发环…

华金证券2024:以“芯”助先进算法,以“算”驱万物智能

本文选自“以芯助先进算法,以算驱万物智能”。 一、半导体景气度有望迎来复苏 从半导体行业景气度来看,在经历了2022、2023年的去库存周期 后,半导体销售额有望在2024年迎来复苏。据WSTS数据显示,全球半导体产品销售总额从1999 年…

OJ_一端进,两端出

题干 C实现 #include <stdio.h> #include <list> #include <vector>using namespace std;int main() {int n, k;scanf("%d%d", &n, &k);vector<int> insertVec(n);for (int i 0; i < n; i) {scanf("%d", &insert…

四、西瓜书——支持向量机

第六章 支持向量机 1.间隔与支持向量 支持向量机的原理是寻找与支持向量具有最大间隔的划分超平面。支持向量机具有一个重要性质: 训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关. 首先&#xff0c;超平面的方程为&#xff1a; 点到超平面的距离为&#xff…

单表练习12.0

一个学生表 分别记录姓名&#xff0c;年龄&#xff0c;性别&#xff0c;班级&#xff0c;语文&#xff0c;数学&#xff0c;英语字段 create table student2( id int primary key , name char(20), sex char(10), age int(3), mobile char(20), class char(10), engli…

男子失眠焦虑、胸闷气短发作,多次跑医院,检查结果却显示无异常!

植物神经紊乱指的是人体内部的自主神经系统失去平衡&#xff0c;导致一系列的生理和心理方面的异常状态。人体的自主神经系统分为交感神经系统和副交感神经系统&#xff0c;它们共同调节心血管系统、消化系统、呼吸系统、内分泌系统等器官的功能。当这两个系统的平衡被打破&…

IPSEC---VPN

文章目录 目录 文章目录 一.TCP/IP 协议的缺点 二.IPsec诞生背景 IPsec可提供安全服务 三.IPsec协议簇 IPsec的两种工作模式 传输模式 隧道模式&#xff1a; IPsec的安全协议 AH 协议:鉴别头协议 ESP协议&#xff1a;封装安全载荷协议 AH与ESP对比 AHESP报文&#xff1a…

【python】(5)函数

def 函数名(参数1,参数2....):...reture 结果 #可以不返回def greet_user():"""显示简单的问候语"""print("hello") greet_user()参数 关键字参数 指定参数指向,如果不加关键字必须顺序一致 def greet_user(animal_type, pet_na…

【Python】Python注册微服务到nacos

Python注册微服务到Nacos 1.Nacos部署 github 的nacos项目的发布页&#xff08;Releases alibaba/nacos GitHub &#xff09;&#xff0c;选择所要下载的nacos版本&#xff0c;在nacos下方的assets中选择安装包进行下载。 解压nacos安装包到指定目录。 tar -zxvf nacos-ser…

国产通讯芯片D3232介绍,要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品

一、应用领域 D3232芯片主要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品。 二、基本特性 D3232芯片由两个线路驱动器、两个线路接收器和双电荷泵电路组成&#xff0c;具有HBM>15kV、CDM>2kV的ESD保护能力&#xff0c;并且…

数仓开发-面试二

1.finebi使用 2.数据抽取中间件 flink,kettle flink和kettle区别 3.flink本身的优点和缺点 4.flink容错机制 5.DS 6.数据库 7.主要找orcle、clickhourse 8.mysql离线查作业执行计划&#xff0c;如&#xff0c;你写个sql500&#xff0c;这个时候你怎么定位问题&#xff0c;查看问…

Acwing---3768. 字符串删减

字符串删减 1.题目2.基本思想3.代码实现 1.题目 给定一个由 n个小写字母构成的字符串。 现在&#xff0c;需要删掉其中的一些字母&#xff0c;使得字符串中不存在连续三个或三个以上的 x。 请问&#xff0c;最少需要删掉多少个字母&#xff1f; 如果字符串本来就不存在连续…

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题,label value 值

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题&#xff0c;label value 值 昨天想反馈这个关于 label 和 value 的问题的时候&#xff0c;发现新版本已经修正这个问题了。 一、ElementUI 旧版关于 label 和 value 的问题 从之前 element-ui 用过来的&a…

两天学会微服务网关Gateway-Gateway网关限流

锋哥原创的微服务网关Gateway视频教程&#xff1a; Gateway微服务网关视频教程&#xff08;无废话版&#xff09;_哔哩哔哩_bilibiliGateway微服务网关视频教程&#xff08;无废话版&#xff09;共计17条视频&#xff0c;包括&#xff1a;1_Gateway简介、2_Gateway工作原理、3…

Sublime Text 格式化Json文件 之 Pretty Json

需要使用到 Pretty Json插件。 一、安装方法 sublime 下&#xff0c;按快捷键 Comand control p&#xff0c; 输入install Package,然后回车 等几秒钟&#xff0c;加载启动进程完毕后弹出的页面中输入pretty json, 然后回车 等待几秒钟&#xff0c;可以查看Sublime 最下面的…