Node Setup
Running a validator means operating a full node that participates in consensus, validates transactions, and stores model weights. This guide covers everything from provisioning hardware to verifying your node is synced.
Hardware Requirements
Section titled “Hardware Requirements”Validators handle consensus, data validation, and model weight storage. Underprovisioned machines will fall behind on sync and miss proposals.
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 8 cores | 16+ cores |
| RAM | 32 GB | 64 GB |
| Storage | 500 GB NVMe SSD | 1 TB NVMe SSD |
| Network | 1 Gbps | 10 Gbps |
Software Requirements
Section titled “Software Requirements”- OS: Linux (Ubuntu 22.04+ recommended)
- SOMA binary: installed via
sup
If you haven’t installed SOMA yet, follow the installation guide.
Configuration
Section titled “Configuration”The client configuration at ~/.soma/soma_config/client.yaml handles network settings. If you followed the configure client guide, this file already exists.
Key Configuration Parameters
Section titled “Key Configuration Parameters”| Parameter | Description | Default |
|---|---|---|
rpc-url | RPC endpoint for the network | testnet URL |
environment | Network to connect to | testnet |
soma client switch --env testnetTestnet is the default environment.
Network Ports
Section titled “Network Ports”Ensure the following ports are open and accessible:
| Port | Protocol | Purpose |
|---|---|---|
| 8080 | TCP | JSON-RPC |
| 8084 | TCP | Consensus (Mysticeti) |
| 8085 | TCP | Primary worker |
Start the Node
Section titled “Start the Node”-
Start the validator process:
Terminal window soma start validator -
Verify the node is running by checking the logs for sync progress:
Terminal window soma statusLook for increasing block height — this means your node is syncing with the network.
-
Wait for the node to fully sync before proceeding to join the network. A partially synced validator will miss proposals and may be penalized.
Troubleshooting
Section titled “Troubleshooting”Common startup issues
Port conflicts — If the node fails to bind, another process is using one of the required ports. Check with lsof -i :8080 (or the relevant port) and either stop the conflicting process or reconfigure.
Insufficient disk space — NVMe storage fills up over time as the network grows. Monitor usage with df -h and plan for expansion. Running out of disk mid-sync will corrupt state.
Sync stalls — If block height stops advancing, check your network connection and firewall rules. Ensure ports 8084 (UDP) and 8085 (TCP) are reachable from the public internet. Restarting the node usually resolves transient stalls.
Memory errors — If the process is killed by the OOM killer, your machine doesn’t have enough RAM. Check dmesg | tail for OOM messages. Upgrade to at least 32 GB.