Infrastructure

Network Operations

Run validators, configure Mixnet relays, and participate in the bandwidth market.

Node Types

Full Node

Validates blocks, maintains state, serves RPC queries

64 GB RAM500 GB SSD50 Mbps
  • Sync and verify all blocks
  • Serve light client queries
  • Relay transactions to validators
  • Mixnode

    Relays traffic for network privacy

    16 GB RAM100 GB SSD100 Mbps symmetric
  • Route Sphinx packets
  • Generate cover traffic
  • Earn bandwidth rewards
  • Validator Operations

    Becoming a Validator

    1
    Meet Requirements

    Ensure your hardware meets validator tier specifications (128 GB+ UMA, Apple Silicon recommended).

    2
    Sync Full Node

    Run a full node and wait for complete synchronization.

    3
    Stake Tokens

    Lock the required stake amount in the validator contract.

    4
    Register Keys

    Submit your ML-DSA public key to the validator registry.

    5
    Join Active Set

    Once accepted, your node participates in block production.

    Validator Configuration

    # ~/.po8/config.toml
     
    [validator]
    enabled = true
     
    # ML-DSA signing key
    key_file = "~/.po8/keys/validator.ml-dsa.sec"
     
    # Minimum gas price to include transactions
    min_gas_price = "0.001"
     
    # Block production settings
    [consensus]
    block_time = "60s"
    timeout_propose = "30s"
    timeout_prevote = "10s"
    timeout_precommit = "10s"
     
    # Require Mixnet participation
    [privacy]
    mixnet_required = true

    Slashing Conditions

    Offense Penalty Description
    Double Signing 5% stake Signing conflicting blocks at same height
    Downtime 0.1% per hour Missing block proposals (after grace period)
    Invalid Proof 1% stake Submitting invalid TensorChain proofs
    Mixnet Failure 0.5% stake Failing to relay required bandwidth

    Mixnet Configuration

    Every validator must operate as a Mixnode. This ensures the privacy set scales with network security.

    Stratified Topology

    The Mixnet uses a layered structure to prevent Sybil routing attacks.

    Entry
    Layer 1
    Layer 2
    Exit

    Mixnet Configuration

    [mixnet]
    enabled = true
     
    # Layer assignment (auto-assigned if not set)
    layer = "auto"
     
    # Sphinx packet handling
    [mixnet.sphinx]
    packet_size = 32768  # 32 KB constant size
    max_delay_ms = 100
     
    # Cover traffic generation
    [mixnet.cover]
    enabled = true
    rate_per_second = 10
    loop_probability = 0.1
     
    # Gateway settings (if operating as entry/exit)
    [mixnet.gateway]
    enabled = false
    websocket_port = 9000

    Cover Traffic

    Nodes generate dummy packets following a Poisson distribution to mask real traffic patterns.

    Hiding in the Crowd

    When broadcasting a real transaction, the node replaces a dummy packet with the real data. External observers see constant traffic rate—no burst betrays the action.

    VPN Relay Configuration

    For low-latency traffic, nodes can operate as dVPN relays using AmneziaWG.

    AmneziaWG Setup

    [dvpn]
    enabled = true
     
    # WireGuard interface
    interface = "wg0"
    listen_port = 51820
     
    # AmneziaWG obfuscation
    [dvpn.amnezia]
    enabled = true
    junk_packet_count = 4
    junk_packet_min_size = 40
    junk_packet_max_size = 70
    init_packet_junk_size = 0
    response_packet_junk_size = 0
     
    # Bandwidth limits
    [dvpn.limits]
    max_clients = 100
    bandwidth_limit_mbps = 100

    Censorship Resistance

    AmneziaWG modifies the WireGuard handshake to evade Deep Packet Inspection:

    Junk Packets

    Random padding added to handshake

    Header Obfuscation

    Protocol signatures are masked

    Timing Variance

    Randomized response delays

    Bandwidth Market

    Nodes earn rewards for relaying traffic through Proof of Mixing and Proof of Relay.

    Reward Function

    R = Base + (Performance × Stake) - Cost

    Where Performance is measured by packet loss rate and latency

    Proof of Mixing (PoM)

    Active Set Selection

    Top stakers by reputation selected each epoch

    Sampling

    Monitor nodes send test packets to measure reliability

    Saturation Point

    Rewards cap at 1% of total stake to prevent centralization

    Payment Models

    Orchid Model

    Probabilistic nanopayments for high-volume traffic

    Lottery tickets attached to packetsExpected value = bandwidth costOnly winners settle on-chain
    Sentinel Model

    Deterministic billing for enterprise users

    Bytes tracked per sessionSigned usage proofsEscrow-based settlement

    Node Dashboard

    Health Checks

    # Check node status
    po8-node status
     
    # View peer connections
    po8-node peers list
     
    # Check consensus state
    po8-node consensus state
     
    # Mixnet statistics
    po8-node mixnet stats

    Prometheus Metrics

    po8_consensus_heightCurrent block height
    po8_consensus_validatorsActive validator count
    po8_p2p_peersConnected peer count
    po8_mixnet_packets_relayedSphinx packets processed
    po8_mixnet_cover_traffic_rateCover packets per second
    po8_dvpn_active_clientsConnected VPN clients
    po8_dvpn_bandwidth_mbpsCurrent bandwidth usage

    Join the Network

    Set up your node and start participating in Po8 consensus.