Geth

Overview

Geth - Go Ethereum is one of the three original implementations (along with C++ and Python) of the Ethereum protocol. It is written in Go, fully open source and licensed under the GNU LGPL v3.

1. Create service account and data directory

Create a service user for the execution service, create data directory and assign ownership.

sudo adduser --system --no-create-home --group execution
sudo mkdir -p /var/lib/geth
sudo chown -R execution:execution /var/lib/geth

2. Install binaries

  • Downloading binaries is often faster and more convenient.

  • Building from source code can offer better compatibility and is more aligned with the spirit of FOSS (free open source software).

Option 1 - Download binaries

Install the binaries.

Option 2 - Build from source code

Install Go dependencies

Verify Go is properly installed by checking the version and cleanup files.

Install build dependencies.

Build the binary.

Install the binary.

3. Setup and configure systemd

Create a systemd unit file to define your execution.service configuration.

Paste the following configuration into the file.

To exit and save, press Ctrl + X, then Y, then Enter.

Run the following to enable auto-start at boot time.

Finally, start your execution layer client and check it's status.

Press Ctrl + C to exit the status.

4. Helpful execution client commands

A properly functioning Geth execution client will indicate "Imported new potential chain segment". For example,

Now that your execution client is configured and started, proceed to the next step on setting up your consensus client.