Skip to content

emirsensuu/aztec-prover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Aztec-Network Prover Node Guide


✨ Overview

This repository contains a step-by-step guide to deploy and operate an Aztec Prover Node on the public alpha-testnet.
A Prover continuously generates ZK proofs that attest to roll-up integrity — a core security pillar of the Aztec protocol.

Heads-up 💡
• This guide is intended for hobbyists and testnet enthusiasts. It is not an airdrop or rewards tutorial.
• Run the Prover and Sequencer with separate wallets and servers to avoid nonce issues and port conflicts.


🖥 Minimum Hardware

Resource Recommended Notes
RAM 128 GB + Proof generation is memory intensive
CPU 32 cores + More cores → faster proving
Disk 1 TB NVMe SSD + High I/O throughput is essential

Running below these specs will likely trigger Error: Epoch proving failed: Proving cancelled because the machine cannot finish proofs before the epoch deadline.


💸 Helpful Services

Purpose Provider Plan Indicative Cost*
Bare-metal server Hetzner AX102 €116/mo (+€44 setup)
Ethereum RPC Chainstack Growth $49/mo

* Costs are approximate and subject to change.


🚀 Quick Start

1 System packages

sudo apt update && sudo apt upgrade -y

# Essentials
sudo apt install -y curl build-essential wget lz4 automake autoconf \
  tmux htop pkg-config libssl-dev tar unzip

2 Docker CE

Remove any old Docker versions and install the official repository:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do 
  sudo apt-get remove -y "$pkg" || true
done

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo systemctl enable docker --now

3 Aztec CLI

bash -i <(curl -s https://install.aztec.network)

echo 'export PATH="$HOME/.aztec/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

aztec -V   # should print version

4 Firewall (UFW)

sudo ufw allow ssh
sudo ufw allow 8080
sudo ufw allow 40400
sudo ufw allow 40400/udp
sudo ufw --force enable

5 Directory layout

mkdir ~/prover && cd ~/prover

Create .env:

P2P_IP=<YOUR_PUBLIC_SERVER_IP>
ETHEREUM_HOSTS=<EXECUTION_RPC_ENDPOINT>
L1_CONSENSUS_HOST_URLS=<CONSENSUS_RPC_ENDPOINT>
PROVER_PUBLISHER_PRIVATE_KEY=0x<PRIVATE_KEY>
PROVER_ID=0x<YOUR_WALLET_ADDRESS>

6 docker-compose.yml

name: aztec-prover
services:
  prover-node:
    image: aztecprotocol/aztec:latest
    command:
      - node
      - --no-warnings
      - /usr/src/yarn-project/aztec/dest/bin/index.js
      - start
      - --prover-node
      - --archiver
      - --network
      - alpha-testnet
    depends_on:
      broker:
        condition: service_started
    environment:
      P2P_ENABLED: "true"
      DATA_DIRECTORY: /data-prover
      P2P_IP: ${P2P_IP}
      DATA_STORE_MAP_SIZE_KB: "134217728"
      ETHEREUM_HOSTS: ${ETHEREUM_HOSTS}
      L1_CONSENSUS_HOST_URLS: ${L1_CONSENSUS_HOST_URLS}
      LOG_LEVEL: info
      PROVER_BROKER_HOST: http://broker:8080
      PROVER_PUBLISHER_PRIVATE_KEY: ${PROVER_PUBLISHER_PRIVATE_KEY}
    ports:
      - "8080:8080"
      - "40400:40400"
      - "40400:40400/udp"
    volumes:
      - ./data-prover:/data-prover
    entrypoint: >
      sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js \
        start --network alpha-testnet --archiver --prover-node'

  agent:
    image: aztecprotocol/aztec:latest
    command:
      - node
      - --no-warnings
      - /usr/src/yarn-project/aztec/dest/bin/index.js
      - start
      - --prover-agent
      - --network
      - alpha-testnet
    entrypoint: >
      sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js \
        start --network alpha-testnet --prover-agent'
    environment:
      PROVER_AGENT_COUNT: "3"
      PROVER_AGENT_POLL_INTERVAL_MS: "10000"
      PROVER_BROKER_HOST: http://broker:8080
      PROVER_ID: ${PROVER_ID}
    restart: unless-stopped
    volumes:
      - ./data-prover:/data-prover

  broker:
    image: aztecprotocol/aztec:latest
    command:
      - node
      - --no-warnings
      - /usr/src/yarn-project/aztec/dest/bin/index.js
      - start
      - --prover-broker
      - --network
      - alpha-testnet
    environment:
      DATA_DIRECTORY: /data-broker
      LOG_LEVEL: info
      ETHEREUM_HOSTS: ${ETHEREUM_HOSTS}
      P2P_IP: ${P2P_IP}
    volumes:
      - ./data-broker:/data-broker
    entrypoint: >
      sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js \
        start --network alpha-testnet --prover-broker'

7 Start the stack

docker compose up -d

Check containers:

docker ps

8 Logs & Monitoring

# Follow general prover logs
docker logs -f aztec-prover-prover-node-1

# Filter for proven epochs
docker logs -f aztec-prover-prover-node-1 2>&1 | grep --line-buffered -E 'epoch proved|epoch'

# Filter for submitted proofs
docker logs -f aztec-prover-prover-node-1 2>&1 | grep --line-buffered -E 'Submitted'

You can also verify activity by pasting your PROVER_ID on Sepolia Etherscan.


🛠 Maintenance

Task Command
Restart docker compose restart
Tear down docker compose down -v

🤝 Contributing

Pull requests are welcome! Feel free to open an issue for suggestions, questions, or improvements.


📜 License

This guide is released under the terms of the MIT License. See LICENSE for details.

About

prover node guide for Aztec Network

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published