🔮 Aztec Sequencer Node Installation
📋 System Requirements
- CPU: 4 cores (8+ cores recommended)
- RAM: 6GB (16GB recommended)
- Storage: 25GB+ SSD (100GB+ recommended)
- Network: Stable internet connection
- OS: Ubuntu 20.04+ (or any Linux with Docker)
🔮 What is Aztec Network?
Aztec Network is building the first privacy-first ZK-rollup on Ethereum, enabling developers to build decentralized applications with built-in privacy and scale. The Aztec sequencer node helps order transactions, produce blocks, and maintain the network's decentralized operations.
- EVM wallet with private key (MetaMask, etc.)
- Sepolia ETH for gas fees (Get from faucet)
- Ethereum Sepolia RPC URL (Alchemy or Infura)
- Ethereum Beacon RPC URL (free: rpc.drpc.org/eth/sepolia/beacon)
🛠️ Step 1: Prepare Your VPS
Update System & Install Dependencies
# Update system packages
sudo apt update && sudo apt upgrade -y
# Install essential tools
sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli pkg-config libssl-dev tar clang bsdmainutils ncdu unzip ufw screen -y
Install Docker & Docker Compose
# Remove old Docker versions (if any)
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt-get remove $pkg 2>/dev/null
done
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install 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
# Add Docker repository
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
# Install Docker
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Test Docker installation
sudo docker run hello-world
# Enable Docker service
sudo systemctl enable docker
sudo systemctl restart docker
# Add user to docker group (optional, for non-sudo usage)
sudo usermod -aG docker $USER
⚠️ Note: You may need to log out and back in for the group changes to take effect.
🔥 Step 2: Configure Firewall
# Configure UFW firewall
sudo ufw allow ssh
sudo ufw allow 40400/tcp
sudo ufw allow 40400/udp
sudo ufw allow 8080/tcp
sudo ufw enable
# Check firewall status
sudo ufw status
⚙️ Step 3: Install Aztec CLI
# Install Node.js 20 (required for Aztec CLI)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt update && sudo apt install -y nodejs
# Install Aztec CLI globally
sudo npm install -g @aztec/cli@latest
# Verify installation
aztec --version
🚀 Step 4: Quick Start Method
Method A: Direct CLI Command
# Replace with your actual values
export ETH_RPC_URL="https://eth-sepolia.g.alchemy.com/v2/YOUR_API_KEY"
export BEACON_RPC_URL="https://rpc.drpc.org/eth/sepolia/beacon"
export VALIDATOR_PRIVATE_KEY="0xYOUR_PRIVATE_KEY"
export COINBASE_ADDRESS="YOUR_ETH_ADDRESS"
export P2P_IP=$(curl -s ifconfig.me)
# Start the sequencer node
aztec start --node --archiver --sequencer \
--network alpha-testnet \
--l1-rpc-urls $ETH_RPC_URL \
--l1-consensus-host-urls $BEACON_RPC_URL \
--sequencer.validatorPrivateKey $VALIDATOR_PRIVATE_KEY \
--sequencer.coinbase $COINBASE_ADDRESS \
--p2p.p2pIp $P2P_IP \
--p2p.maxTxPoolSize 1000000000
🐳 Step 5: Docker Compose Method (Recommended)
Create Environment File
# Create a working directory
mkdir -p ~/aztec-node && cd ~/aztec-node
# Create environment file
nano .env
Add the following content to .env
:
# Ethereum RPC Configuration
ETHEREUM_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/YOUR_API_KEY
CONSENSUS_BEACON_URL=https://rpc.drpc.org/eth/sepolia/beacon
# Validator Configuration
VALIDATOR_PRIVATE_KEY=0xYOUR_PRIVATE_KEY
COINBASE=YOUR_ETH_ADDRESS
# Network Configuration
P2P_IP=YOUR_VPS_IP_ADDRESS
🔧 Replace the following:
YOUR_API_KEY
: Your Alchemy API keyYOUR_PRIVATE_KEY
: Your EVM wallet private key (add0x
prefix)YOUR_ETH_ADDRESS
: Your EVM wallet addressYOUR_VPS_IP_ADDRESS
: Your VPS public IP (get withcurl ifconfig.me
)
Create Docker Compose File
nano docker-compose.yml
Add this configuration:
version: '3.8'
services:
aztec-node:
container_name: aztec-sequencer
image: aztecprotocol/aztec:alpha-testnet
restart: unless-stopped
network_mode: host
environment:
ETHEREUM_HOSTS: ${ETHEREUM_RPC_URL}
L1_CONSENSUS_HOST_URLS: ${CONSENSUS_BEACON_URL}
DATA_DIRECTORY: /data
VALIDATOR_PRIVATE_KEY: ${VALIDATOR_PRIVATE_KEY}
COINBASE: ${COINBASE}
P2P_IP: ${P2P_IP}
LOG_LEVEL: debug
entrypoint: >
sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js start
--network alpha-testnet
--node
--archiver
--sequencer'
ports:
- "40400:40400/tcp"
- "40400:40400/udp"
- "8080:8080"
volumes:
- ./data:/data
Start the Node
# Start the sequencer in detached mode
docker compose up -d
# Check if container is running
docker ps
# View logs
docker compose logs -f aztec-node
📊 Step 6: Monitor Your Node
Check Node Status
# Check current synced block
curl -s -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL2Tips","params":[],"id":67}' \
http://localhost:8080 | jq -r ".result.proven.number"
# Check node logs
docker logs -f aztec-sequencer
# Get your node's Peer ID
docker logs aztec-sequencer 2>&1 | grep -i "peerId" | grep -o '"peerId":"[^"]*"' | cut -d'"' -f4 | head -n 1
Verify Network Connection
# Check if ports are listening
sudo netstat -tulnp | grep -E "(40400|8080)"
# Test external connectivity
nc -zv $(curl -s ifconfig.me) 40400
🎯 Step 7: Get Discord Role & Become a Validator
Get Apprentice Role
-
Wait for node sync - Your node needs to be fully synced (check block number matches AztecScan)
-
Get block number and proof:
# Get latest block number
curl -s -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL2Tips","params":[],"id":67}' \
http://localhost:8080 | jq -r ".result.proven.number"
# Get proof (replace BLOCK_NUMBER with the number from above)
curl -s -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getArchiveSiblingPath","params":["BLOCK_NUMBER","BLOCK_NUMBER"],"id":67}' \
http://localhost:8080 | jq -r ".result"
-
Join Aztec Discord and go to
#operators-start-here
channel -
Use the bot command:
/operator start
- Enter your EVM address
- Enter the block number
- Enter the proof (long base64 string)
- You should receive the "Apprentice" role!
Register as L1 Validator (Optional)
# Register your sequencer as L1 validator
aztec add-l1-validator \
--l1-rpc-urls $ETHEREUM_RPC_URL \
--private-key $VALIDATOR_PRIVATE_KEY \
--attester $COINBASE \
--proposer-eoa $COINBASE \
--staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
--l1-chain-id 11155111
🔧 Troubleshooting
Common Issues
❌ "ERROR: world-state:block_stream Error processing block stream"
# Stop node, delete data, and restart
docker compose down
sudo rm -rf ./data
docker compose up -d
❌ "Most VPS will return 132 error"
- Consider using bare metal servers for better performance
- Alternatively, try VPS providers with better CPU performance
❌ Port binding issues
# Check what's using the ports
sudo lsof -i :40400
sudo lsof -i :8080
# Stop conflicting services if needed
❌ RPC connection issues
- Verify your Alchemy/Infura API key is correct
- Test RPC URLs manually:
curl -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
$ETHEREUM_RPC_URL
View Detailed Logs
# Container logs
docker logs aztec-sequencer --tail 100 -f
# System logs
sudo journalctl -f
🎉 Next Steps
- Monitor your node - Keep it synced and running 24/7
- Check Aztec Explorer - Your node should appear here after a few days
- Upgrade to Guardian role - Use
/checkip
command in#upgrade-role
Discord channel - Join the community - Participate in Aztec Discord discussions
⚠️ Important Notes
- No official rewards confirmed - This is for learning and contributing to the network
- Keep your private key secure - Never share it publicly
- Maintain good uptime - Inconsistent nodes may be removed from the network
- Alpha Testnet - Expect bugs and network resets
🎊 Congratulations! You're now running an Aztec Sequencer Node and contributing to the first fully decentralized privacy-focused L2! 🚀
Useful Links: