Rocket Pool — Node Quickstart Guide

David Rugendyke
Rocket Pool
Published in
9 min readJul 30, 2021
Want to get up and running quickly as a node operator in Rocket Pool? Follow this guide :)

Introduction

So you want to run a smart node in the Rocket Pool decentralised staking protocol? This guide has you covered! You’re on your way to being an independent node operator, and earning rewards on not only your own stake, but also getting a commission on user ETH assigned to your node too.

If you just want to stake your ETH in the easiest manner without running a node, check out our Staker’s Guide instead.

This guide is a quick overview of the installation and setup procedure — for more detailed documentation, check out the Rocket Pool docs repository.

If you’re new to Rocket Pool or want a recap on us, please read our explainer series linked above to get a great overview of what we’re about and how the protocol works from a node operators perspective.

Before we begin

As a node operator, you’ll be using a CLI (command line) client for managing your node, so a basic familiarity with a terminal is assumed. A GUI client will be coming at a later stage, so if the terminal scares you, hold tight for now!

Running a node in the Rocket Pool protocol is a long-term commitment until withdrawals are enabled from the beacon chain.

Testnet or Mainnet

For those of you who wish to try out Rocket Pool on our Prater testnet first before using mainnet, that’s perfectly fine.

If you are using this guide to get try out running a node on our Prater testnet, you will need testnet ETH for the Goerli network to make deposits — instructions for this are below. DO NOT attempt to use real ETH at any point if using the testnet.

What Do I Need?

All you need to get started is a computer running some flavour of Unix (e.g. a Linux distribution or MacOS). You’ll need at least 16GB of RAM, an SSD hard drive with 200GB of free space for the testnet or if using mainnet, we’d recommend a 2TB drive. You will also need root (administrator) access to your machine.

Running a node on Windows 10 WSL is highly discouraged due to time synchronization issues, which affect Eth 2.0 clients. Running a node on WSL is not supported — do so at your own risk.

Client Installation

First off, we’ll need to install the Rocket Pool smart node client. This can be done manually or via cURL or wget; try the following commands to see which tools you have available:

curl --version
wget --version

(if you don’t have these tools installed, you’ll see something like command not found: curl). Now, depending on what you’re working with, run one of the following commands to install the client:

Linux (cURL):

curl -L https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-amd64 --create-dirs -o ~/bin/rocketpool && chmod +x ~/bin/rocketpool

Linux (wget):

mkdir -p ~/bin && wget https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool && chmod +x ~/bin/rocketpool

MacOS (cURL):

curl -L https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-darwin-amd64 -o /usr/local/bin/rocketpool && chmod +x /usr/local/bin/rocketpool

MacOS (wget):

wget https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-darwin-amd64 -O /usr/local/bin/rocketpool && chmod +x /usr/local/bin/rocketpool

Then simply start a new shell session (or run source .profile). If you use zshell, you may need to modify your .zshrc or .zprofile and add ~/bin to your PATH first.

Once that’s done, run rocketpool — you should see an ASCII Rocket Pool logo and a list of options if everything worked. If not, try logging out of your computer and back in.

Service Installation

Now, we’ll install the smart node service proper using the commands below. Be sure to install to the correct network, be that mainnet or our prater testnet.

Mainnet

rocketpool service install

Testnet

rocketpool service install -n prater

If you’re using Ubuntu, Debian, CentOS or Fedora, this will automatically install docker engine and docker-compose on your system. Otherwise, you’ll see a notice telling you to install them manually — do that, then try rocketpool service install -d.

Next, restart your terminal (so that updated user permissions for interacting with Docker can take effect) and configure the service with:

rocketpool service config

You’ll be prompted to select an execution client (EL) and consensus client (CL) to run. For example, you may choose Geth as an EL client and Lighthouse as an CL client. The smart node stack supports just about any combination of these clients.

Finally, start the service with:

rocketpool service start

Docker will make sure that it keeps running, even if it crashes or you restart your computer — until you explicitly stop it, it will continue to work. It will take some time to sync the EL and CL chains, but you can still create a wallet to hold your node account and validator keys in the meantime.

Now, check your client and service versions to make sure everything is correct:

rocketpool service version

You should see something like this. Note that the current network name and clients will be different depending on what network you’ve installed for and which clients you’ve chosen.

Your Smartnode is currently using the Prater Test Network.Rocket Pool client version: 1.x
Rocket Pool service version: 1.x
Selected Eth 1.0 client: Geth (Locally managed)
Image: ethereum/client-go:v1.x
Selected Eth 2.0 client: Lighthouse (Locally managed)
Image: sigp/lighthouse:v4.x

You can check on the resource consumption of the smart node service with:

rocketpool service stats

Or, you can see how your Ethereum clients are going (e.g. to check sync status) with:

rocketpool service logs eth1
rocketpool service logs eth2

(Both of these commands will run in real-time until you press Ctrl-C to stop.)

Note: You may see your validator service restarting continually until you have an actively staking minipool. This won’t affect your node’s performance and can safely be ignored.

Forwarding Peer Discovery Ports

