Installing and Configuring RocketPool

28th March 2023

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.

  1. Download and install Rocket Pool CLI
  2. Use CLI to install the Smartnode stack
  3. Configure Smartnode in terminal
  4. Starting and stopping Rocket Pool
  5. Check the version and network

Step 1 Download and install Rocket Pool CLI

  1. Log into your Pi machine and open the terminal.
  2. Create a new directory for Rocket Pool using this command:

    mkdir -p ~/bin
  3. 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.
   
01.webp
   
The table below shows systems that have similar architecture.
 Screenshot 2023-03-27 at 2.42.14 PM.png

  1. 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

     

  2. Once done, allow permission for the directory to run:
       
    chmod +x ~/bin/rocketpool
       
  3. Log out and log back in.
  4. Let’s confirm whether it is installed correctly.
       
    rocketpool --version
       
    02.webp
       
  5. 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.

   
03.webp
   
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

 04.webp

Press Enter.
2. Choose the network. In this case, we will select Prater Testnet. Press Enter.


05.webp

   
3. Choose Locally Managed for the client mode.
   
06.webp
   
4. Setup Execution client. Select Geth and press Enter.
   
07.webp
   
5. Setup Consensus client. Select Nimbus and press Enter.
   
08.webp
   
6. Next, it will prompt you to insert the Graffiti. This step is optional. You can fill it in or leave it blank.
   
09.webp
   
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/ 
   
10.webp
   
8. Next, we will enable Doppelganger Protection. This step helps prevent your minipools from being slashed.
   
11.webp
   
9. Select Yes for the Metrics.
   
12.webp
   
10. Select Locally Managed for the MEV-Boost Mode.
   
13.webp
   
11. Choose Unregulated in the MEV-Boost Mode. You can read more about the MEV from Rocket Pool’s doc.
   
14.webp
   
12. The last step is Save and Exit. If you want to review, select Review All Settings.
   
15.webp
   
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:

16.webp

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:

17.webp

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:

18.webp

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:

19.webp

You should see something like this:

20.webp

To get an actual ETA for the sync time, you may use the following command:

21.webp

or

22.webp

You should see something like this when both clients are fully synced.

23.webp

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.

Copyright DefiDive © 2024