Run a Validator Node
A validator node participates in block production and consensus on the Shardeum testnet. It is used to test validator operations, node performance, and network behavior in a live environment.
Validator requirements and staking behavior on testnet may differ from mainnet.
Testnet configurations, chain IDs, staking requirements, and token availability may change. Always refer to the latest repository or official announcements.
1. System Requirements
- Operating System: Ubuntu 22.04 LTS
- CPU: 4 cores (8 threads recommended)
- RAM: 16GB
- Storage: 1TB NVMe SSD
- Network: 100 Mbps dedicated
- Dependencies: git, jq, curl, make, build-essential, pkg-config
- Go: Version 1.25+
Install dependencies:
Install Go:
2. Install Shardeum Node Binary
Clone the Shardeum EVM repository:
Fetch the latest release tags and check out the currently supported testnet release:
Replace <supported-testnet-release> with the release tag currently supported for Shardeum testnet.
Build and install the binary (may take several minutes):
Add the Go bin directory to PATH:
Verify the installation:
3. Set Environment Variables
4. Initialize the Node
Ensure your validator keys and mnemonic are stored securely. Loss of your mnemonic may prevent recovery of the validator account.
5. Copy Genesis File
Verify:
The expected chain ID is:
6. Start and Sync the Node
Monitor node logs:
Verify sync status:
Note: Initial sync may take time depending on hardware and network conditions.
7. Create the Validator Key
Ensure the node is connected to peers and wait until it is fully synced before proceeding.
Or recover:
Retrieve your validator address:
Store your mnemonic phrase securely. It is required for recovery. Also, the operator may be prompted for a keyring passphrase.
8. Fund Your Validator (Testnet)
Your validator account needs testnet SHM to stake and pay transaction fees. Use official testnet faucets or community distribution channels to obtain testnet SHM.
Verify balance:
9. Create Your Validator and Stake Testnet SHM
Get consensus key:
Create validator.json:
Adjust the stake amount based on current testnet requirements and your available testnet SHM balance.
Create validator:
10. Verify Validator Status
Look for:
- Status:
BOND_STATUS_BONDED - Voting power: greater than
0 - Jailed:
false
11. Optional: Run as a systemd Service
Check the installed Shardeum binary path:
Create the service file:
Example content:
The example below assumes the node was installed and initialized as the
rootuser. If you used another system user, replaceUser=rootand/root/.testnet/<validator-id>with the corresponding user and node-home path.
Replace <shardeumd-binary-path> with the path returned by command -v shardeumd and <validator-id> with the validator node ID configured earlier.
If the validator is already running from the manual startup command above, stop that process before starting the systemd service.
Reload systemd, then enable and start the service:
12. Important Notes
- Testnet Chain ID:
shardeum-testnet - EVM Chain ID:
8119 - Network: Shardeum EVM Testnet (subject to resets)
- Testnet SHM has no real-world monetary value.
- Testnet configuration and validator state may be reset or changed between testnet phases.
- Staking, slashing, validator-set parameters, and other network settings may differ from mainnet.
Validator Setup Complete
Your Shardeum testnet validator is now configured and participating in the network when bonded.
You can use the testnet validator environment for:
- Validator operations and testing
- Upgrade and maintenance testing
- Performance monitoring
- Network participation experiments