Optionally, you may want to forward ports for your EL and CL clients p2p peer discovery from your router. You don’t need to do this, but it might increase your sync times since you can potentially connect to more nodes on the network.

The ports to forward for your EL and CL clients respectively, are:

30303 (TCP & UDP)
9001 (TCP & UDP)

Note that Ethereum clients use a variety of different ports by default, but Rocket Pool standardises them to 9001, to make it easier to configure the service.

The method for forwarding ports depends on your router, and is not covered in this guide. Consult the documentation for your specific router model.

Registering Your Node

Before you register with Rocket Pool, you’ll need to create a wallet to hold your node account and validator keys. If you have participated in a previous Rocket Pool beta or testnet, first remove your old wallet and validator keys:

sudo rm ~/.rocketpool/data/wallet
sudo rm -r ~/.rocketpool/data/validators

Then, go ahead and create a fresh wallet:

rocketpool wallet init

You’ll be prompted for a password to secure your wallet with. Then, you’ll see your wallet’s backup mnemonic phrase. Record this somewhere very secure and private, as it will restore your wallet along with all its keys (even ones created in the future) if you lose it. When you’re done, you’ll see the address of your newly created node account.

At this point, you’ll need to wait for your EL client to sync before you can go any further. Let the service logs run and come back later, this could take a day or two.

Once your EL client is synced, you’ll need some ETH and RPL to register your node with Rocket Pool and start making deposits. Find your node address with:

rocketpool node status

Mainnet

If you are installing the smart node for the Ethereum mainnet, you’ll need have real ETH available in your nodes account to register it with our smart contracts. You will also need our RPL protocol token to create minipool validators.

Testnet

If you are installing the smart node for our Prater testnet, you’ll need to get your hands on some Goerli ETH from one of the following faucets:

Once you request your Goerli ETH, wait for your transaction to be mined and confirm that your balance has updated:

rocketpool node status

Now you can request some RPL from the faucet directly via the Rocket Pool CLI:

rocketpool faucet withdraw-rpl

Note that this requires a fee of 0.5 Goerli ETH in order to prevent abuse of the faucet. You will receive an amount of old RPL, which can be exchanged for the new RPL token and staked in order to launch minipools.

If on mainnet or testnet, you’ll now need to register your node with Rocket Pools smart contracts:

rocketpool node register

You’ll be asked for your timezone location (which is detected automatically by default) to send to the network. This is purely optional and just to keep the Rocket Pool website network map up to date. If you’re running a remote server, use the server’s timezone location. If you want to abstain, just enter something like Hidden/Hidden.

That’s it! You’re officially part of the Rocket Pool network!

Making a Deposit

Now, let’s stake some RPL on our nodes account. This will allow us to create minipool validators. For more information on this, please read our detailed documentation here.

rocketpool node stake-rpl

If you are using our v1 RPL token, you’ll see a message telling you that you have an old RPL balance, and asking whether you want to swap it for new v2 RPL before staking. Go ahead and confirm that, and then choose an amount of RPL to stake. If you’re unsure, just select “Your entire RPL balance”.

Next, we’ll make a deposit into Rocket Pool:

rocketpool node deposit

You’ll be prompted to select an amount of ETH to deposit. We currently support deposits of either 8 ETH or 16 ETH.

Once complete, you’ll see a message indicating that the deposit was successful, along with the address of your newly created minipool!

Managing Minipools

You can check up on your minipools and view all of their important details at any time with:

rocketpool minipool status

Don’t panic if your minipool is still appearing under the “Prelaunch” list. It can take a few minutes for your node to notice that you have a minipool waiting to launch, and generate & submit a validator key for it.

If your minipool appears under the “Staking” list, congratulations, its deposit has been sent to the beacon chain and it will start validating soon! The smart node service will be waiting patiently, ready to perform validation duties as soon as it can.

If you want to view more detailed information about your validator, we recommend using beaconscan or beaconcha.in. Simply copy and paste your Validator pubkey from the rocketpool minipool status output into the search field on either site to see how it’s doing. Don’t worry if it doesn’t show up yet, it can take a few hours for the beacon chain to see it. Once it gets spotted, it can also take a long time for it to be activated and begin validating.

That’s it for now, just sit back and watch your validator balance tick up, either by running rocketpool minipool status periodically, or checking up on it on beaconcha.in. If at any time you suspect there is a problem with your validators (e.g. if their balance is going down), check on the beacon and validator logs:

rocketpool service logs eth2
rocketpool service logs validator

Set a new node withdrawal address

By default, the withdrawal address is the nodes address which is created when you install the smart node stack. If you wish to change this to an external wallet, you can do this quite easily following the guide on our documentation repository.

More, More!

That’s all for this guide. If you want to see what else the smart node can do, don’t forget to check out the smart node docs. They break down all of the available commands for you, and provide a reference at the end.

Questions or just say hello!

Well 20 points to you for making it this far! If you have questions, feedback, bug reports or want to know a bit more about us, why not swing by for a chat and say G’day! You can view our website or have a chat with us in our chat room that anyone can join. If chat rooms aren’t your thing, we’re also on Twitter!

--

--