Ethereum Merge Guide - Lighthouse/Geth
Last updated
Last updated
This guide is intended for anyone currently running mainnet for validators using Lighthouse/Geth. These updates are current as of Sep 4, 2022, installing Lighthouse-V3.1.0 and Geth -V.1.10.25.
After completing these updates, your validator will be ready for the Bellatrix hard fork ~Sep 6 and the mainnet merge ~Sep 15!
Update Geth installation, username, and directory
Create JWT Token
Geth
Update Geth
Add --authrpc.jwtsecret
to geth.service file
Lighthouse
Update Lighthouse
Add --execution-jwt
and --execution-endpoint
to lighthousebeacon.service file
Add --suggested-fee-recipient
to lighthousevalidator.service
1) Username changed from Goeth to Geth
2) Rename Geth directory from /var/lib/goethereum
to /var/lib/geth
3) Remove Personal Package Archive (PPA) installation and switch to using curl
1) Stop Geth:
2) Remove Geth:
3) Remove Geth PPA:
4) Check latest version of Geth:
5) Change to Home directory:
6) Use curl to download latest version (be sure to update version):
7) Extract, Copy, and Clean up (update version):
8) Rename geth username and group (goeth
-> geth
):
9) Rename geth directory to /var/lib/geth
10) Set permissions for data directory:
11) Update other programs:
This blob is simply informational, no need to copy any code from here.
This guide uses line breaks "\
" to list each flag on it's own line and make the code easier to understand.
The two code examples below are identical, just with different layouts.
Single line layout:
Same code with line breaks:
As you can see, the line breaks make the code more readable and clearly identifies each flag. This guide will use line breaks to make the service files more readable.
1) Open geth.service for editing:
2) Modify geth.service:
3) Copy/Paste the following text into the empty geth.service file:
4) Reload Daemon:
5) Start Geth:
6) Check Geth logs:
The JWT token is used by Execution Engine (Geth) and Consensus Client (Lighthouse) to securely communicate back and forth.
These steps will generated a random 32 byte hex that will be referenced by both clients.
1) Create directory to store the JWT file:
2) Generate the JWT hex file using openssl
:
3) Use ls
(list) to confirm the hex file exists at /var/lib/jwtsecret
:
If the terminal responds with "jwt.hex
" as shown below, then the JWT token was successfully created and stored at /var/lib/jwtsecret
1) Change directory to the Home folder:
2) Remove any old lighthouse file that may exist:
Download Lighthouse software (update version):
3) Stop Lighthouse services:
4) Extract binary from archive (update version):
5) Copy binary into /usr/local/bin:
6) Start Lighthouse services:
7) Remove old files (update version):
Congratulations, Lighthouse is now running on the most current version!
1) Stop Beacon:
2) Open the beacon service file for editing:
Copy/paste the following into the terminal:
2) Reload the daemon:
3) Restart Beacon:
After the merge, your validator will receive tips from any blocks you propose. It is important that you send tips to a valid Ethereum address you can access.
Be sure to update the --suggested-fee-recipient
flag as shown below
1) Open the lighthousevalidator.service file for editing:
2) Copy/Paste the information below into the terminal
3) Reload daemon:
4) Restart Lighthouse Validator:
1) Check Geth output:
2) Check Beacon output:
3) Check Validator output:
Congrats! You're all set for the Bellatrix hard fork on Sep 6, and the merge ~Sep 15!
This guide is for informational purposes only. Always practice on first.
Feel free to reach out to the if you have any questions.
There have been a few changes to over time, and we need to make a few updates to keep in line with best practice. The changes include:
Find the most current update .
Check the most current Lighthouse release .