...
...
This guide was written using Geth version 1.13.14-stable.
...
For newer versions, please consult: https://geth.ethereum.org/docs/getting-started/installing-geth
...
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:
|
...
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:
...
The Javascript console enables you to monitor & control your node.
More information here: https://geth.ethereum.org/docs/interface/javascript-console
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.
|
...
Next: Configure CAS to use this node.
...