Great job on making it through Part 1 of the guide. The first step is always the hardest but, do not falter because you are almost done building your Ethereum node.
Part 2 of the guide on running an Ethereum node starts with installing a Smartnode. The Smartnode Installer will help install the docker and build the containers for you. These are the lists of docker containers:
- rocketpool_api
- Smartnode’s functionality to interact with Rocket Pool’s command-line interface (CLI).
- rocketpool_node
- This is a background process that will periodically check for any claim RPL rewards after a reward checkpoint (if you have auto-claim enabled, more on this later), and is responsible for actually staking new validators when you create a minipool.
- rocketpool_watchtower
- This is used by Oracle Nodes to perform oracle-related duties. For regular node operators, this will simply stay idle.
- rocketpool_eth1
- This will be your Execution client.
- rocketpool_eth2
- This will be your Consensus beacon node client.
- rocketpool_validator
- This will be your Validator client, which is responsible for your validator duties (such as attesting to blocks or proposing new blocks).
Now let’s install and configure RocketPool. This is the overview of what we will be doing.
- Download and install Rocket Pool CLI
- Use CLI to install the Smartnode stack
- Configure Smartnode in terminal
- Starting and stopping Rocket Pool
- Check the version and network
Step 1 Download and install Rocket Pool CLI
- Log into your Pi machine and open the terminal.
Create a new directory for Rocket Pool using this command:
mkdir -p ~/bin
- Check your CPU architecture. This step is vital to install software that is compatible with the CPU. Run this command:
uname -m
You will get this result in the terminal.
The table below shows systems that have similar architecture.
If you have the x64 CPU architecture, use this command to install Rocket Pool CLI:
wget https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-amd64-O ~/bin/rocketpool
Similarly, if you have the arm64 CPU architecture (for Raspberry Pi), use this command:
wget https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-arm64-O ~/bin/rocketpool- Once done, allow permission for the directory to run:
chmod +x ~/bin/rocketpool
- Log out and log back in.
- Let’s confirm whether it is installed correctly.
rocketpool --version
- If you encounter any errors, it could be because you have a different version. Repeat step 4 with the correct version.
Step 2 Use CLI to install Smartnode stack
1. Now that the CLI has been installed
, we can now deploy the Smartnode stack using the following command:
rocketpool service install
The command will install the operating system dependencies for Rocket Pool to:
- run the Rocket Pool service
- install docker
create a user data directory in the ~/.rocketpool directory.
See image below.
2. After the installation of the Rocket Pool service, you may encounter an error regarding the docker. If an error happens, install docker and docker-compose manually. You are good to go to the next step when there is no error notification popping up.
Step 3 Configure Smartnode in terminal
Since we are using an external SSD as our data storage, we need to configure the Docker to use SSD instead of SD card. Follow the following steps to configure your data storage.
1. Log in to your Pi and create a file using this
command:
sudo nano /etc/docker/daemon.json
2. Add this line to the file and change the <your external mount point to the Pi mount point. e.g. `/mnt/rpdata
{ "data-root": "<your external mount point>/docker" }
3. Press Ctrl+O, Enter to save the file, and Ctrl+X, Enter to exit the editor.
4. Now create a docker folder sudo mkdir -p <your external mount point>/docker. e.g. /mnt/rpdata/docker
5. Restart Docker to make this command effective.
sudo systemctl restart docker
Now let us move on to the configuration of the Smartnode.
1. Run this command to open the wizard.
rocketpool service config
Press Enter.
2. Choose the network. In this case, we will select Prater Testnet. Press Enter.
3. Choose Locally Managed for the client mode.
4. Setup Execution client. Select Geth and press Enter.
5. Setup Consensus client. Select Nimbus and press Enter.
6. Next, it will prompt you to insert the Graffiti. This step is optional. You can fill it in or leave it blank.
7. It will then ask you whether you want to enable the checkpoint sync. Since we use the Prater testnet, we will add this checkpoint URL: https://goerli-sync.invis.tools/
8. Next, we will enable Doppelganger Protection. This step helps prevent your minipools from being slashed.
9. Select Yes for the Metrics.
10. Select Locally Managed for the MEV-Boost Mode.
11. Choose Unregulated in the MEV-Boost Mode. You can read more about the MEV from Rocket Pool’s doc.
12. The last step is Save and Exit. If you want to review, select Review All Settings.
13. If the terminal asks you to start the containers, press y and Enter to start the containers. If you want to manually activate the containers, press n and Enter.
Step 4 Starting and Stopping Rocket Pool
Once everything is set up and configured, we can start our container. Use this command to start the service:
This command will create the docker containers according to the configuration that we have set before and run the containers.
To stop the Rocket Pool’s containers, use this command:
This will stop all the running containers.
Step 5 Check Version and Network
To ensure that you are on the correct network and the latest version, you do this using the following command:
What happens next?
Now that the Smartnode’s stack is running, the first thing that it will do is to sync Execution Clients (ETH1) and Consensus Client (ETH2) with the network before proceeding. Usually, the syncing process can take a few minutes up to days.
To check the current progress of the syncing process, use the following command:
You should see something like this:
To get an actual ETA for the sync time, you may use the following command:
or
You should see something like this when both clients are fully synced.
Your patience is paid off when the clients are fully synced. Continue on to adding your wallet and start stacking your Ethereum. You are on your way to officially be a validator.
Follow us on Instagram and Twitter to get more updates or check out our curated news page at DefiDive.