Aztec Sequencer

Hardware Requirements

Component
ETH Sepolia
Aztec Sequencer
Total

CPU

8 cores

4 cores

12 cores

RAM

16GB

16GB

32GB

Disk

1TB

1TB

2TB

Networking

-

-

25Mbps up/down

Procure & assemble your hardware (open in new tab).

Procuring your hardware

Install dependencies

General updates, curl, git, docker.

sudo apt update -y && sudo apt upgrade -y
sudo apt install git curl -y
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Add your current user to the docker group, then restart your device to apply the change.

sudo usermod -aG docker $USER
sudo reboot 0

Prepare ETH Sepolia Node

Download a copy of Eth Docker and name it sepolia-eth-docker to avoid conflicting with any existing mainnet versions.

cd ~ && git clone https://github.com/eth-educators/eth-docker.git sepolia-eth-docker && cd sepolia-eth-docker

Install Eth Docker if you have not done so previously.

cd ~/sepolia-eth-docker
./ethd install

Call this shortcut sepethd and enable running it from anywhere in your terminal.

echo 'alias sepethd="~/sepolia-eth-docker/ethd"' >> ~/.bash_profile && source ~/.bash_profile

Configure Eth Docker.

sepethd config

Main options:

  • Sepolia Testnet

  • Ethereum RPC node

Other options:
  • Any consensus & execution client combination

  • Do you want to expire pre-merge history?: No

  • Checkpoint sync provider: Leave as default

  • Use MEV Boost: No

  • Use Grafana dashboards: Yes

  • Fallback fee recipient address: Use your own wallet address here

Expose RPC and REST endpoints of your Execution and Consensus clients.

nano ~/sepolia-eth-docker/.env
  • Append :el-shared.yml:cl-shared.yml in the COMPOSE_FILE line.

CTRL+O, ENTER, CTRL+X to save and exit.

Start Eth Docker.

sepethd up
Monitor logs

Execution client. CTRL+C to exit monitoring view.

sepethd logs execution -f -tail 20

Consensus client. CTRL+C to exit monitoring view.

sepethd logs consensus -f -tail 20

Install Aztec Sequencer service

Download installer script.

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

Enable running aztec from anywhere in your terminal.

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

Install the latest testnet version of aztec.

aztec-up -v 1.1.2

Prepare your Aztec sequencer paramaters

Open up a notepad file to paste the following information.

1) Get the public IP address of your device

curl api.ipify.org

2) Wallet #1 public address to receive block rewards: Copy from your wallet interface.

3) Wallet #2 public address to register as an Aztec validator: Copy from your wallet interface.

4) Wallet #2 private key to use with Aztec validator: On Metamask, select a hot wallet address >> click on the "three lines" menu >> Account details >> Details >> Show private key

Get Sepolia Testnet ETH

Get at least 0.01 Sepolia ETH sent to Wallet #2 from the following faucets.

1) Google Faucet: https://cloud.google.com/application/web3/faucet/ethereum/sepolia

2) PK910 POW Faucet: https://sepolia-faucet.pk910.de/

Set the environment variables

Create a new aztec folder and an environment variables file.

cd
mkdir aztec
cd aztec
nano .env

Copy and paste the following content in the file, then edit the variables tagged with Edit:

# Execution & Consensus client endpoints
ETHEREUM_HOSTS="http://localhost:8545" 
L1_CONSENSUS_HOST_URLS="http://localhost:5052"

# Edit: Private key of validator account (must include 0x prefix)
VALIDATOR_PRIVATE_KEY="0xHOT_WALLET_PRIVATE_KEY"

# Edit: Public key of validator account
VALIDATOR_PUBLIC_KEY="WALLET_PUBLIC_KEY"

# Edit: Address to receive block rewards
COINBASE="ANOTHER_WALLET_PUBLIC_KEY"

# Edit: Public IP address (find with: curl api.ipify.org)
P2P_IP=xx.xx.xx.xx

# Aztec constants
STAKING_ASSET_HANDLER="0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2"
L1_CHAIN_ID="11155111"

CTRL+O, ENTER, CTRL+X to save and exit.

Wait for ETH Sepolia Execution Client to fully sync

Takes ~6 hours to sync. Check with this command.

curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545
Outputs

Synced:

{"jsonrpc":"2.0","result":false,"id":1}

Still syncing:

{"jsonrpc":"2.0","result":{"startingBlock":"0x0","currentBlock":"0x868853","highestBlock":"0x868853"},"id":1}

Start Aztec Sequencer

Open port 5052, 8545, 40400 on your device.

sudo ufw allow 5052
sudo ufw allow 8545
sudo ufw allow 40400

Create docker compose file.

nano ~/aztec/docker-compose.yml

Paste the following contents.

name: aztec-node
services:
  node:
    network_mode: host # Optional, run with host networking
    image: aztecprotocol/aztec:1.1.2
    environment:
      ETHEREUM_HOSTS: $ETHEREUM_HOSTS
      L1_CONSENSUS_HOST_URLS: $L1_CONSENSUS_HOST_URLS
      DATA_DIRECTORY: /data
      VALIDATOR_PRIVATE_KEY: $VALIDATOR_PRIVATE_KEY
      COINBASE: $COINBASE
      P2P_IP: $P2P_IP
      LOG_LEVEL: info
    entrypoint: >
      sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js start --network alpha-testnet start --node --archiver --sequencer'
    ports:
      - 40400:40400/tcp
      - 40400:40400/udp
      - 8080:8080

    volumes:
      - /home/my-node/node:/data # Local directory

CTRL+O, ENTER, CTRL+X to save and exit.

Start command.

cd ~/aztec
source .env
docker compose up -d

Monitor for errors. CTRL+C to exit monitoring view.

docker logs aztec-node-node-1 -f --tail 20

Register your Aztec validator

Complete ZK-KYC

  • Download zkPassport on mobile and register your zkID

  • Go to https://testnet.aztec.network/add-validator and input your Passport's issuing country, issue date, and expiry date

  • Connect the wallet you used as your Aztec validator earlier (Wallet #2)

  • Verify proof of humanity by scanning the QR code with the zkPassport app mobile app

  • Register your validator and sign the transaction

  • Input your discord handle to claim the Explorer role.

  • Hit Submit. View your FIFO validator queue by searching for your address: https://dashtec.xyz/

Port Forwarding

Forward port 40400 on your home/office router to your node. Refer to the page below for Port Forwarding steps.

Advanced networking

Last updated