Geth - Execution Engine

Update the system:

sudo apt update && sudo apt upgrade

Update distro (Ubuntu) and autoremove:

sudo apt dist-upgrade && sudo apt autoremove

Install Geth

1) Check latest version of Geth:

Find the most current update here.

This code in this guide is updated for v1.10.26 and current as of Jan 5, 2023.

Install Curl

sudo apt install curl

2) Change to Home directory:

cd ~

3) Use curl to download latest version:

curl -LO https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.11.2-73b01f40.tar.gz

4) Extract, Copy, and Clean up:

tar xvf geth-linux-amd64-1.11.2-73b01f40.tar.gz
cd geth-linux-amd64-1.11.2-73b01f40
sudo cp geth /usr/local/bin
cd ~
rm geth-linux-amd64-1.11.2-73b01f40.tar.gz
rm -r geth-linux-amd64-1.11.2-73b01f40

Create service file to run Geth

Create geth user:

sudo useradd --no-create-home --shell /bin/false geth

Create /geth directory:

sudo mkdir -p /var/lib/geth

Assign goeth permission to modify /geth:

sudo chown -R geth:geth /var/lib/geth

Create geth.service :

sudo nano /etc/systemd/system/geth.service

Paste the following into the file:

[Unit]
Description=Geth Execution Client (Mainnet)
After=network.target
Wants=network.target

[Service]
User=geth
Group=geth
Type=simple
Restart=always
RestartSec=5
TimeoutStopSec=600
ExecStart=/usr/local/bin/geth \
  --mainnet \
  --datadir /var/lib/geth \
  --authrpc.jwtsecret /var/lib/jwtsecret/jwt.hex
  
[Install]
WantedBy=default.target

Use Ctrl + X to exit, Y to save, then Enter to confirm.

Reload the daemon:

sudo systemctl daemon-reload

Start geth.service:

sudo systemctl start geth

Check geth.service output:

sudo journalctl -f -u geth.service

This shows running journal entries created by geth.service. You can use Ctrl + C to close the window, but the program will continue running in the background.

Use sudo systemctl stop geth if you need to stop geth.service

The node will begin searching for peers, and eventually start downloading/verifying blocks.

Geth Sync

Geth data is currently ~875gb and may take ~24 hours to fully sync.

You can check your progress by comparing your block number in Geth to the current block at https://etherscan.io/

As you wait for the Eth1 node to sync, you can open a new terminal and install Lighthouse - Beacon Node.

Last updated