Validators

Run a validator on a laptop.

Paraloom validators verify Groth16 proofs and vote on blocks. Verification is roughly ten milliseconds — small enough that a home PC, a server-room leftover, or a single-board computer can carry the role. No GPUs, no specialized silicon, no co-location.

Hardware

What you actually need.

CPU2 cores · x86_64 or arm64Apple Silicon, Raspberry Pi 5, modest server
Memory8 GB minimum, 16 GB recommendedconsensus + nullifier set + RocksDB cache
Disk120 GB SSDfsync-backed; HDD will lag at hot writes
Network100 Mbit symmetriclibp2p gossipsub, modest peak
Operating systemLinux · macOS · Windowsmulti-platform signed releases
Setup

From zero to validating in four shells.

$ install

Pull and verify the signed binary

Multi-platform release binaries are signed with Sigstore and shipped with SHA-256 checksums and a CycloneDX SBOM. Pull the latest release from GitHub, verify, install.

# linux x86_64
curl -L https://github.com/paraloom-labs/paraloom-core/releases/latest/download/paraloom-linux-amd64 \
  -o /usr/local/bin/paraloom
cosign verify-blob /usr/local/bin/paraloom \
  --signature paraloom.sig --certificate paraloom.crt
chmod +x /usr/local/bin/paraloom
$ keygen

Generate the validator keypair

A validator keypair signs heartbeats and consensus votes. Key generation is local and does not touch the network. The pubkey gets registered when you join.

paraloom validator keygen --out ./validator.key
paraloom validator pubkey ./validator.key
$ register

Register on devnet

Devnet registration is free and serves as your reputation grounding. The validator-registry program records your public key and bootstraps your peer entry in the Kademlia DHT.

paraloom validator register \
  --network devnet \
  --key ./validator.key \
  --multiaddr /ip4/<your-ip>/tcp/9001
$ start

Start the node

The validator runs verify-only. Heartbeats every 5 seconds, libp2p ping for liveness, RocksDB-backed nullifier and merkle stores with fsync on hot writes.

paraloom validator start \
  --config ./validator.toml \
  --metrics 0.0.0.0:9300

# in another shell:
paraloom validator status
# role         primary
# height       1 847 392
# proof check  9.8 ms avg
# uptime       99.8%
Reputation & slashing

Skin in the game, recorded in protocol.

Validators earn reputation over time by being available, correct, and non-equivocating. Withdrawal consensus is gated by reputation: higher-reputation nodes carry more weight. Adversarial behaviour is recorded as on-protocol slashing evidence.

Equivocationconflicting signed votestwo votes at same height → slash
Persistent unavailabilityN missed heartbeatswindow-configurable
Reputation weightearned over uptimeno shortcut, no buy-in
Trusted setup

The MPC ceremony runs in the open.

Paraloom’s Groth16 proving keys come from a multi-party computation. Anyone can contribute; each contribution adds randomness and is recorded with a verifiable transcript. Mainnet does not activate until the ceremony completes and the transcript is independently verified.

# contribute to the ceremony
$ paraloom-ceremony-contribute \
    --circuit deposit \
    --in transcript-prev.bin \
    --out my-contribution.bin \
    --entropy "$(head -c 64 /dev/urandom | base64)"
  ✓ contribution recorded
  ✓ transcript appended  (your hash: 7f3a…ae9b)

# verify the full chain
$ paraloom-ceremony-verify --transcript transcript.bin
  ✓ all contributions valid
  ✓ DLEQ checks pass

Devnet is open. Mainnet is gated by the ceremony.

Devnet validators are running today; you can join, sync, and verify the test cohort without permission. Mainnet activation waits on the MPC ceremony completion and external security audit.