Aztec Testnet | Node
https://x.com/VOleksCrpt
https://x.com/VOleksCrpt
https://x.com/VOleksCrpt
Buying a Server
I chose VDSina hosting β been using it for a while:
π https://www.vdsina.com/?partner=8evi8an5i1
Server Specifications:
Standard server / Pure OS Ubuntu 20.04 / Max Tariff
The cost is about $19β20/month. You can try the $0.33/day tariff, but I can't guarantee everything will run correctly.
Create the server, and while it's initializing, let's move to the next step.
Putty
For convenient server access, install Putty:
π https://putty.org.ru/download
Connecting to Server
Return to the VDSina panel:
π https://cp.vdsina.com/vds/list
Copy your server's IP address and paste it into Putty.
Click Open, then Accept if a window pops up.
In the VDSina panel, go to Access for your server and copy the password.
- At login, type:
root
- Then paste the password with right-click and press Enter (the password wonβt be displayed)
If successful, youβll see a prompt like this:
Working with Putty / Node Installation
Paste and run each command one by one:
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 -y # Test Docker sudo docker run hello-world sudo systemctl enable docker sudo systemctl restart docker
If you see the Docker hello-world message, everything is working.
Aztec Installation
bash -i <(curl -s https://install.aztec.network)
When prompted β type y
and press Enter
echo 'export PATH="$HOME/.aztec/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
aztec
You should see Aztec CLI details.
Start the Aztec Testnet
aztec-up alpha-testnet
Configure Custom RPCs
Register at:
π https://www.ankr.com/rpc/?utm_referral=Dfj8Petg4Z
Top up your balance by $5β10.
Create a project in https://www.ankr.com/rpc/projects/ β choose Ethereum only.
Wallet Setup
Create an EVM wallet (MetaMask, Rabby, etc).
Save the private key and address.
Get Sepolia ETH from a faucet. If needed, bridge $1 via https://www.gas.zip:
- Select the network to bridge from
- Choose Ethereum Sepolia
- Enter $1
- Enter wallet address
- Send the transaction
Also save your server's IP from VDSina panel.
Final Setup
Run these commands:
ufw allow 22 ufw allow ssh ufw enable ufw allow 40400 ufw allow 8080 docker stop $(docker ps -q --filter "ancestor=aztecprotocol/aztec") && docker rm $(docker ps -a -q --filter "ancestor=aztecprotocol/aztec") screen -ls | grep -i aztec | awk '{print $1}' | xargs -I {} screen -X -S {} quit
Create project directory:
mkdir aztec cd aztec nano .env
Paste and fill in (no spaces):
ETHEREUM_RPC_URL=RPC_URL CONSENSUS_BEACON_URL=BEACON_URL VALIDATOR_PRIVATE_KEY=0xYourPrivateKey COINBASE=0xYourAddress P2P_IP=Server_IP
Save with Ctrl+X
, then Y
, then Enter
.
Create docker-compose file:
nano docker-compose.yml
services: aztec-node: container_name: aztec-sequencer image: aztecprotocol/aztec:alpha-testnet restart: unless-stopped 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: - /root/.aztec/:/data
Save the file with Ctrl+X
, then Y
, then Enter
Launch node:
docker compose up -d
Check logs:
docker compose logs -fn 100
Check Last 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"
Discord Roles
Join Discord:
π https://discord.com/invite/aztec
Go to:
π https://discord.com/channels/1144692727120937080/1367196595866828982
/operator chain-info
Compare the Proven block number with what you saw earlier when you Checked Last Synced Block:
sudo docker logs $(docker ps -q --filter ancestor=aztecprotocol/aztec:alpha-testnet | head -n 1) 2>&1 | grep -i "peerId" | grep -o '"peerId":"[^"]*"' | cut -d'"' -f4 | head -n 1
Go to: https://aztec.nethermind.io β enter your Peer ID.
Wait a few hours for stats to appear.
Get Operator Role
In Discord go to operators | start-here channel -
π https://discord.com/channels/1144692727120937080/1367196595866828982
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 the number. Then run (BLOCK_NUMBER replace with number u got in previous cmd):
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"
Use the output in Discord with /operator start
, filling in:
Also go to channel uninitiated:
π https://discord.com/channels/1144692727120937080/1367348435459772467
Scroll to top and like the first message to get another role.
Registering as Validator
aztec add-l1-validator \ --l1-rpc-urls RPC_URL \ --private-key private-key \ --attester your-wallet-address \ --proposer-eoa your-wallet-address \ --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \ --l1-chain-id 11155111
Replace with your own data (RPC, private key, your wallet address).
Currently, only 5 validators can be registered per day, so after running this command, you will most likely see the following error:
ERROR: cli Failed to send L1 transaction: 'ValidatorQuotaFilledUntil(1748296152)'
Replace the number with the one from your error message β this will show you the exact time when the quota resets, allowing you to try registering as a validator again.
date -d @1748296152