Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

This guide was written using Geth version 1.13.14-stable.

...

...

Geth is an execution client. Historically, an execution client alone was enough to run a full Ethereum node. However, since Ethereum swapped from proof-of-work (PoW) to proof-of-stake (PoS) based consensus, Geth needs to be coupled to another piece of software called a "consensus client".

Installation of the Geth Ethereum client on Ubuntu 22.04 LTS is described herein.

...

Install Geth on an Ubuntu 22.04 LTS server.

Tip

Minimum system suggested:

  • 4 CPU cores

  • 16 GB RAM

  • 1100+ GB contiguous SSD (more as the blockchain grows over time)

  • Estimated cost (Mar 2024): $302+ USD/month on a “cloud” VM.

  • Patience - the sync takes over a week to become usable.

...

Update your server:

Code Block
sudo apt update && sudo apt dist-upgrade

Add the Geth PPA repository:

Code Block
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt update

Install Geth:

Code Block
sudo apt install ethereum

Verify that the installation was successful:

Code Block
geth version

That command should generate a confirmation like so:

...

Create a new Geth account.

Create the account:

Code Block
geth account new

...

Tip

Save the wallet password!

Verify the account:

Code Block
geth account list

You may see a few errors (it’s ok), but “Account #0” should be listed at the end.

...

You should now backup the account.

  • You will need both the backup and the password to access your wallet in case of a disaster.

  • See official documentation for details.

...

Sync Geth

Now that an account has been created, we’re ready to startup the node to synchronize it with the rest of the Ethereum network. This will take quite some time, and is unavoidable. You must prepare to wait days before the process is complete. Once finished with the initial sync, your Node will keep itself synchronized - but the first time is a bear.

Start the Geth node:

Code Block
geth --allow-insecure-unlock --http --http.api personal,eth,net,web3

...

The synchronization may take a few days. This heavily depends upon several factors, including your CPU, GPU, RAM, storage technology, and Internet bandwidth. Once the entire blockchain has been downloaded and confirmed by your node, you’ll be ready to proceed with the next step of enabling remote access.

Tip

From this point forward, we’ll refer to this window as the “Geth Node Server”.

Use “screen” to permit Geth to run merrily in the background while you disconnect your client computer. Outside the scope of this article, please consult these external links for more information regarding proper usage:

Watch and wait:

To monitor your progress, you’ll need to open a second terminal window to your server. Once you’ve SSH’d in to your server and have an additional command prompt, start the Geth JavaScript console using:

...

Tip

From this point forward, we’ll refer to this window as the “Geth Console”.

Type the following in the Javascript console to identify the synchronization progress of your node:

...

Assuming that the Geth Node Server isn’t shutdown, that it continues to process the network, and that “eth.syncing” generates a “false” reply in the Geth Console, then your blockchain should now be fully sync’d and your node ready for the next step.

...

Setup an SSH tunnel to secure inter-server RPC communication.

We discourage running any software on your CAS server (except for CAS itself). This warning includes the Geth Node Server. The simple solution is to use port forwarding to enable CAS access to your separate Geth Node Server. Two options are explained:

Option 1: Using the GB Wallet Tunnel (recommended):

General Bytes includes an integrated open-source ssh client in CAS. The client is designed to work effortlessly with the GB Wallet Tunnel Server.

Click here for instructions to install the GB Wallet Tunnel Server.

Option 2: Creating an SSH tunnel:

You may elect to use the native SSH tunnel for secure RPC communication with this Node:

...

  • We do absolutely encourage password-less logins (use a private key).

  • If the CAS system permits multiple users, you should password-protect the private key.

Recruit an IT professional if you are uncomfortable with any of this! Protect your funds!

...

Unlock your account

Note

The Geth Node Server must be running & completely synchronized to successfully proceed.

Locate your account address in the Geth Console by using:

Code Block
personal.listAccounts

...

Unlock the wallet using the account address from the previous step:

Code Block
personal.unlockAccount("0xa890ef99308a2eb5abf5d7956544de31eb594338", null, 0)

...

Tip

The Geth Node must always be running, and the wallet must remain unlocked.

  • If either condition fails, ETH transactions will fail until remedied.

...

Next: Configure CAS to use this node.

...