Rocket Pool v3.0 Beta — Node Operator’s Guide

Jake Pospischil
Rocket Pool
Published in
9 min readOct 2, 2020

Introduction

So you want to run a smart node in the Rocket Pool v3.0 beta? This guide has you covered! You’re on your way to being one of the first to experience running a node in the Rocket Pool network, and earning rewards on not only your own stake, but 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 smart node docs.

At launch, the beta will feature 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!

Note: Running a node in the Rocket Pool network is a long-term commitment, just like running an Eth 2.0 validator. We want the beta to reflect real-world conditions, so please don’t run a node if you’re not prepared to keep it online 24/7, as this will harm the Eth 2.0 Pyrmont testnet, as well as the returns for Rocket Pool beta users.

Note: Please do not create more than 2 minipools under your node, as a consideration to other users trying to run validators on the Pyrmont testnet. Making a large number of validator deposits means a long activation queue, and everyone has to wait a long time to join in!

Note: This beta is running entirely on test networks, which means no real ETH is used at any point. DO NOT attempt to use real ETH at any point during the beta.

What Do I Need?

All you need to get started is a computer with an x86_64 processor (if you don’t know what that is, you probably don’t need to worry!) running some flavour of Unix (e.g. a Linux distribution or MacOS). You’ll need at least 16GB of RAM and an SSD hard drive with 200GB of free space, as well as 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.

If you don’t have access to a machine with the required specs, check out our handy guide to running Rocket Pool Smart Nodes on AWS.

Client Installation

First off, we’ll need to install the Rocket Pool smart node client. If you followed the AWS guide, skip this step. 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 with:

rocketpool service install

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 Eth 1.0 and Eth 2.0 client to run. If you like, you can use Infura instead of running an Eth 1.0 client; you’ll need to register for an account, create a project, and paste its ID in when prompted. Note that you may exceed daily request limits if using a free Infura account. For maximum stability, use Geth instead.

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 Eth 1.0 and Eth 2.0 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:

Rocket Pool client version: 1.0.0-beta.X
Rocket Pool service version: 1.0.0-beta.X

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

rocketpool service stats

Or, you can see how your Eth 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 Eth 1.0 and Eth 2.0 client 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. If you followed the AWS guide, you’ve done this already.

The ports to forward for your Eth 1.0 and Eth 2.0 clients respectively, are:

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

Note that Eth 2.0 clients use a variety of different ports by default, but Rocket Pool standardizes 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 participated in a previous beta, 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 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 Eth 1.0 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 (unless you’re using Infura)!

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

rocketpool node status

Then, you can 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 you’re getting set up ahead of the beta launch, stop here and come back later!

Finally, register your node with Rocket Pool:

rocketpool node register

You’ll be asked for your timezone location (which is detected automatically by default) to send to the network. This is optional and not used for any KYC purposes, 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 put that RPL to use by staking it with Rocket Pool:

rocketpool node stake-rpl

You’ll see a message telling you that you have an old RPL balance, and asking whether you want to swap it for new 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.

If you deposit 32 ETH, your minipool will submit its balance to the beacon chain immediately, so it can start staking ASAP. Once it makes it to the front of the minipool queue and 16 user-deposited ETH gets assigned to it, the excess you deposited will become available for refund. When that happens, you can claim it with:

rocketpool minipool refund

If you deposit 16 ETH, your minipool will need to wait in the queue before it can submit its balance to the beacon chain.

Next, you’ll see the current network node commission rate — which is based on node supply & demand — along with a suggested minimum rate you will accept for your deposit. This is sent with your deposit transaction to protect you against sudden drops in the commission rate before it gets mined — if this happens, your deposit will simply fail. If you don’t like the suggested rate, you can enter a custom one, but your transaction may not get mined.

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 even if it has 32 ETH in it. 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 (around 10 days at the time of writing).

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

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 10 points to you for making it this far! If you have beta 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!

--

--