google.com, pub-7590763259720133, DIRECT, f08c47fec0942fa0
 

Part 4 - Node Operator's Configuration Guide for Dummies - Installing Rocket Pool



Part 4 - Installing Rocket Pool

Part 4 - Installing Rocket Pool


Installing Rocket Pool

In this section, we will walk through installing the Rocket Pool Smartnode stack using the standard Docker-based setup. This will install and configure everything you need to run a complete node, including:

  • The Rocket Pool Smartnode software

  • An ETH1 client of your choice

  • An ETH2 client of your choice

All you must do is tell it what you want to run!


Downloading the Rocket Pool CLI

On Linux, start by creating a new folder that will hold the CLI application:

 mkdir -p ~/bin 

Next, download the CLI. This depends on what architecture your system uses.

For x64 systems (most normal computers):

wget https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool       

Mark it as executable, so it has permissions to run:

 chmod +x ~/bin/rocketpool 

Next, log out and log back in (or close SSH and reconnect), or simply restart. This is because the path that you saved the CLI to (~/bin) may not be in your system's PATH variable (the list of places your system searches for executables) yet. Logging out and back in will put it there.


Now, test running it with the --version flag.

 rocketpool --version 

You should see output like this:

rocketpool version 1.0.0-rc1 

Installing the Smartnode Stack

Now that you have the CLI installed, you can deploy the Smartnode stack. This will prepare your system with Docker, docker-compose, and load the Smartnode files so they're ready to go. It won't run anything yet; that comes later.


To deploy the Smartnode stack, you will need to run the following command on your node machine (either by logging in locally or connecting remotely, such as through SSH).

rocketpool service install

This will grab the latest version of the Smartnode stack and set it up. You should see output like this at the end:

Step 5 of 7: Creating Rocket Pool user data directory...
Step 6 of 7: Downloading Rocket Pool package files...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   651  100   651    0     0   3271      0 --:--:-- --:--:-- --:--:--  3271
100 7845k  100 7845k    0     0  5689k      0  0:00:01  0:00:01 --:--:-- 10.2M
Step 7 of 7: Copying package files to Rocket Pool user data directory...

If there aren't any error messages, then the installation was successful. By default, it will be put into the ~/.rocketpool directory inside your user account's home folder.


Note that the Smartnode installer cannot automatically install docker and docker-compose on all platforms. If you receive an error message like this during the installation:

Automatic dependency installation for the Mint operating system is not supported.
Please install docker and docker-compose manually, then try again with the '-d' flag to skip OS dependency installation.
Be sure to add yourself to the docker group with 'sudo usermod -aG docker $USER' after installing docker.
Log out and back in, or restart your system after you run this command.

Then you simply have to install those two things manually.


Docker provides common install instructions here.


Docker-compose provides common install instructions here.


Once both are installed, make sure you give your user account permission to use Docker:

 sudo usermod -aG docker $USER

After this, log out and back in or restart your SSH session for the settings to take effect.


Finally, re-run the installer with the -d flag to skip Docker installation:

rocketpool service install -d

Once this is finished, the Smartnode stack will be ready to run.


Configuring the Smartnode Stack

With all of that setup finished, you can now configure the Smartnode stack with your choice of ETH1 and ETH2 clients, and their custom settings. To accomplish this, run the configuration command:

 rocketpool service config 

This will launch a CLI-based interview that will ask you a few questions to help make configuration easy.


The first question you will see is as follows:

Some settings (such as port selection) come with recommended defaults. Would you like to use them automatically? You can review them at the end of this setup. [y/n]

Many people tend to leave these at their default recommended values, and I recommend hitting y for yes.


ETH1 Configuration

The first main question will be about which ETH1 client you want to use. For help deciding on an option, consult Part 3 of this guide.

.

The prompt will look like this:

Which Eth 1.0 client would you like to run?
1: Geth 	Geth is one of the three original implementations of the
 		    Ethereum protocol. It is written in Go, fully open source and
 		    licensed under the GNU LGPL v3.
		    https://geth.ethereum.org/

2: Infura 	Use infura.io as a light client for Eth 1.0. Not recommended
 		    for use in production.
		    https://infura.io/

3: Pocket 	Use Pocket Network as a light client for Eth 1.0. Suitable
 		    for use in production.
		    https://dashboard.pokt.network/

4: Custom 	Use a custom Eth 1.0 client at a specified address (does not
 		    work on localhost).

For this configuration mode, where Rocket Pool will install and manage your ETH1 and ETH2 clients, select between Geth, Infura, Pocket, or a custom ETH1 endpoint (for advanced users).


If you have a 2 TB drive, my recommendation is to use Geth as your ETH1 client.


Geth The standard configuration for Geth does not ask you any questions. It will use the following default values:

  • Ethstats Label: (None, disabled)

  • Ethstats Login: (None, disabled)

  • Cache Size: 1024 MB for x64 systems, 512 MB for arm64 systems

  • Max Peers: 50 for x64 systems, 12 for arm64 systems

  • P2P Port: 30303

NOTE To make sure Geth can sync quickly, you may want to open up the P2P port in your router's port forwarding setup. Configure it to forward port 30303 and port 9001 on both TCP and UDP to your machine's local IP address This way, other ETH1 clients can discover it and communicate with it from the outside.
Each router has a different way of doing this, so you'll need to check out your router's manual on how to set up port forwarding.

