Non-Validator Node Setup
Complete guide for setting up and running non-validator nodes with Reth execution client.
Non-validator nodes provide RPC access to the Plasma network by monitoring consensus clients and serving application requests. This guide covers deployment, configuration, and operational maintenance for running a Plasma non-validator node.
Contact required: Please submit your details here before deploying nodes.
Prerequisites
Before setting up a non-validator node, ensure you have:
- Reached out to our team here.
- Basic Linux administration skills.
- Docker and Docker Compose installed.
- A server that meets the minimum hardware requirements.
Quickstart
Spinning up a node is a simple process with this pre-packaged ZIP.
-
Connect to your server and ensure that Docker and Docker Compose are installed.
-
Grab the latest Non-Validator Node package from your signup email. If you can’t find the package, get in touch with Plasma.
-
Unzip the package:
-
Run the setup script as root:
This process should take about 10 minutes to complete.
-
Check that your Docker containers are running:
-
Setup complete.
Setup Process Explained
The setup script automates the deployment of a two-component architecture that enables your node to participate in the Plasma testnet as an non-validator node. While every setup process is slightly different, you can use that script as a template to spin up as many non-validator nodes as you need.
The remainder of this page will focus on the basic steps outlined in the script, and how they might impact your non-validator node.
Architecture Overview
Your non-validator node consists of two main components:
- Plasma Execution Client: Based on Reth, this handles transaction execution, state management, and provides JSON-RPC endpoints for applications.
- Plasma Observer Client: A lightweight client that monitors the Plasma consensus network without participating in block production or validation.
Detailed Setup Steps
Environment Preparation
The script first cleans any existing node data and creates the necessary directory structure:
This ensures a clean installation and creates separate directories for execution and consensus data.
JWT Authentication Setup
A shared JWT secret is generated for secure communication between the consensus observer client and execution client:
This secret enables authenticated communication through the Engine API.
Network Identity Generation
The script creates cryptographic keys for peer-to-peer networking:
These keys establish your node’s unique identity on the Plasma network and enable secure communication with other nodes.
Genesis Configuration
The script retrieves the official Plasma testnet genesis configuration:
This configuration defines the initial network state and consensus parameters required to sync with the testnet.
Database Initialisation
Both the execution and consensus components require database initialisation:
Execution Database:
Consensus Database:
These steps prepare the local databases with the correct genesis state and network parameters.
Container Deployment
The script deploys two Docker containers:
Execution Client (Reth-based):
Consensus Observer Client:
Network Configuration
The setup includes connections to official Plasma testnet infrastructure:
Bootstrap Nodes
Your consensus observer client connects to official Plasma bootstrap nodes:
testnet-cs-0.plasmalabs.tech:34070
testnet-cs-1.plasmalabs.tech:34070
testnet-cs-2.plasmalabs.tech:34070
Trusted Execution Peers
Your execution client connects to trusted Plasma execution nodes:
testnet-ex-0.plasmalabs.tech:30303
testnet-ex-1.plasmalabs.tech:30304
testnet-ex-2.plasmalabs.tech:30304
Port Configuration
The setup exposes specific ports for different services:
Port | Service | Purpose | External Access |
---|---|---|---|
8551 | Engine API | Internal communication between consensus and execution. | No - Internal only. |
34070 | P2P Consensus | Peer-to-peer communication with other consensus nodes. | Yes - Requires inbound access. |
Firewall Considerations
Ensure your firewall configuration allows:
- Outbound connections on ports
30303
,30304
, and34070
for peer discovery and communication. - Inbound connections on port
34070
for optimal peer connectivity (recommended but not required). - Internal communication on port
8551
between Docker containers.
The JSON-RPC interface runs on port 8545
within the Docker network but is not exposed externally by default for security reasons.
Validator Committee Configuration
The non-validator.toml
configuration includes references to BLS public keys for the current validator set. These keys are provided in the /node/keys/
directory and allow your observer client to verify consensus messages from active validators.
The configuration references 10 validator public keys (bls12-381-public-key-0.hex
through bls12-381-public-key-9.hex
), representing the current testnet validator committee.
Monitoring Your Node
Once your node is operational, you can monitor its health and synchronisation status. For comprehensive monitoring setup and best practices, see our monitoring guide.
Quick status checks:
Your node will begin synchronising with the Plasma testnet immediately. Initial sync may take several minutes depending on network conditions and your hardware specifications.