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:JWT Authentication Setup
A shared JWT secret is generated for secure communication between the consensus observer client and execution client:Network Identity Generation
The script creates cryptographic keys for peer-to-peer networking:Genesis Configuration
The script retrieves the official Plasma testnet genesis configuration:Database Initialisation
Both the execution and consensus components require database initialisation: Execution Database:Container Deployment
The script deploys two Docker containers: Execution Client (Reth-based):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. | Internal only. |
34303 (TCP) | P2P Consensus | Peer-to-peer communication with other consensus nodes. | Requires inbound and outbound access. |
34304 (UDP) | P2P Consensus | Peer-to-peer communication with other consensus nodes. | Requires inbound and outbound access. |
34070 (TCP) | P2P Consensus | Peer-to-peer communication with other consensus nodes. | Requires inbound access. |
35070 (TCP) | Metrics | Checking health of node clients. | Requires inbound access. |
Firewall Considerations
Ensure your firewall configuration allows:- Inbound and Outbound connections on ports
30303(TCP)
and30304(UDP)
for peer discovery and communication. - Inbound connections on port
34070(TCP)
for optimal peer connectivity (recommended but not required). - Internal communication on port
8551
between Docker containers. - Metrics on port
35070(TCP)
for checking health of the nodes. - 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
Thenon-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.