I recommend you forward ports 30303 and 9001. I had sync and peer connectivity issues until I opened up these ports on my router. Your mileage may vary, and you can skip the port forward and reconsider if you notice any issues.


Infura

If you select Infura, you will be presented with the following questions:

Please enter the Infura Project ID (the ID of your project created in Infura)   

When you create an Infura account, you will be given a unique project ID, which is a 32-character hexadecimal string. Enter it here.


Pocket The standard configuration for Pocket does not ask you any questions. It will use the default Pocket Gateway ID that the Pocket team has generously donated to Rocket Pool so node operators can use the network for free.


ETH1 Fallback Configuration

The next question will ask you to choose a fallback ETH1 client:

Would you like to configure a second Eth 1.0 client to act as a fallback in case your primary Eth 1.0 client is unavailable? [y/n] 

This is a secondary ETH1 client that is configured to run in standby mode and can take over for your primary client if it ever fails.


For example, this is advantageous if you selected geth as your primary client, but you need to take it down for maintenance.


My recommendation is to use Pocket as your ETH1 Fallback client.


The prompt will look like this:


Which Eth 1.0 Fallback client would you like to run?
1: Infura 	Use infura.io as a light client for Eth 1.0. Not recommended
 		    for use in production.
		    https://infura.io/

2: Pocket 	Use Pocket Network as a light client for Eth 1.0. Suitable
 		    for use in production.
		    https://dashboard.pokt.network/

3: Custom 	Use a custom Eth 1.0 client at a specified address (does not
 		    work on localhost).

Select which one you'd like to use here. The configuration options are the same as in the previous section, where you chose a primary ETH1 client.


ETH2 Configuration

Once you're finished configuring the ETH1 client, you will be prompted with this question:

 Would you like to run a random Eth 2.0 client (recommended)? [y/n] 

Rocket Pool is firmly committed to the health and diversity of the Beacon Chain, which means they do not favor one client over another. To this end, the default behavior is to run a random ETH2 client. All four clients are stable and perform very well, so there is no wrong choice (depending on your available hardware resources). Therefore, selecting a random client will not negatively impact your validators but will contribute to the security of the ETH2 ecosystem.


That being said, we also offer you the option to choose a specific client if you have one in mind.


I recommend you select anything but Prysm, as they hold the supermajority and expose the Ethereum network to additional risk. You can review the ETH2 clients in Part 2.


Once you have made your decision, you will be asked the following questions:

Please enter the Custom Graffiti (leave blank for none)
(optional - for adding custom text to signed Eth 2.0 blocks - 16 chars max)

When your validator proposes a block on the ETH2 chain, you are allowed to include a short custom string that will be included in it and available for everyone to see. This is called the block's graffiti. If you like, you can enter a custom message here or leave it blank.


And the following question:

Please enter the Checkpoint Sync Provider (leave blank for none)
(If you would like to instantly sync using an existing Beacon node, enter its URL.
 Example: https://<project ID>:<secret>@eth2-beacon-prater.infura.io
 Leave this blank if you want to sync normally from the start of the chain.)

Lighthouse and Teku have the ability to instantly sync to the latest block on the Beacon Chain network by connecting to an existing Beacon Node that you trust. This is preferred over conventional syncing because it doesn't require any time (whereas conventional syncing can take days) and has some security benefits.


You can enter the URL of any Beacon Node that provides access to its REST API here. One popular option is Infura, which offers this service for free (though it requires you to create an account).


See the section below on Checkpoint Syncing if you'd like to use it.


ETH2 Checkpoint Syncing with Infura

Checkpoint syncing is an advantageous technique that some Beacon Chain clients support. It allows your Beacon client to instantly sync the entire Beacon chain without having to start from the beginning and catch up on every block. This means instead of taking days; your Beacon client can be ready in a matter of minutes. All it needs is access to an existing Beacon client that you trust.


Currently, Lighthouse and Teku support checkpoint syncing.


You can use any Beacon node that provides access to its HTTP API. In this example, we will show you how to use the free Infura service.


If you don't have an account already, start by heading to https://infura.io/register to create one.


You can use the free tier for checkpoint syncing, so all you will need to provide is an email address.


Once you are logged in, head to the ETH2 project page, and create a new project here using the Create New Project button. Anything you want can be named (for example, "RP Checkpoint Sync").


Now, click on the project and go to the Settings tab:


Here, there is a section called Keys. In this section, select Mainnet from the Endpoints dropdown.


Next, click on the small clipboard icon to the right of the long https://... string:


This is your personal, private access string for Infura's Beacon node. Clicking on the clipboard icon will copy it to your clipboard. You can then paste this in the terminal during rocketpool service config when it prompts you for a Checkpoint Sync Provider.


After that, your Beacon node will be configured to connect to Infura when it first starts up and instantly pull down the latest state of the chain!


Metrics Configuration

Rocket Pool comes with the ability to display a detailed dashboard showing metrics about your node's hardware health, system updates, your validator performance, your rewards, information about the overall Rocket Pool network, and more:


The next question in the service config interview will ask you if you want to enable this:

 Would you like to enable Rocket Pool's metrics dashboard? [y/n] 

Answer y if you would like to enable it, or n if you would rather disable it.


I recommend you utilize the dashboard to give you some visibility into your node's performance or problems.


If you choose to enable it, you will learn more about setting it up and how to use it in Part 8 of this guide.

63 views0 comments