Zum Hauptinhalt springen
Non-Validator-Nodes bieten RPC-Zugriff auf das Plasma-Netzwerk, indem sie Konsens-Clients überwachen und Anwendungsanfragen bedienen. Dieser Leitfaden behandelt das Deployment mit dem offiziellen non-validator-templates-Repository.

Voraussetzungen

Grundlegende Linux-Administrationskenntnisse
Docker und Docker Compose installiert
Ein Server, der die Hardware-Anforderungen erfüllt

Verfügbare Netzwerke

NetzwerkChain IDKonsens-VersionAusführungs-Version
mainnet97450.15.0Reth v1.8.3
testnet97460.15.0Reth v1.8.3
devnet97470.15.0Reth v1.8.3
Alle Netzwerke nutzen das öffentliche plasma-consensus-public-Image — es ist keine GHCR-Authentifizierung erforderlich.

Schnellstart

1

Docker installieren

Verbinden Sie sich mit Ihrem Server und stellen Sie sicher, dass Docker und Docker Compose installiert sind.
2

Templates-Repository klonen

git clone https://github.com/PlasmaLaboratories/non-validator-templates.git
cd non-validator-templates
3

Ihren Node starten

Ersetzen Sie {network} durch mainnet, testnet oder devnet:
cd {network}/docker-compose
docker compose up -d
4

Container-Status überprüfen

docker compose ps
docker compose logs -f plasma-consensus
5

Monitoring starten (optional)

docker compose -f monitoring.yml up -d

Architekturüberblick

Ihr Non-Validator-Node besteht aus zwei Hauptkomponenten:

Plasma Execution Client

Basiert auf Reth. Behandelt Transaktionsausführung, State-Verwaltung und stellt JSON-RPC-Endpunkte für Anwendungen bereit.

Plasma Observer Client

Ein leichtgewichtiger Client, der das Plasma-Konsensnetzwerk überwacht, ohne an der Blockproduktion oder Validierung teilzunehmen.
Das Docker-Compose-Setup orchestriert diese Komponenten zusammen mit Initialisierungscontainern, die JWT-Geheimnisgenerierung, Schlüsselgenerierung und Datenbank-Setup automatisch übernehmen.

Verzeichnisstruktur

Jedes Netzwerkverzeichnis folgt demselben Layout:
{network}/
├── docker-compose/
│   ├── docker-compose.yml        # Service definitions
│   ├── .env                      # Image versions and tags (source of truth)
│   ├── non-validator.toml        # Consensus configuration
│   ├── enodes.txt                # Execution bootstrap nodes
│   ├── monitoring.yml            # Monitoring stack
│   └── monitoring/               # Prometheus & Grafana configs
└── shared/                       # Validator keys & identities (read-only)
    ├── keys/                     # BLS12-381 validator public keys
    └── identities/               # Validator identity files

Setup-Prozess erklärt

Die Docker-Compose-Datei definiert vier Dienste, die sequenziell ausgeführt werden:
1

OpenSSL-Initialisierung

Generiert das JWT-Geheimnis für sichere Engine-API-Kommunikation und erstellt secp256k1-Schlüssel für die Netzwerkidentität Ihres Nodes. Diese werden nur einmal generiert und bleiben über Neustarts hinweg bestehen.
2

Konsens-Datenbank-Initialisierung

Initialisiert die Konsens-Datenbank mit der Genesis-Konfiguration für Ihr gewähltes Netzwerk und generiert eine Peer-ID für Ihren Node.
3

Ausführungs-Datenbank-Initialisierung

Initialisiert die Reth-Ausführungsdatenbank mit dem Genesis-State.
4

Container-Deployment

Sobald die Initialisierung abgeschlossen ist, starten die Ausführungs- und Konsens-Clients. Execution Client (Reth) startet zuerst und stellt die JSON-RPC-API und Engine-API bereit. Consensus Observer Client startet, nachdem der Execution Client gesund ist, und verbindet sich mit dem Konsensnetzwerk.

Konfiguration

Alle Versionsnummern und Image-Tags sind in der .env-Datei jedes Netzwerks definiert — dies ist die einzige Quelle der Wahrheit für Software-Versionen. Der Konsens-Client wird über non-validator.toml konfiguriert.
AbschnittFelderBeschreibung
(top-level)engine_api_url, consensus_api_host, authrpc_jwtsecretVerbindung zur Ausführungs-Engine
[persistence]data_dirSpeicherpfad für Konsensdaten
[network]p2p_port, interval, timeout, identity_file_path, trusted_only, discovery.enabledP2P-Networking und Peer-Discovery
[api]enabled, host, portKonsens-API-Endpunkt
[validators.*]validator_keystore_pk_file_path, identity_file_pathValidator-Komitee
[network.bootstrap_nodes.*]api_host, p2p_port, peer_idKonsens-Bootstrap-Peers

NAT / Externe Adresse

Für Nodes hinter NAT konfigurieren Sie eine externe Adresse, damit Peers Ihren Node entdecken und sich verbinden können:
[network]
external_address = "node.example.com:34070"

Port-Konfiguration

