Graph Node auf Moonbeam. Inbetriebnahme.
Einführung
Graph Node bezieht events aus einer Blockchain, um einen Datenspeicher deterministisch zu aktualisieren, der dann über einen GraphQL endpoint abgefragt werden kann.
Es gibt zwei Möglichkeiten, einen Graph Node einzurichten: Sie können Docker verwenden, um ein All-in-One-Image auszuführen, oder Sie können ihre Rust-Implementierung ausführen. Die in dieser Anleitung beschriebenen Schritte beziehen sich nur auf die Docker-Alternative, da diese bequemer ist und Sie einen Graph Node sehr schnell einrichten können.
Hinweis Die in diesem Handbuch beschriebenen Schritte wurden sowohl in Ubuntu 18.04-basierten als auch in MacOs-Umgebungen getestet und müssen für andere Systeme entsprechend angepasst werden.
Voraussetzungen prüfen
Bevor Sie mit der Einrichtung eines Graph Nodes beginnen, müssen Sie Folgendes auf Ihrem System installiert haben:
Außerdem muss ein Node mit aktivierter Option --ethapi=trace ausgeführt werden. Derzeit können Sie zwei verschiedene Arten von Noden erstellen:
- Moonbeam development node — Betreiben Sie Ihre eigene Moonbeam-Instanz in Ihrer privaten Umgebung. Folgen Sie dieser Anleitung. Überprüfen Sie unbedingt advanced flags section
- Moonbase Alpha node — Betreiben Sie full Node des TestNet und greifen Sie auf Ihre eigenen privaten endpoints zu. Folgenn Sie dieser Anleitung. Überprüfen Sie unbedingt advanced flags section
In diesem Handbuch wird ein Graph Node mit dem --ethapi=trace Flag ausgeführt
Nodeeinrichtung
Der erste Schritt - das Graph Node-Repository klonen:
git clone https://github.com/graphprotocol/graph-node/ \ && cd graph-node/docker
Führen Sie anschließend die setup.sh Datei aus. Dadurch werden alle erforderlichen Docker-Images abgerufen und die erforderlichen Informationen in die docker-compose.yml Datei geschrieben.
./setup.sh
Das Ende aus den Logs des vorherigen Befehls sollte ungefähr so aussehen:
Sobald alles eingerichtet ist, müssen Sie die "Ethereum environment" in der docker-compose.yml Datei so ändern, dass sie auf den endpoint des Nodes zeigt, für den Sie diesen Graph Node ausführen. Beachten Sie, dass die setup.shDatei die Host-IP erkennt und ihren Wert (value) schreibt, sodass Sie sie entsprechend ändern müssen.
ethereum: 'mbase:http://localhost:9933'
Die gesamte docker-compose.ymlDatei sollte ungefähr so aussehen:
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://localhost:9933'
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/dataSchließlich führen Sie einfach den folgenden Befehl aus:
docker-compose up
Nach einer Weile sollten Sie Logs sehen, die sich auf die Synchronisierung des Graph Node mit dem neuesten verfügbaren Block im Netzwerk beziehen:
Sie haben einen Graph Node, der an das Moonbase Alpha TestNet läuft. Sie können dieses Beispiel auch gerne an einen Moonbeam-Entwicklungsnoden anpassen.