Ethereum Merge Guide - Lighthouse/Geth
Introduction
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!

Summary
Update Geth installation, username, and directory
Create JWT Token
Geth
Update Geth
Add
--authrpc.jwtsecretto geth.service file
Lighthouse
Update Lighthouse
Add
--execution-jwtand--execution-endpointto lighthousebeacon.service fileAdd
--suggested-fee-recipientto lighthousevalidator.service
New Guides and Improvements
There have been a few changes to Somer Esat's Guides over time, and we need to make a few updates to keep in line with best practice. The changes include:
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
Geth Changes
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:
Modify geth.service file
Note on Code Readability
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:
Geth service file should look like this:

4) Reload Daemon:
5) Start Geth:
6) Check Geth logs:
Create JWT Token
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

Update Lighthouse
Check the most current Lighthouse release here.
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!
Update Beacon config file
1) Stop Beacon:
2) Open the beacon service file for editing:
Copy/paste the following into the terminal:
Beacon file should look like this:

2) Reload the daemon:
3) Restart Beacon:
Update Validator config file
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
Merge-ready lighthousebeacon.service file:

3) Reload daemon:
4) Restart Lighthouse Validator:
Check Logs & Status
1) Check Geth output:
2) Check Beacon output:
3) Check Validator output:
Ready For Merge
Congrats! You're all set for the Bellatrix hard fork on Sep 6, and the merge ~Sep 15!

Last updated
