Installation and Quick Start

Set up User

If there is already a non-root user available, you can skip this step.
#create user
sudo useradd -m -s /bin/bash validator
#disable login
passwd -l validator
#add user to sudo group
sudo usermod -aG sudo validator#use the user
su validator

Set Up Deposit Keys

This step involves downloading eth2deposit-cli to generate key pairs used to create a deposit.
#download the pre-built binary
git clone https://github.com/ethereum/staking-deposit-cli
#installation
pip3 install -r requirements.txt
python3 setup.py install
Or use the helper script:
./deposit.sh install
#create keys and deposit_data-*.json
./deposit.sh new-mnemonic
You can also run the tool with optional arguments:
./deposit.sh new-mnemonic --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --chain=<CHAIN_N
You will see the following messages after successfully generated the keystore(s) and the deposit(s):
Creating your keys: [####################################] <N>/<N>
Creating your keystores: [####################################] <N>/<N>
Creating your depositdata: [####################################] <N>/<N>
Verifying your keystores: [####################################] <N>/<N>
Verifying your deposits: [####################################] <N>/<N>
Success!
Your keys can be found at: <YOUR_FOLDER_PATH>

Set Up Execution Layer

Our recommendation is to use Linux Ubuntu 20.04.5 LTS (Focal Fossa)
#install from repository
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update -y
sudo apt-get install ethereum -y
#write a service file
cat > $HOME/geth.service << EOF
[Unit]
Description = Ethereum Daemon Service
Wants = network-online.target
After = network-online.target [Service]
User = $(whoami)
ExecStart = /usr/bin/geth --http \
--http.port=8545 \
--http.addr=0.0.0.0 \
--ws.port=8546 \
--ws.addr=0.0.0.0 \
--networkid 1881 \
--syncmode full \
--http.api=eth,web3,net,txpool \
--authrpc.port 8551 \
--port 30303 \
--bootnodes=enode://a14481494796691bfe016fdde0d46103d639a291c4ef105c4ac518feca2373340[email protected]127.0.0.1:30303 \
Restart = on-failure
RestartSec = 3
TimeoutSec = 300[Install]
WantedBy = multi-user.target
EOF
#move the file to /etc/systemd/system
sudo mv $HOME/geth.service /etc/systemd/system/geth.service
sudo chmod 644 /etc/systemd/system/geth.service
#enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable geth.service
sudo systemctl start geth.service

Whats Next?