Guide | How to setup a validator for Ethereum staking on Pithos testnet in 10 minutes or less
Become a validator, start staking and help secure Ethereum, a proof-of-stake blockchain. Anyone with 32 ETH can join.
Your Mission

Become a validator, start staking and help secure Ethereum, a proof-of-stake blockchain. Anyone with 32 ETH can join.

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install git ufw curl -ycurl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USERsudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composedocker --version
docker-compose --versionsudo reboot# By default, deny all incoming and outgoing traffic
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow SSH access
sudo ufw allow ssh
# Allow execution client port
sudo ufw allow 30303/tcp
# Allow consensus client port
sudo ufw allow 9000/tcp
sudo ufw allow 9000/udp
# Enable UFW
sudo ufw enablesudo ufw status numberedStatus: active
To Action From
-- ------ ----
[ 1] 9000/udp ALLOW IN Anywhere
[ 2] 22/tcp ALLOW IN Anywhere
[ 3] 30303/tcp ALLOW IN Anywhere
[ 4] 9000/tcp ALLOW IN Anywhere
[ 5] 9000/udp (v6) ALLOW IN Anywhere (v6)
[ 6] 22/tcp (v6) ALLOW IN Anywhere (v6)
[ 7] 30303/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 9000/tcp (v6) ALLOW IN Anywhere (v6)#Setup git directory
mkdir ~/git
cd ~/git
#Clone the repository
git clone https://github.com/parithosh/consensus-deployment-ansible
#Change directories
cd ~/git/consensus-deployment-ansible/scripts/quick-run/
#Create the required directories for persistent data
mkdir -p execution_data beacon_dataIP_ADDRESS=$(curl ifconfig.me)
echo My IP address: $IP_ADDRESS
sed -i -e "s/<ENTER-IP-ADDRESS-HERE>/$IP_ADDRESS/g" ~/git/consensus-deployment-ansible/scripts/quick-run/pithos.varsdocker-compose --env-file pithos.vars -f docker-compose.geth.yml up -ddocker-compose --env-file pithos.vars -f docker-compose.besu.yml up -ddocker-compose --env-file pithos.vars -f docker-compose.lodestar.yml up -ddocker-compose --env-file pithos.vars -f docker-compose.teku.yml up -ddocker-compose --env-file pithos.vars -f docker-compose.lighthouse.yml up -ddocker logs geth -f --tail=20docker logs besu -f --tail=20docker logs lodestar_beacon -f --tail=20docker logs teku_beacon -f --tail=20docker logs lighthouse_beacon -f --tail=20docker-compose -f docker-compose.geth.yml downdocker-compose -f docker-compose.besu.yml downdocker-compose -f docker-compose.lodestar.yml downdocker-compose -f docker-compose.teku.yml downdocker-compose -f docker-compose.lighthouse.yml downdocker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
592fd5931a1b parithoshj/geth:merge-ac736f9 "geth --datadir=/exe…" 1 hours ago Up 1 hours gethdocker-compose -f docker-compose.geth.yml down --remove-orphans--port <your port#>