在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
上一条指令的日志尾端应与以下内容相似:
设置好所有相关内容后,需要在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节点与网络中最新可用区块同步的日志:
这就代表您已在Moonbase Alpha测试网成功部署并运行Graph节点。欢迎您随时对本示例进行调整,以适用于Moonbeam和Moonriver。
| Created: April 28, 2021