Skip to content

Latest commit

 

History

History
113 lines (89 loc) · 2.68 KB

File metadata and controls

113 lines (89 loc) · 2.68 KB

Sepolia RPC & Beacon Node Setup Guide for Aztec

Requirements

  • VPS with 8 vCPU, 16 GB RAM, 800+ GB NVMe
  • OS: Ubuntu 22.04+
  • Preferred Provider: xorek.cloud

Installation Overview

1. Install dependencies

sudo apt update && sudo apt install -y curl wget gnupg nano ufw docker.io systemd-timesyncd
sudo systemctl enable --now docker.service
sudo systemctl enable --now systemd-timesyncd.service

2. Configure firewall (UFW)

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 8546/tcp
sudo ufw allow 8551/tcp     
sudo ufw allow 30303/tcp    
sudo ufw allow 30303/udp
sudo ufw allow 5053/tcp
sudo ufw allow 40401/tcp 
sudo ufw allow 8080/tcp
sudo ufw enable

3. Install Geth

GETH_VER="1.15.10-2bf8a789"
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-$GETH_VER.tar.gz
tar -xf geth-linux-amd64-$GETH_VER.tar.gz
sudo mv geth-linux-amd64-$GETH_VER/geth /usr/local/bin/
sudo chmod +x /usr/local/bin/geth

4. Create JWT secret

mkdir -p ~/sepolia-node
openssl rand -hex 32 > ~/sepolia-node/jwt.hex

5. Create systemd service for Geth

File: /etc/systemd/system/sepolia-geth.service

See scripts/sepolia-geth.service in this repo.

sudo cp scripts/sepolia-geth.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now sepolia-geth

6. Install Prysm (Beacon)

sudo install -d -o $USER /opt/prysm
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh -o /opt/prysm/prysm.sh
chmod +x /opt/prysm/prysm.sh

7. Create systemd service for Prysm

File: /etc/systemd/system/sepolia-prysm.service

See scripts/sepolia-prysm.service in this repo.

sudo cp scripts/sepolia-prysm.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now sepolia-prysm

8. View logs & syncing status

journalctl -u sepolia-geth -f
journalctl -u sepolia-prysm -f

9. Check syncing status

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

curl http://127.0.0.1:3500/eth/v1/node/syncing

Using Aztec with This RPC

For local node setup:

--l1-rpc-urls http://127.0.0.1:8545
--l1-consensus-host-urls http://127.0.0.1:3500

If connecting from another server, use NGINX and set:

--l1-rpc-urls http://YOUR_RPC_IP:8546
--l1-consensus-host-urls http://YOUR_RPC_IP:5053

Optional: Secure External RPC with NGINX

See nginx/geth-rpc and nginx/beacon-rpc for NGINX configs. Replace IP_OF_AZTEC_NODE with actual IP.

License

MIT License. See LICENSE.