Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ blox-ssv-config.yaml.bak
.motd
post-ethd-update.sh
pre-ethd-update.sh

# Aztec Sequencer Keys
/aztec/keys/keystore.json
45 changes: 45 additions & 0 deletions aztec-sequencer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
x-logging: &logging
logging:
driver: json-file
options:
max-size: 100m
max-file: "3"
tag: '{{.ImageName}}|{{.Name}}|{{.ImageFullID}}|{{.FullID}}'

services:
aztec-sequencer:
restart: "unless-stopped"
image: "aztecprotocol/aztec:${AZTEC_DOCKER_TAG:-latest}"
environment:
- KEY_STORE_DIRECTORY=/var/lib/keystore
- DATA_DIRECTORY=/var/lib/data
- LOG_LEVEL=${LOG_LEVEL:-info}
- ETHEREUM_HOSTS=http://execution:${EL_RPC_PORT:-8545}
- L1_CONSENSUS_HOST_URLS=http://consensus:${CL_REST_PORT:-5052}
- P2P_IP=${AZTEC_P2P_IP:-0.0.0.0}
- P2P_PORT=${AZTEC_P2P_PORT:-40400}
- AZTEC_PORT=${AZTEC_PORT:-8080}
- AZTEC_ADMIN_PORT=${AZTEC_ADMIN_PORT:-8880}
ports:
- "${AZTEC_PORT:-8080}:${AZTEC_PORT:-8080}"
- "${AZTEC_P2P_PORT:-40400}:${AZTEC_P2P_PORT:-40400}"
- "${AZTEC_P2P_PORT:-40400}:${AZTEC_P2P_PORT:-40400}/udp"
volumes:
- aztec-data:/var/lib/data
- ./aztec/keys:/var/lib/keystore:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- web3signer
- execution
- consensus
<<: *logging
labels:
- metrics.scrape=true
- metrics.path=/metrics
- metrics.port=8080
- metrics.instance=aztec-sequencer
- metrics.network=${NETWORK}
- logs.collect=true

volumes:
aztec-data:
Empty file added aztec/keys/.gitkeep
Empty file.
15 changes: 15 additions & 0 deletions aztec/keystore.sample.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"remoteSigner": "http://web3signer:9000",
"validators": [
{
"attester": {
"eth": "0x0000000000000000000000000000000000000000",
"bls": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
"publisher": ["0x0000000000000000000000000000000000000000"],
"feeRecipient": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000"
}
]
}
10 changes: 10 additions & 0 deletions default.env
Original file line number Diff line number Diff line change
Expand Up @@ -570,3 +570,13 @@ DOCKER_SOCK=/var/run/docker.sock

# Used by ethd update - please do not adjust
ENV_VERSION=58

# ==========================================
# Aztec Sequencer Configuration
# ==========================================
AZTEC_DOCKER_TAG=latest
AZTEC_PORT=8080
AZTEC_ADMIN_PORT=8880
AZTEC_P2P_PORT=40400
# Set to your public IP for P2P discovery, or leave 0.0.0.0 for local testing
AZTEC_P2P_IP=0.0.0.0
39 changes: 39 additions & 0 deletions docs/aztec-sequencer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Aztec Sequencer Integration

This guide covers enabling and configuring the Aztec Sequencer within the `eth-docker` stack.

## Prerequisites
1. An active `eth-docker` stack with `execution`, `consensus`, and `web3signer` running.
2. At least **200,000 AZTEC tokens** staked for the sequencer identity.
3. **≥ 0.1 ETH** funded in the publisher account(s) for L1 gas.

## 1. Enable the Services
Add `web3signer.yml` and `aztec-sequencer.yml` to your `.env` file:
```env
COMPOSE_FILE=...existing files...,web3signer.yml,aztec-sequencer.yml
```

## 2. Configure Keys
1. Copy the sample keystore: `cp aztec/keystore.sample.json aztec/keys/keystore.json`
2. Edit `aztec/keys/keystore.json`:
- Replace `"eth"` and `"publisher"` 42-character addresses with those managed by your Web3Signer instance.
- Replace the `"bls"` 66-character value with your actual BLS private key.
3. Ensure the file is readable by the Docker user (UID 10000 by default for Aztec, but mounted read-only so standard permissions apply).

## 3. Update Environment Variables
In your `.env` file, set:
```env
AZTEC_P2P_IP=<YOUR_PUBLIC_IP> # Required for P2P discovery
LOG_LEVEL=info
```

## 4. Deploy and Verify
```bash
./ethd up
```
Verify the container is healthy and metrics are being scraped:
```bash
./ethd ps aztec-sequencer
curl http://localhost:8080/metrics # Should return Prometheus metrics
```
Metrics and logs will automatically be collected by Grafana Alloy (if enabled via `grafana.yml` or `grafana-cloud.yml`) and forwarded to your configured Grafana Cloud or local stack.