栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

本地graph-node配置ens-subgraph

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

本地graph-node配置ens-subgraph

依赖

  • Rust (latest stable) – How to install Rust
  • PostgreSQL – PostgreSQL Downloads
  • IPFS – Installing IPFS
1.拉取代码
git clone https://github.com/ensdomains/ens-subgraph

git clone https://github.com/graphprotocol/graph-node //我使用这个版本报错

wget https://github.com/graphprotocol/graph-node/archive/refs/tags/v0.25.2.tar.gz
tar -zxvf v0.25.2.tar.gz
2.安装依赖项
  1. 安装 IPFS 初始化ipfs init,然后运行ipfs daemon。

  2. 安装PostgreSQLsudo apt-get install postgresql输入initdb -D .postgres,然后运行pg_ctl -D .postgres -l logfile start和createdb graph-node

    以用户postgres进入postgresqlsudo -i -u postgres,输入 psql正常显示版本则正确。如报错可能需要重启postgresql,或者需要sudo apt-get install -y clang libpq-dev libssl-dev pkg-config。

    psql 数据库名  --连接数据库
    select rolname,rolpassword from pg_authid;--查看用户名密码
    select usename,passwd from pg_shadow;--查看用户名密码
    select version();	-- 查看版本
    select current_database();--查看当前数据库
    l					--查看所有数据库
    dt					--查看表
    password username	--修改密码
    password           --设置密码。
    ?                  --查看psql命令列表。
    c [database_name]  --连接其他数据库,切换数据库。
    conninfo           --列出当前数据库和连接的信息。
    d                  --列出当前数据库的所有表格。
    d [table_name]     --列出某一张表格的结构。
    du                 --列出所有用户。
    e                  --打开文本编辑器。
    help				--帮助
    h                  --查看SQL命令的解释,比如h select。
    q					--退出
    
    sudo /etc/init.d/postgresql start   # 开启
    sudo /etc/init.d/postgresql stop    # 关闭
    sudo /etc/init.d/postgresql restart # 重启
    此步骤为postgresql的安装、初始化、启用日志、创建数据库
    
  3. 如果使用Ubuntu,您可能需要安装其他软件包:sudo apt-get install -y clang libpq-dev libssl-dev pkg-config

  4. cenos, yum install -y openssl-devel

3.生成契约ABI的类型
cd ens-subgraph
更改其中的subgraph.yaml
specVersion: 0.0.3
description: >-
  A secure & decentralized way to address resources on and off the blockchain
  using simple, human-readable names. Access domains and transfer history.
repository: 'https://github.com/ensdomains/ens-subgraph'
schema:
  file: ./schema.graphql
