Validator Guide
How to run a Paraloom validator node
Validator Guide
This guide explains how to set up and run a Paraloom validator node.
Overview
Validators are responsible for:
- Verifying zkSNARK proofs
- Participating in consensus (7/10 threshold)
- Executing compute jobs
- Maintaining network state
Requirements
Hardware
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8 GB |
| Storage | 10 GB SSD | 50 GB NVMe |
| Network | 50 Mbps | 100+ Mbps |
Software
- Linux (Ubuntu 22.04+ recommended)
- Rust 1.70+
- Solana CLI 1.16+
Setup
1. Install Paraloom
git clone https://github.com/paraloom-labs/paraloom-core.git
cd paraloom-core
cargo build --release2. Generate Node Identity
# Generate node keypair
./target/release/paraloom-node keygen --output ./node-keypair.json
# Display node ID
./target/release/paraloom-node show-id --keypair ./node-keypair.json3. Configure Node
Create validator.toml:
[node]
keypair_path = "./node-keypair.json"
data_dir = "./data"
listen_addr = "/ip4/0.0.0.0/tcp/9000"
[network]
bootstrap_peers = [
"/ip4/bootstrap1.paraloom.network/tcp/9000/p2p/12D3KooW...",
"/ip4/bootstrap2.paraloom.network/tcp/9000/p2p/12D3KooW...",
]
enable_mdns = true
max_connections = 100
[consensus]
stake = 1000000000000 # 1000 SOL in lamports
[compute]
enabled = true
memory_limit = 67108864 # 64MB
max_concurrent_jobs = 4
job_timeout = 30 # seconds (configurable)
[bridge]
enabled = true
solana_rpc = "https://api.devnet.solana.com"
program_id = "DSysqF2oYAuDRLfPajMnRULce2MjC3AtTszCkcDv1jco"
poll_interval = 104. Stake SOL
Minimum stake: 1 SOL (devnet)
# Create Solana wallet for validator
solana-keygen new -o ./validator-wallet.json
# Get devnet SOL
solana airdrop 100 --keypair ./validator-wallet.json
# Stake to become validator (coming soon)
# paraloom-cli stake 1 --keypair ./validator-wallet.json5. Start Validator
./target/release/paraloom-node \
--config validator.toml \
--log-level infoRunning with Systemd
Create Service File
sudo nano /etc/systemd/system/paraloom-validator.service[Unit]
Description=Paraloom Validator Node
After=network.target
[Service]
Type=simple
User=paraloom
WorkingDirectory=/home/paraloom/paraloom-core
ExecStart=/home/paraloom/paraloom-core/target/release/paraloom-node --config validator.toml
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.targetEnable and Start
sudo systemctl daemon-reload
sudo systemctl enable paraloom-validator
sudo systemctl start paraloom-validator
# Check status
sudo systemctl status paraloom-validator
# View logs
journalctl -u paraloom-validator -fMonitoring
Built-in Metrics
# Enable metrics endpoint
./target/release/paraloom-node \
--config validator.toml \
--metrics-addr 0.0.0.0:9090Key Metrics
| Metric | Description |
|---|---|
paraloom_verifications_total | Total proofs verified |
paraloom_consensus_votes | Consensus participation |
paraloom_compute_jobs_completed | Compute jobs executed |
paraloom_reputation_score | Current reputation |
paraloom_peer_count | Connected peers |
Prometheus Configuration
scrape_configs:
- job_name: 'paraloom-validator'
static_configs:
- targets: ['localhost:9090']Validator Dashboard
Run the local validator dashboard:
cd /path/to/paraloom-ui/apps/validators
pnpm install
pnpm dev --port 3001Access at http://localhost:3001
Features:
- Real-time node status
- Earnings tracking
- Stake management
- Compute job monitoring
Earnings
Revenue Sources
| Source | Description |
|---|---|
| Verification fees | Fees from proof verification |
| Compute fees | Fees from executing jobs |
| Block rewards | Network inflation rewards |
Claiming Rewards
# Check pending rewards
paraloom-cli rewards --keypair ./validator-wallet.json
# Claim rewards
paraloom-cli claim-rewards --keypair ./validator-wallet.jsonReputation System
How It Works
| Action | Reputation Change |
|---|---|
| Correct verification | +10 |
| Consensus bonus | +5 |
| Incorrect verification | -50 |
| Timeout | -30 |
| Daily decay | -0.1% |
| Starting score | 1,000 |
| Maximum | 10,000 |
| Minimum | 100 |
Improving Reputation
- Maintain high uptime (>99%)
- Respond quickly to verification requests
- Correctly verify all proofs
- Execute compute jobs successfully
Security
Key Management
# Backup your keys!
cp ./node-keypair.json ./backup/node-keypair.json.backup
cp ./validator-wallet.json ./backup/validator-wallet.json.backup
# Set permissions
chmod 600 ./node-keypair.json
chmod 600 ./validator-wallet.jsonFirewall Configuration
# Allow P2P port
sudo ufw allow 9000/tcp
# Allow metrics (optional, internal only)
sudo ufw allow from 10.0.0.0/8 to any port 9090Updates
# Check for updates
cd paraloom-core
git fetch origin
# Update
git pull origin main
cargo build --release
# Restart
sudo systemctl restart paraloom-validator