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
You already installed an Eth1 node, synced an Eth2 beacon node, and generated the key pairs, so click continue until you reach "Upload Deposit File".
Upload Deposit File
Drag and drop your Deposit Data file onto the launchpad site
Select Metamask Wallet
Metamask (Insufficient Balance)
You'll notice warnings that you don't have enough GoETH and the continue button is faded. Not a problem since you won't actually be sending the 32 GoETH through the launchpad.
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.
After that change, you should be able to click CONTINUE and advance to the next page.
Accept the Risks and Continue
Initiate transaction by clicking "SEND DEPOSIT":
Confirm Prater Deposit Address is Correct:
Check in the upper right corner in Metamask to ensure you are sending to the correct address
Prater Deposit Contract: 0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b
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
The bot should respond with a confirmation, but it may take some time to complete the deposit on chain if there is congestion on the Goerli testnet.
Use http://prater.beaconcha.in/ to search your validator and check the status
The deposit_data-[timestamp].json
file contains your validator"pubkey"
which you can use to check the status of Eth1 and Eth2 deposits.
Once the deposit is confirmed, you'll enter the queue and be assigned an activation epoch.
Click Deposits
Deposits
Eth2 || Validator || Import Keys
Change Ownership of Lighthouse Directory:
Change directory to lighthouse
Import keystore into Lighthouse:
Copy your keystore file from the USB to the HOME folder then run the following command:
Keys Successfully Imported
Once the keystore is imported, you can delete the keystore from the HOME folder.
You should save an offline copy of the keystore on the USB, but you can always generate a new keystore file using the 24 word mnemonic if needed.
Change ownership of /var/lib/lighthouse
back to root:
/var/lib/lighthouse
back to root:Change ownership of /var/lib/lighthouse/beacon
:
/var/lib/lighthouse/beacon
:Eth2 || Validator || Systemd
Systemd
Create lighthousevalidator
user:
lighthousevalidator
user:Create /var/lib/lighthouse/validators
directory:
/var/lib/lighthouse/validators
directory:Set permissions for /var/lib/lighthouse/validators
:
/var/lib/lighthouse/validators
:Create lighthousevalidator.service
:
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:
Use Ctrl + X
to exit, Y
to save, then Enter
to confirm.
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:
ETH2 || Validator || Run
Start lighthousevalidator.service
:
lighthousevalidator.service
:Check lighthousevalidator.service
output:
lighthousevalidator.service
output:This shows running journal entries created by lighthousevalidator.service
. You can use Ctrl + C
to close the window, but the program will continue running in the background.
Use sudo systemctl stop lighthousevalidator
if you need to stop the 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
You can use https://prater.beaconcha.in/ to check the status of your validator.
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)
Update Lighthouse
Lighthouse does not automatically update. Follow these instructions to install updates:
1. Stop lighthousebeacon
and lighthousevalidator
lighthousebeacon
and lighthousevalidator
2. Change directories, pull master, and make:
3. Copy into /usr/local/bin
:
/usr/local/bin
:4. Start beacon node and check output:
5. Start validator and check output:
Lighthouse is updated! Check https://prater.beaconcha.in/ to ensure you are attesting again.
Last updated