💻Baremetal
Authors: [Vince | Nodeify, Payne | Stake🦑Squid]
System Requirements
6 Cores / 12 Threads
Ubuntu 22.04
>= 16GB
>= 3 TiB NVMe SSD
Erigon 🦦
Official Docs https://erigon.gitbook.io/
Pre-requisites
Update, upgrade, and clean the system, and then install essential development tools (build-essential), firewall management (ufw), and the Git version control system.
Set explicit default UFW rules
Allow P2P connections with Erigon, Consensus peers and SSH
Allow remote RPC connections with Execution Client
Not advised to allow all or unknown IP address to RPC port
Enable Firewall
Install go
Download the Go programming language distribution archive, extracts it to the "/usr/local" directory, and then removes the downloaded archive, effectively installing Go version 1.20.6 on the system.
Please add the Go executable path to your system's PATH
environment variable, and then test to ensure that Go is working correctly.
Create Erigon Directory
Create a new directory named erigon within the "/root/.local/share" directory, providing a location for storing data related to Erigon.
Generate JWT token
Generate a 32-byte random hexadecimal value using OpenSSL, removes any newline characters, and then save the result into the file "jwt.hex" located in the "/root/.local/share/erigon/" directory.
Build Erigon
Clone the Erigon repository from GitHub, including its submodules, changes the current directory to the Erigon directory, checks out the latest release tag, and then compile the project using the "make" build system.
Configure Erigon
Append a systemd service configuration for the Erigon Gnosis Mainnet Service to the "/etc/systemd/system/erigon.service" file, specifying its description, dependencies, and executable parameters for proper execution and monitoring.
Run Erigon
Reload the systemd manager configuration, start the Erigon service, and enable it to start automatically on system boot, ensuring that the Erigon Gnosis Mainnet Service is active and will be automatically started upon system startup.
Monitor Logs
Use journalctl to display real-time log messages and continuously follow the log output of the Erigon service, allowing you to monitor its activity and troubleshoot any issues as they occur.
Consensus Clients
For Erigon to operate, it requires the use of a consensus client. It is crucial to consider client diversity while doing so. -> https://clientdiversity.org/
Lodestar 🤠
Official Docs https://chainsafe.github.io/lodestar/
Install yarn and nodeJS
Create Lodestar Directory
Create a new directory named lodestar within the "/root/.local/share" directory, providing a location for storing data related to Lodestar.
Build Lodestar
Clone the lodestar repository from GitHub, navigate to the lodestar directory, switch to the stable branch, and then build the project with yarn.
Configure Lodestar
Append a systemd service configuration for the Lodestar Gnosis Service to the "/etc/systemd/system/lodestar.service" file, specifying its description, dependencies, and executable parameters for proper execution and monitoring.
Run Lodestar
Reload the systemd manager configuration, restart the Lodestar and Erigon services, and enable the Lodestar service to start automatically on system boot. This ensures that both services are running with the latest configuration and that the Lodestar service will be automatically started upon system startup.
Monitor Logs
Use journalctl to display real-time log messages and continuously follow the log output of the Lodestar service, allowing you to monitor its activity and troubleshoot any issues as they occur.
Lighthouse 🕯️
Official Docs https://lighthouse-book.sigmaprime.io/
Install rust
Please add the Rust executable path to your system's PATH
environment variable, and then test to ensure that Rust is working correctly.
Create Lighthouse Directory
Create a new directory named "lighthouse" within the "/root/.local/share" directory, providing a location for storing data related to Lighthouse.
Build Lighthouse
Clone the lighthouse repository from GitHub, navigate to the lighthouse directory, switch to the stable branch, and then build the project with the gnosis feature enabled using the "make" build system.
Configure Lighthouse
Append a systemd service configuration for the Lighthouse Gnosis Service to the "/etc/systemd/system/lighthouse.service" file, specifying its description, dependencies, and executable parameters for proper execution and monitoring.
Run Lighthouse
Reload the systemd manager configuration, restart the Lighthouse and Erigon services, and enable the Lighthouse service to start automatically on system boot. This ensures that both services are running with the latest configuration and that the Lighthouse service will be automatically started upon system startup.
Monitor Logs
Use journalctl to display real-time log messages and continuously follow the log output of the Lighthouse service, allowing you to monitor its activity and troubleshoot any issues as they occur.
Nimbus ☁️
Official Docs https://nimbus.guide/index.html
Install cmake
Create Nimbus Directory
Create a new directory named nimbus within the "/root/.local/share" directory, providing a location for storing data related to Nimbus.
Build Nimbus
Clone the Nimbus repository from GitHub, navigate to the nimbus directory, switch to the latest stable release, and then build the project with make
You can increase -j4
(-j32
) with higher or lower integer depending on your host machine ram to decrease build time. Omit -j4
on systems with 4GB of memory or less.
Alternatively, extract the binary from the precompiled docker images:
Configure Nimbus
Append a systemd service configuration for the Nimbus Gnosis Service to the "/etc/systemd/system/nimbus.service" file, specifying its description, dependencies, and executable parameters for proper execution and monitoring.
Run Nimbus
Reload the systemd manager configuration, restart the Nimbus and Erigon services, and enable the Nimbus service to start automatically on system boot. This ensures that both services are running with the latest configuration and that the Nimbus service will be automatically started upon system startup.
Monitor Logs
Use journalctl to display real-time log messages and continuously follow the log output of the Nimbus service, allowing you to monitor its activity and troubleshoot any issues as they occur.
Teku 🍷
Official Docs https://docs.teku.consensys.net/get-started
Install the required Java runtime
Create Teku Directory
Create a new directory named teku within the "/root/.local/share" directory, providing a location for storing data related to Teku.
Build Teku
Clone the teku repository from GitHub, navigate to the teku directory, switch to the latest release, and then build the project with with the Gradle wrapper gradlew
, as follows.
Configure Teku
Append a systemd service configuration for the Teku Gnosis Service to the "/etc/systemd/system/teku.service" file, specifying its description, dependencies, and executable parameters for proper execution and monitoring.
Run Teku
Reload the systemd manager configuration, restart the Teku and Erigon services, and enable the Teku service to start automatically on system boot. This ensures that both services are running with the latest configuration and that the Teku service will be automatically started upon system startup.
Monitor Logs
Use journalctl to display real-time log messages and continuously follow the log output of the Teku service, allowing you to monitor its activity and troubleshoot any issues as they occur.
Test Erigon RPC 🧪
Erigon and Consensus client must be synced before testing.
This should be your result.
Last updated