PortServiceProtokollBeschreibung
8545Execution RPCHTTPJSON-RPC-API-Endpunkt
8551Execution AuthHTTPEngine-API (intern)
30303Execution P2PTCP/UDPPeer-to-Peer-Networking
34070Consensus P2PTCPKonsens-Networking
35070Consensus APIHTTPKonsens-Health/API-Endpunkt
9001MetricsHTTPPrometheus-Metriken
Firewall-Anforderungen: Stellen Sie eingehenden/ausgehenden Verkehr auf Port 30303 (TCP/UDP) für Execution-P2P, eingehenden Verkehr auf Port 34070 (TCP) für Konsens-P2P und interne Kommunikation auf Port 8551 für die Engine-API sicher. Die JSON-RPC-Schnittstelle auf Port 8545 ist standardmäßig exponiert — erwägen Sie, den Zugriff in der Produktion einzuschränken.

Häufige Operationen

cd {network}/docker-compose

docker compose up -d                              # Start
docker compose -f monitoring.yml up -d            # Start monitoring
docker compose logs -f                            # Logs
docker compose down                               # Stop
docker compose -f monitoring.yml down             # Stop monitoring
docker compose down -v && docker compose up -d    # Clean restart

Ihren Node überwachen

Sobald Ihr Node in Betrieb ist, können Sie Gesundheit und Synchronisierungsstatus überwachen. Für umfassende Monitoring-Einrichtung und bewährte Praktiken siehe den Monitoring-Leitfaden.
# Check container status
docker compose ps

# View execution client logs
docker compose logs -f plasma-execution

# View consensus observer client logs
docker compose logs -f plasma-consensus
Ihr Node beginnt sofort mit der Synchronisierung. Die initiale Sync kann je nach Netzwerkbedingungen und Hardware mehrere Minuten dauern.

Datenbank-Snapshots

Plasma veröffentlicht tägliche Datenbank-Snapshots für Mainnet und Testnet. Snapshots ermöglichen es Ihnen, einen neuen Node in Stunden statt in deutlich längerer Zeit ab Genesis hochzufahren. Jeder Snapshot enthält zwei Dateien — die Konsens-Schicht-Datenbank und die Ausführungs-Schicht-Datenbank — hochgeladen in einen Requester-Pays-S3-Bucket. Sie benötigen ein AWS-Konto; es gelten Standard-S3-Datenübertragungsraten.

Snapshot-Voraussetzungen

VoraussetzungDetails
AWS-KontoAnmeldedaten über aws configure oder Umgebungsvariablen konfiguriert
AWS CLIv2 empfohlen (aws --version)
SpeicherplatzMainnet: ~400 GB frei • Testnet: ~100 GB frei
Der Datenausgangstransfer aus us-east-2 kostet ~0,09 $/GB für die ersten 10 TB/Monat. Der Transfer von einer EC2-Instanz in derselben Region ist kostenlos — Ihren Node in us-east-2 zu betreiben, ist die kostengünstigste Option.

Snapshot-Buckets

EigenschaftMainnetTestnet
Bucketplasma-mainnet-db-backupsplasma-testnet-db-backups
Regionus-east-2 (Ohio)us-east-2 (Ohio)
ZugangsmodellRequester-PaysRequester-Pays
Backup-FrequenzTäglichTäglich um 02:00 UTC
AufbewahrungRollend (ältere Backups werden automatisch entfernt)3 Tage
Backups sind in datums-gestempelten Ordnern (MM-DD-YY) organisiert. Jeder Ordner enthält zwei Dateien:
DateiBeschreibung
Konsens-Datenbank (.db auf Mainnet, .mdb auf Testnet)Vollständiger Konsens-Schicht-State
Ausführungs-Datenbank (.tar.gz)Tar-Archiv des Reth-Ausführungs-data/-Verzeichnisses

Snapshot herunterladen

# Set your target network's bucket
BUCKET="plasma-mainnet-db-backups"   # or "plasma-testnet-db-backups"

# List available snapshots
aws s3 ls "s3://${BUCKET}/" \
  --region us-east-2 \
  --request-payer requester

# Download the most recent snapshot
DATE="MM-DD-YY"   # replace with the latest date folder (e.g. 03-23-26)

aws s3 cp \
  "s3://${BUCKET}/${DATE}/" \
  ./backups/ \
  --recursive \
  --region us-east-2 \
  --request-payer requester

Aus Snapshot wiederherstellen

1

Ihren Node stoppen

cd {network}/docker-compose
docker compose down
2

Konsens-Datenbank wiederherstellen

Kopieren Sie den Snapshot in das Konsens-Datenverzeichnis:
# Mainnet (.db)
cp backups/consensus-backup-*.db /path/to/plasma-data-dir/

# Testnet (.mdb)
cp backups/consensus-backup-*.mdb /path/to/plasma-data-dir/
3

Ausführungs-Datenbank wiederherstellen

Extrahieren Sie das Archiv in das Ausführungs-Datenverzeichnis:
tar -xzf backups/execution-backup-*.tar.gz -C /path/to/execution-data-dir/
4

Ihren Node neu starten

docker compose up -d

Snapshot-Fehlerbehebung

ProblemUrsache / Lösung
Access DeniedSie müssen --request-payer requester in jedem Befehl angeben. Der Bucket lehnt Anfragen ohne dies ab.
403 ForbiddenAWS-Anmeldedaten nicht konfiguriert. Führen Sie aws sts get-caller-identity aus, um eine gültige Sitzung zu überprüfen.
Leere Bucket-AuflistungÄltere Backups werden automatisch bereinigt. Erscheint der Bucket leer, läuft möglicherweise gerade ein Backup-Zyklus — versuchen Sie es später erneut.
Falsche DateiendungMainnet verwendet .db; Testnet verwendet .mdb. Stellen Sie sicher, dass Sie die richtige Datei für Ihr Netzwerk kopieren.