dataSources:
  - kind: ethereum/contract
    name: ENSRegistry
    network: goerli
    source:
      address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'
      abi: EnsRegistry
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: ./src/ensRegistry.ts
      entities:
        - Domain
        - Account
        - Resolver
      abis:
        - name: EnsRegistry
          file: ./abis/Registry.json
      eventHandlers:
        - event: 'Transfer(indexed bytes32,address)'
          handler: handleTransfer
        - event: 'NewOwner(indexed bytes32,indexed bytes32,address)'
          handler: handleNewOwner
        - event: 'NewResolver(indexed bytes32,address)'
          handler: handleNewResolver
        - event: 'NewTTL(indexed bytes32,uint64)'
          handler: handleNewTTL
  - kind: ethereum/contract
    name: ENSRegistryOld
    network: goerli
    source:
      address: '0x112234455c3a32fd11230c42e7bccd4a84e02010'
      abi: EnsRegistry
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: ./src/ensRegistry.ts
      entities:
        - Domain
        - Account
        - Resolver
      abis:
        - name: EnsRegistry
          file: ./abis/Registry.json
      eventHandlers:
        - event: 'Transfer(indexed bytes32,address)'
          handler: handleTransferOldRegistry
        - event: 'NewOwner(indexed bytes32,indexed bytes32,address)'
          handler: handleNewOwnerOldRegistry
        - event: 'NewResolver(indexed bytes32,address)'
          handler: handleNewResolverOldRegistry
        - event: 'NewTTL(indexed bytes32,uint64)'
          handler: handleNewTTLOldRegistry
  - kind: ethereum/contract
    name: Resolver
    network: goerli
    source:
      address: '0xfF77b96d6bafCec0D684bB528b22e0Ab09C70663'
      abi: Resolver
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: ./src/resolver.ts
      entities:
        - AddrChanged
        - MulticoinAddrChanged
        - NameChanged
        - AbiChanged
        - PubkeyChanged
        - Textchanged
        - ContenthashChanged
        - InterfaceChanged
        - AuthorisationChanged
      abis:
        - name: Resolver
          file: ./abis/PublicResolver.json
      eventHandlers:
        - event: 'ABIChanged(indexed bytes32,indexed uint256)'
          handler: handleABIChanged
        - event: 'AddrChanged(indexed bytes32,address)'
          handler: handleAddrChanged
        - event: 'AddressChanged(indexed bytes32,uint256,bytes)'
          handler: handleMulticoinAddrChanged
        - event: >-
            AuthorisationChanged(indexed bytes32,indexed address,indexed
            address,bool)
          handler: handleAuthorisationChanged
        - event: 'ContenthashChanged(indexed bytes32,bytes)'
          handler: handleContentHashChanged
        - event: 'InterfaceChanged(indexed bytes32,indexed bytes4,address)'
          handler: handleInterfaceChanged
        - event: 'NameChanged(indexed bytes32,string)'
          handler: handleNameChanged
        - event: 'PubkeyChanged(indexed bytes32,bytes32,bytes32)'
          handler: handlePubkeyChanged
        - event: 'TextChanged(indexed bytes32,indexed string,string)'
          handler: handleTextChanged
  - kind: ethereum/contract
    name: BaseRegistrar
    network: goerli
    source:
      address: '0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85'
      abi: BaseRegistrar
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: ./src/ethRegistrar.ts
      entities:
        - Registration
        - NameRegistered
        - NameRenewed
        - NameTransferred
      abis:
        - name: BaseRegistrar
          file: ./abis/BaseRegistrar.json
      eventHandlers:
        - event: 'NameRegistered(indexed uint256,indexed address,uint256)'
          handler: handleNameRegistered
        - event: 'NameRenewed(indexed uint256,uint256)'
          handler: handleNameRenewed
        - event: 'Transfer(indexed address,indexed address,indexed uint256)'
          handler: handleNameTransferred
  - kind: ethereum/contract
    name: EthRegistrarController
    network: goerli
    source:
      address: '0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5'
      abi: EthRegistrarController
    mapping:
      kind: ethereum/events
      apiVersion: 0.0.5
      language: wasm/assemblyscript
      file: ./src/ethRegistrar.ts
      entities:
        - Registration
      abis:
        - name: EthRegistrarController
          file: ./abis/EthRegistrarController.json
      eventHandlers:
        - event: >-
            NameRegistered(string,indexed bytes32,indexed
            address,uint256,uint256)
          handler: handleNameRegisteredByController
        - event: 'NameRenewed(string,indexed bytes32,uint256,uint256)'
          handler: handleNameRenewedByController

yarn

yarn codegen
4.编译启动graph-node
cd graph-node//cd graph-node-0.25.2 

cargo build

cargo run -p graph-node --release -- --postgres-url postgresql://postgres:postgres@localhost:5432/graph-node   --ethereum-rpc goerli:http://192.168.36.150:9545 --ipfs 127.0.0.1:5001 
参数说明
  • postgresql 用户名为USERNAME和PASSWORD。密码可能是可选的。这取决于你的设置。上面的账号密码为postgres:postgres
  • rpc 为网络名称 : url
  • 注意看graph-node的数据库和端口号是否正确
5.构建监听事件
创建
yarn create-local

添加监听
yarn deploy-local
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/838113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号