Skip to content

在Moonbeam上运行Graph节点

概览

Graph节点负责从区块链上获取事件消息,并精准更新数据存储。数据存储可通过GraphQL终端请求进行访问。

设置Graph节点有两种途径:可以使用Docker运行多合一的镜像,也可以采用Rust部署。本教程将介绍第一种方法。此方法更为便捷,且能帮助您快速创建Graph节点。

注意事项

本教程示例基于Ubuntu 18.04和MacOS的环境,用户需根据其所使用其他系统进行微调。

此处提供的信息仅供参考,由第三方提供。 Moonbeam文档网站(https://docs.moonbeam.network/)上列出和描述的任何项目与Moonbeam立场无关。

查看先决条件

在创建Graph节点之前,请确保系统上已安装以下工具:

在教程中,我们将用tracing标记Graph节点,对应Moonbase Alpha完整节点运行。如果您想运行开启tracing的全节点,请参考运行追踪节点指南。

此教程也适用于Moonbeam和Moonriver。 要在Moonbeam或Moonriver网络上测试本指南中的示例,您可以从受支持的网络端点提供商之一获取您自己的端点和API密钥。

运行Graph节点

首先,克隆Graph节点代码库

git clone https://github.com/graphprotocol/graph-node/ \
&& cd graph-node/docker

接下来,执行setup.sh文档。这一步将拉出所有必要的Docker镜像,并在docker-compose.yml文档中写入必要信息。

./setup.sh

上一条指令的日志尾端应与以下内容相似:

Graph Node setup

设置好所有相关内容后,需要在docker-compose.yml文档中修改“Ethereum environment”,让其指向运行该Graph节点的节点终端。请注意,setup.sh文档会检测Host IP并写入一个值,因此您需要进行相应修改。

ethereum: 'moonbeam:http://127.0.0.1:9944'
ethereum: 'moonriver:http://127.0.0.1:9944'
ethereum: 'mbase:http://127.0.0.1:9944'
ethereum: 'mbase:http://127.0.0.1:9944'

整个docker-compose.yml文档应与以下内容相似:

version: '3'
services:
  graph-node:
    image: graphprotocol/graph-node
    ports:
      - '8000:8000'
      - '8001:8001'
      - '8020:8020'
      - '8030:8030'
      - '8040:8040'
    depends_on:
      - ipfs
      - postgres
    environment:
      postgres_host: postgres
      postgres_user: graph-node
      postgres_pass: let-me-in
      postgres_db: graph-node
      ipfs: 'ipfs:5001'
      ethereum: 'mbase:http://127.0.0.1:9944'
      RUST_LOG: info
  ipfs:
    image: ipfs/go-ipfs:v0.4.23
    ports:
      - '5001:5001'
    volumes:
      - ./data/ipfs:/data/ipfs
  postgres:
    image: postgres
    ports:
      - '5432:5432'
    command: ["postgres", "-cshared_preload_libraries=pg_stat_statements"]
    environment:
      POSTGRES_USER: graph-node
      POSTGRES_PASSWORD: let-me-in
      POSTGRES_DB: graph-node
    volumes:
      - ./data/postgres:/var/lib/postgresql/data

最后,只需运行以下指令即可运行Graph节点:

docker-compose up

Graph Node compose up

稍后您就可以看到Graph节点与网络中最新可用区块同步的日志:

Graph Node logs

这就代表您已在Moonbase Alpha测试网成功部署并运行Graph节点。欢迎您随时对本示例进行调整,以适用于Moonbeam和Moonriver。

本网站的所有信息由第三方提供,仅供参考之用。Moonbeam文档网站(https://docs.moonbeam.network/)上列出和描述的任何项目与Moonbeam立场无关。Moonbeam Foundation不保证网站信息的准确性、完整性或真实性。如使用或依赖本网站信息,需自行承担相关风险,Moonbeam Foundation不承担任何责任和义务。这些材料的所有陈述和/或意见由提供方个人或实体负责,与Moonbeam Foundation立场无关,概不构成任何投资建议。对于任何特定事项或情况,应寻求专业权威人士的建议。此处的信息可能会包含或链接至第三方提供的信息与/或第三方服务(包括任何第三方网站等)。这类链接网站不受Moonbeam Foundation控制。Moonbeam Foundation对此类链接网站的内容(包括此类链接网站上包含的任何信息或资料)概不负责也不认可。这些链接内容仅为方便访客而提供,Moonbeam Foundation对因您使用此信息或任何第三方网站或服务提供的信息而产生的所有责任概不负责。
Last update: January 25, 2024
| Created: April 28, 2021