• 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.0
    
    pragma 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;
    
    }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    将这个合约部署在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进阶使用

  • 相关阅读:
    思科配置VLAN间单臂路由
    React之引入css的方式
    学生体育运动主题网页设计——兵乓球国乒网(纯HTML+CSS代码)
    阿里内部总结的微服务笔记,从入门到精通,初学者也能学的会
    Python多线程爬取数据代码模版
    LOTO示波器 实测 开环增益频响曲线/电源环路响应稳定性
    Android商城开发----点击左侧分类列表右侧更新对应列表内容
    聊聊MySQL的10大经典错误
    在KubeSphere中部署微服务(阡陌)+ DevOps
    【从零开始学习 SystemVerilog】2.13、SystemVerilog 数据类型—— Structure(结构体)
  • 原文地址:https://blog.csdn.net/qq_36838406/article/details/136492341