A step by step guide on How to Run Sequencer Node
on Aztec Network Testnet & Earn Apprentice
Role.
- What types of nodes can participate in the testnet?
Sequencer
: proposes blocks, validates blocks from others, and votes on upgrades.Prover
: generates ZK proofs that attest to roll-up integrity.
Find this message about roles in channel: operators| start-here
- Sequencer Node: 8 cores CPU, 16GB RAM, 100GB+ SSD
- Prover Node: Requiring ~40x machines with 16 cores and 128GB RAM
- I do NOT run
Prover
sicne it's for data-center computing systems, not me.
Windows Users: must install Ubuntu on Windows using this guide, then continue further steps.
VPS Users: can get started via a VPS
with 4 cores CPU, 8GB RAM! Purchase here
- Update packages:
sudo apt-get update && sudo apt-get upgrade -y
- Install Packages:
sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
- Install Docker:
sudo apt update -y && sudo apt upgrade -y
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
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
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 update -y && sudo apt upgrade -y
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Test Docker
sudo docker run hello-world
sudo systemctl enable docker
sudo systemctl restart docker
bash -i <(curl -s https://install.aztec.network)
- Restart your Terminal now to apply changes.
- Check if you installed successfully:
aztec
aztec-up alpha-testnet
- Find a 3rd party that supports Sepolia
RPC URL
& SepoliaBEACON URL
APIs. - Most of your usage is
RPC URL
. I recommend to use Alchemy forRPC URL
& Use drpc forBeacon URL
- More details on Free & Paid 3rd party solutions:
RPC URL
: Create a Sepolia Ethereum HTTP API in AlchemyBEACON RPC
: Create an account on drpc and search forSepolia Ethereum Beacon Chain
Endpoints.
For example: Ankr is supporting RPC URL
& Beacon URL
. You can Register, Fund it with a little USDT via your wallet, Create a project, get your normal sepolia rpc and beacon sepolia rpc.
You can run your own Geth & Prysm nodes to get your own
RPC URL
&BEACON RPC
or find any other 3rd party solutions
Get an EVM Wallet with Private Key
and Public Address
saved.
Fund your Ethereum Wallet with ETH Sepolia
curl ipv4.icanhazip.com
- Save it
# Firewall
ufw allow 22
ufw allow ssh
ufw enable
# Sequencer
ufw allow 40400
ufw allow 8080
- Open screen
screen -S aztec
- Run Node
aztec start --node --archiver --sequencer \
--network alpha-testnet \
--l1-rpc-urls RPC_URL \
--l1-consensus-host-urls BEACON_URL \
--sequencer.validatorPrivateKey 0xYourPrivateKey \
--sequencer.coinbase 0xYourAddress \
--p2p.p2pIp IP
--p2p.maxTxPoolSize 1000000000
Replace the following variables before you Run Node:
RPC_URL
&BEACON_URL
: Step 40xYourPrivateKey
: Your EVM wallet private key0xYourAddress
: Your EVM wallet public addressIP
: Your server IP (Step 7)
Screen Commands:
- Minimze screen:
Ctrl
+A
+D
- Return to screen:
screen -r aztec
- Kill screen (when inside):
Ctrl
+`C+ - Kill screen (when outside):
screen -XS aztec quit
After entering the command, your node starts running, It takes a few minutes for your node to get synced
Go to the discord channel :operators| start-here and follow the prompts, You can continue the guide with my commands if you need help.
Step 1: Get the latest proven 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"
- Save this block number for the next steps
- Example output: 20905
Step 2: Generate your sync proof
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"
- Replace 2x
BLOCK_NUMBER
with your number
Step 3: Register with Discord
- Type the following command in this Discord server:
/operator start
- After typing the command, Discord will display option fields that look like this:
address
: Your validator address (Ethereum Address)block-number
: Block number for verification (Block number from Step 1)proof
: Your sync proof (base64 string from Step 2)
Then you'll get your Apprentice
Role
aztec add-l1-validator \
--l1-rpc-urls RPC_URL \
--private-key your-private-key \
--attester your-validator-address \
--proposer-eoa your-validator-address \
--staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
--l1-chain-id 11155111
Replace RPC_URL
, your-validator-address
& 2x your-validator-address
, then proceed
- Note that there's a daily quota of 10 validator registration per day, if you get error, try again tommorrow.
If your Validator Registration was successfull, you can check its stats in Aztec Scan
Error: ERROR: world-state:block_stream Error processing block stream: Error: Obtained L1 to L2 messages failed to be hashed to the block inHash
No strong solution for this yet, but you can do the following things
- Stop node with Ctrl+C.
- Delete node data:
rm -r /root/.aztec/alpha-testnet
- Re-run the node using run command.