ParaloomPARALOOM

Validator Guide

How to run a Paraloom validator node

Validator Guide

This guide explains how to set up and run a Paraloom validator node.

Validator Workflow

Overview

Validators are responsible for:

  • Verifying zkSNARK proofs
  • Participating in consensus (7/10 threshold)
  • Executing compute jobs
  • Maintaining network state

Requirements

Hardware

ComponentMinimumRecommended
CPU2 cores4+ cores
RAM4 GB8 GB
Storage10 GB SSD50 GB NVMe
Network50 Mbps100+ 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 --release

2. 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.json

3. 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 = 10

4. 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.json

5. Start Validator

./target/release/paraloom-node \
  --config validator.toml \
  --log-level info

Running 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.target

Enable 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 -f

Monitoring

Built-in Metrics

# Enable metrics endpoint
./target/release/paraloom-node \
  --config validator.toml \
  --metrics-addr 0.0.0.0:9090

Key Metrics

MetricDescription
paraloom_verifications_totalTotal proofs verified
paraloom_consensus_votesConsensus participation
paraloom_compute_jobs_completedCompute jobs executed
paraloom_reputation_scoreCurrent reputation
paraloom_peer_countConnected 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 3001

Access at http://localhost:3001

Features:

  • Real-time node status
  • Earnings tracking
  • Stake management
  • Compute job monitoring

Earnings

Revenue Sources

SourceDescription
Verification feesFees from proof verification
Compute feesFees from executing jobs
Block rewardsNetwork inflation rewards

Claiming Rewards

# Check pending rewards
paraloom-cli rewards --keypair ./validator-wallet.json

# Claim rewards
paraloom-cli claim-rewards --keypair ./validator-wallet.json

Reputation System

How It Works

ActionReputation Change
Correct verification+10
Consensus bonus+5
Incorrect verification-50
Timeout-30
Daily decay-0.1%
Starting score1,000
Maximum10,000
Minimum100

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.json

Firewall 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 9090

Updates

# Check for updates
cd paraloom-core
git fetch origin

# Update
git pull origin main
cargo build --release

# Restart
sudo systemctl restart paraloom-validator

Troubleshooting

On this page