Member-only story
Supplemental: Preparing your two-Pi Ethereum staking validator setup for The Merge

This Ethereum Merge thing has been causing me some mild agida. And I noticed a few others joining me in flailing about in the EthStaker and Lighthouse Discords.
I was so happy to see Somer Esat publish his always impeccable “Supplemental Guide” to changes we all need to make before the historic arrival of TTD > 58750000000000000000000.
BUT, if like me you departed from his standard setup by putting your Execution Layer Client (e.g. Geth) and your Consensus Layer Client (e.g. Lighthouse) on two separate Raspberry Pi 4 servers, there is one tricky thing you need to work out about how to get both machines merge-ready.
Update 26 March 2024: You can still run GETH on a Pi 4 without issue. To run Lighthouse post version 5.0, you’ll need a Pi 5
And that’s how to get your two servers to validate that jwtsecret file, which securely identifies your Execution Layer Client to your Consensus Layer Client. When you have both clients on a single server, it’s easy-peasy: you just have to let both clients know that they’ll find the file at /var/lib/jwtsecret/jwt.hex. But when two separate machines are involved, there are additional steps. It’s not rocket science, but it takes some twiddling to work out. And the outstanding help of the moderators over at the eth-staker and lighthouse communities on Discord. Thanks y’all!
First, this guide presumes that you’re running Lighthouse and Geth on an Ubuntu operating system on a couple of Raspberry PI 4s with 16GB of memory, and that you’ve set these up using Somer Esat’s 2020 guide, but modified to split the two clients on to different machines.
You’ll now want to follow Somer’s Supplementary Guide to Staking Ethereum, but then take the following steps to modify for a two-machine setup. If you’re not using Lighthouse and Geth the specifics configuration instructions here will differ, but the general concepts are the same.
First, the thing I had trouble working out was that you need identical jwt.hex files on both machines…