Rivellum

Rivellum Portal

Download Wallet (Chrome)
Checking...
mainnet

PoUW Prover Setup

Overview

PoUW (Proof-of-Useful-Work) provers generate zero-knowledge proofs for Rivellum batches. Provers run the rivellum-pouwd daemon, which claims jobs from the PoUW job queue and submits completed proofs for rewards.

Prerequisites

Hardware Requirements

ComponentMinimumRecommended
CPU8 cores16+ cores (AVX2 support recommended)
RAM32 GB64+ GB
Storage100 GB SSD500 GB NVMe
Network100 Mbps1 Gbps

ZK proof generation is CPU-intensive. More cores and faster clock speeds directly improve proof throughput.

Software Requirements

  • Rust 1.78+ (for building from source)
  • Linux (Ubuntu 22.04+ recommended)
  • Network access to a Rivellum node

Installation

Build from Source

git clone https://github.com/rivellumlabs/rivellum.git
cd rivellum
cargo build --release --bin rivellum-pouwd

The binary will be at ./target/release/rivellum-pouwd.

Configuration

The prover daemon connects to a Rivellum node to claim and submit jobs:

rivellum-pouwd \
    --node-url https://rpc.rivellum.network \
    --concurrency 4 \
    --poll-interval-ms 1000

Options

FlagDescriptionDefault
--node-urlURL of the Rivellum node RPCRequired
--concurrencyMaximum concurrent proof jobs1
--poll-interval-msPolling interval for new jobs5000

How It Works

Worker Loop

  1. Daemon polls GET /v1/pouw/jobs/pending for available jobs
  2. Claims a job via POST /v1/pouw/jobs/claim
  3. Downloads the execution trace via the trace_ref
  4. Validates the trace hash locally (BLAKE3)
  5. Generates the ZK proof using the configured backend
  6. Submits the proof via POST /v1/pouw/jobs/:id/submit
  7. Renews the lease periodically if proof generation takes longer than expected
  8. On failure, reports via POST /v1/pouw/jobs/:id/fail

Graceful Shutdown

The daemon uses a CancellationToken for clean shutdown. Send SIGTERM or SIGINT:

# Graceful shutdown
kill -TERM $(pidof rivellum-pouwd)

In-progress proofs will complete before the daemon exits.

Monitoring

Prover Metrics

# Check PoUW system status
curl https://rpc.rivellum.network/v1/pouw/system/status

# View your prover statistics
curl https://rpc.rivellum.network/v1/pouw/provers

# Check Prometheus metrics
curl https://rpc.rivellum.network/v1/pouw/metrics

Dead-Letter Queue

Failed jobs (after max_retries attempts) go to the dead-letter queue:

curl https://rpc.rivellum.network/v1/pouw/dead-letter

Troubleshooting

SymptomCauseFix
No jobs availableNetwork idle or all jobs claimedWait; check /v1/pouw/jobs/pending
Lease expiredProof generation too slowIncrease concurrency; upgrade hardware
Proof rejectedTrace mismatch or invalid proofCheck trace hash; ensure compatible ZK backend
Connection refusedNode unreachableVerify --node-url; check node is running

For economic details on prover rewards, see PoUW Economics. For the technical specification, see PoUW Specification.