KEMBAR78
Sepolia Node Guide | PDF | Firewall (Computing) | Internet Protocols
0% found this document useful (0 votes)
78 views5 pages

Sepolia Node Guide

The document outlines the hardware requirements and setup instructions for running Ethereum nodes on Ubuntu 24.04 or later, including necessary software installations and firewall configurations on Google Cloud Platform. It details the creation of Docker containers for both the execution node (Geth) and the beacon node (Prysm), along with the required ports and commands for operation. Additionally, it provides commands for checking synchronization status and accessing the nodes via HTTP RPC endpoints.

Uploaded by

bsjavaj11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views5 pages

Sepolia Node Guide

The document outlines the hardware requirements and setup instructions for running Ethereum nodes on Ubuntu 24.04 or later, including necessary software installations and firewall configurations on Google Cloud Platform. It details the creation of Docker containers for both the execution node (Geth) and the beacon node (Prysm), along with the required ports and commands for operation. Additionally, it provides commands for checking synchronization status and accessing the nodes via HTTP RPC endpoints.

Uploaded by

bsjavaj11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Hardware Requirements

OS: Ubuntu 24.04 or later


RAM - 16 GB
CPU - 4-cores
Disk - upto 1 TB

To open these ports in the Google Cloud Platform (GCP) firewall, follow these steps:
1. Go to GCP Firewall Rules Page:
Go to the GCP Firewall Rules Page.
Make sure you are in the correct project.
2. Create a New Firewall Rule:
Click on "Create Firewall Rule."
Name: sepolia-node-firewall
Network: Choose the correct network (usually default).
Priority: Set a lower number (1000 or less) for higher priority.
Direction of Traffic: Ingress
Action on Match: Allow
Targets: Apply to all instances in the network (or select specific targets).
Source IP Ranges: 0.0.0.0/0 (allow traffic from any IP).
Protocols and Ports: Choose "Specified protocols and ports" and add:
TCP: 22, 8545, 8546, 8551, 3500, 4000, 30303
UDP: 30303

sudo -i
usermod -aG sudo your-yourusername

1. sudo apt-get update && sudo apt-get upgrade -y

2. 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

3. 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

4. mkdir -p /root/ethereum/execution
mkdir -p /root/ethereum/consensus

5. openssl rand -hex 32 > /root/ethereum/jwt.hex

6. cd /root/ethereum

7. nano docker-compose.yml

services:
geth:
image: ethereum/client-go:stable
container_name: geth
restart: unless-stopped
ports:
- 30303:30303
- 30303:30303/udp
- 8545:8545
- 8546:8546
- 8551:8551
volumes:
- /root/ethereum/execution:/data
- /root/ethereum/jwt.hex:/data/jwt.hex
command:
- --sepolia
- --http
- --http.api=eth,net,web3
- --http.addr=0.0.0.0
- --authrpc.addr=0.0.0.0
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/data/jwt.hex
- --authrpc.port=8551
- --syncmode=snap
- --datadir=/data
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

prysm:
image: gcr.io/prysmaticlabs/prysm/beacon-chain
container_name: prysm
restart: unless-stopped
volumes:
- /root/ethereum/consensus:/data
- /root/ethereum/jwt.hex:/data/jwt.hex
depends_on:
- geth
ports:
- 4000:4000
- 3500:3500
command:
- --sepolia
- --accept-terms-of-use
- --datadir=/data
- --disable-monitoring
- --rpc-host=0.0.0.0
- --execution-endpoint=http://geth:8551
- --jwt-secret=/data/jwt.hex
- --rpc-port=4000
- --grpc-gateway-corsdomain=*
- --grpc-gateway-host=0.0.0.0
- --grpc-gateway-port=3500
- --min-sync-peers=7
- --checkpoint-sync-url=https://checkpoint-sync.sepolia.ethpandaops.io
- --genesis-beacon-api-url=https://checkpoint-sync.sepolia.ethpandaops.io
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

8. sudo apt update


sudo apt install net-tools

9. sudo netstat -tuln | grep -E '30303|8545|8546|8551|4000|3500'

10. docker compose up -d

11. docker compose logs -fn 100

12. sudo ufw allow 22


sudo ufw allow ssh
sudo ufw enable

13. sudo ufw allow 8545/tcp # Geth HTTP RPC


sudo ufw allow 3500/tcp # Prysm HTTP API
sudo ufw allow 30303/tcp # Geth P2P
sudo ufw allow 30303/udp # Geth P2P

-------------------------------------------------------------------------------------------------------------------------------
---------------

usable commands -

1. curl -X POST -H "Content-Type: application/json" --data


'{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545
Response if fully synced:

🚫
{"jsonrpc":"2.0","id":1,"result":false}
Response if still syncing:
{"jsonrpc":"2.0","id":1,"result":{"currentBlock":"0x1a2b3c","highestBlock":"0x1a2b4d","startingBlo
ck":"0x0"}}


2. curl http://localhost:3500/eth/v1/node/syncing
Response if fully synced:

🚫
{"data":{"head_slot":"12345","sync_distance":"0","is_syncing":false}}
Response if still syncing:
{"data":{"head_slot":"12345","sync_distance":"100","is_syncing":true}}
Execution Node (Geth)
Geth provides an HTTP RPC endpoint for interacting with the execution layer of Ethereum.
Based on docker-compose.yml setup, Geth exposes port 8545 for HTTP RPC. The endpoints
are:

http://<vps-ip>:8545 (replace <vps-ip> with your VPS’s public IP address, e.g.,


http://203.0.113.5:8545).
Aztec Sequencer Execution RPC: http://<vps-ip>:8545. Since the Aztec Sequencer uses a
bridge network to isolate docker container, you can NOT access Geth via localhost.

Beacon Node (Prysm)


Prysm, as the beacon node, offers an HTTP gateway on port 3500. the endpoints are:

http://<vps-ip>:3500 (e.g., http://203.0.113.5:3500).


Aztec Sequencer Consensus Beacon RPC: http://<vps-ip>:3500. Since the Aztec Sequencer
uses a bridge network to isolate docker container, you can NOT access Prysm via localhost.

You might also like