ETH 2.0 - Validator
Eth2 || Validator || Generate Keys
Eth2 keys should be generated in a safe environment.
Please see this guide on how to securely generate Eth2 keys offline using Ubuntu to boot into a live USB.
Once you have generated your keys, the next step is to submit a deposit using the Launchpad.
Eth2 || Prater || Launchpad
There is currently a shortage of Goerli ETH (testnet ETH) and you may not be able to find the 32 Goerli ETH + fees needed to make a testnet deposit.
As a temporary workaround, the EthStaker community has created a Discord bot that will make a deposit to Prater on your behalf using data from your Metamask transaction.
The deposit process still uses the launchpad, but instead of confirming the transaction through Metamask, you copy the transaction data and submit it to the Discord bot.
This section of the guide has been updated to reflect those changes.
Visit ETH 2.0 Prater Launchpad

Upload Deposit File
Drag and drop your Deposit Data file onto the launchpad site

Select Metamask Wallet

Never send real ETH to the testnet deposit contract!
Ensure Metamask is connected to the Goerli Test Network as shown below

Metamask (Insufficient Balance)

Right click and "Inspect (Q)":
You can't click CONTINUE because you're GoETH balance is too low, so we need to edit a command in the HTML code which will allow us to proceed.
Right click on the CONTINUE button and select Inspect (Q)

Change Disabled to Enabled
Change disabled
to enabled
as shown in this link, then close the editor.
Accept the Risks and Continue

Initiate transaction by clicking "SEND DEPOSIT":

Confirm Prater Deposit Address is Correct:

Click "DATA" and scroll down to "HEX DATA":

Copy the "HEX DATA" - (Below is a sample)
0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001205d12b827982c2850ff7e23d4c818049f9d9a588cdba8e2913e48651ab370f75f0000000000000000000000000000000000000000000000000000000000000030b8af108a4185d7704b9d9665e269e3d6dc785601a405450a922a99411d9b01b6f23b9beeea4871a87478c8a95f4202540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200094b5b364368c7f6ed0464ddf89fa20a78f0eb92e50d29c6d96b11d70a755b600000000000000000000000000000000000000000000000000000000000000608d34c9a2aed60e6cd9d74a4c2b9e087cb18c83c7251059fc4edb13e4364db334e49c558a365bb258da86edcecf81d2160bd7c14e8250d10068ef85b64a5a8ca296fdeff5763fe5f76bac1dd32928a754814923920bbcbed3a368c7587b015f0b
Join EthStaker Discord
Join the EthStaker Discord and find the channel named "request-goerli-eth"
Submit HEX DATA to EthStaker bot as shown below (add !goerliETH in front)
!goerliEth 0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001205d12b827982c2850ff7e23d4c818049f9d9a588cdba8e2913e48651ab370f75f0000000000000000000000000000000000000000000000000000000000000030b8af108a4185d7704b9d9665e269e3d6dc785601a405450a922a99411d9b01b6f23b9beeea4871a87478c8a95f4202540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200094b5b364368c7f6ed0464ddf89fa20a78f0eb92e50d29c6d96b11d70a755b600000000000000000000000000000000000000000000000000000000000000608d34c9a2aed60e6cd9d74a4c2b9e087cb18c83c7251059fc4edb13e4364db334e49c558a365bb258da86edcecf81d2160bd7c14e8250d10068ef85b64a5a8ca296fdeff5763fe5f76bac1dd32928a754814923920bbcbed3a368c7587b015f0b

Transaction Successful
Use http://prater.beaconcha.in/ to search your validator and check the status

Click Deposits
Deposits

Eth2 || Validator || Import Keys
Change Ownership of Lighthouse Directory:
DO NOT JUST COPY THE NEXT COMMAND
You must change YOURUSERNAME:YOURUSERNAME
to your username in the command below.
sudo chown -R YOURUSERNAME:YOURUSERNAME /var/lib/lighthouse
Note: If you don't know your username, use the command whoami
Change directory to lighthouse
cd ~/lighthouse
Import keystore into Lighthouse:
lighthouse --network prater account validator import --directory $HOME --datadir /var/lib/lighthouse
Keys Successfully Imported

Change ownership of /var/lib/lighthouse
back to root:
/var/lib/lighthouse
back to root:sudo chown root:root /var/lib/lighthouse
Change ownership of /var/lib/lighthouse/beacon
:
/var/lib/lighthouse/beacon
:sudo chown -R lighthousebeacon:lighthousebeacon /var/lib/lighthouse/beacon
Eth2 || Validator || Systemd
Systemd
Create lighthousevalidator
user:
lighthousevalidator
user:sudo useradd --no-create-home --shell /bin/false lighthousevalidator
Create /var/lib/lighthouse/validators
directory:
/var/lib/lighthouse/validators
directory:sudo mkdir -p /var/lib/lighthouse/validators
Set permissions for /var/lib/lighthouse/validators
:
/var/lib/lighthouse/validators
:sudo chown -R lighthousevalidator:lighthousevalidator /var/lib/lighthouse/validators
Create lighthousevalidator.service
:
lighthousevalidator.service
:sudo nano /etc/systemd/system/lighthousevalidator.service
Paste the following into the file:
[Unit]
Description=Lighthouse Validator
Wants=network-online.target
After=network-online.target
[Service]
User=lighthousevalidator
Group=lighthousevalidator
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse validator_client --datadir /var/lib/lighthouse --network prater
[Install]
WantedBy=multi-user.target
The file should look like this:

Below is a description of the commands used to in the validator service file:
/usr/local/bin/lighthouse validator_client
- start validator client--datadir /var/lib/lighthouse/validator
- data directory for lighthouse validator
Reload Daemon:
sudo systemctl daemon-reload
ETH2 || Validator || Run
Start lighthousevalidator.service
:
lighthousevalidator.service
:sudo systemctl start lighthousevalidator
Check lighthousevalidator.service
output:
lighthousevalidator.service
output:sudo journalctl -fu lighthousevalidator.service
Validator || Waiting for Beacon Node to Sync
If the beacon node has not finished syncing, the validator will provide a warning:

Validator || Awaiting Activation

Beaconcha.in || Awaiting Activation

Validator || Successful Attestation

Congratulations, you are officially staking! No other action is needed, but you should ocassionally check to ensure all software is up to date (both Geth and Lighthouse).
Update Geth (and other system software)
sudo apt update && sudo apt upgrade
Update Lighthouse
1. Stop lighthousebeacon
and lighthousevalidator
lighthousebeacon
and lighthousevalidator
sudo systemctl stop lighthousebeacon
sudo systemctl stop lighthousevalidator
2. Change directories, pull master, and make:
cd ~/lighthouse
git pull origin master
make
3. Copy into /usr/local/bin
:
/usr/local/bin
:sudo cp /$HOME/.cargo/bin/lighthouse /usr/local/bin
4. Start beacon node and check output:
sudo systemctl start lighthousebeacon
sudo journalctl -fu lighthousebeacon.service
5. Start validator and check output:
sudo systemctl start lighthousevalidator
sudo journalctl -fu lighthousevalidator.service
Lighthouse is updated! Check https://prater.beaconcha.in/ to ensure you are attesting again.
Last updated
Was this helpful?