Rocket Pool
Rocket Pool
Overview
Guides
Website
简体中文
English
Overview
Guides
Website
简体中文
English
Rocket Pool

Guides

Overview
The Saturn 0 Upgrade

rETH Staker Guide

Overview
Staking directly via Rocket Pool
Staking via a Decentralised Exchange on the Ethereum Network (Layer 1)
Staking via a Decentralised Exchange on Layer 2
Staking on behalf of a node

Node Operator Guide

A Node Operator's Responsibilities
Node Requirements & Choosing a Platform

Preparing a Local Node

Overview
Selecting Staking Hardware
Preparing a PC, Mini-PC or NUC
Preparing a Mac
Intro to Secure Shell (SSH)

Preparing a Server Node

Overview
Selecting a Hosting Provider
Preparing the Operating System

Securing Your Node

Securing Your Node
Tailscale

Installing Rocket Pool

Overview
Choosing your ETH Clients
Selecting a Rocket Pool Mode
Creating a Standard Rocket Pool Node with Docker
Creating a Native Rocket Pool Node without Docker

Configuring Rocket Pool

Overview
Configuring the Smartnode Stack (Docker/hybrid mode)
Configuring the Smartnode Stack (native)
Advanced Smartnode Configuration for Docker Mode

Provisioning your Node

Overview
Starting Rocket Pool
Creating a New Wallet
Importing/Recovering an Existing Wallet
Preparing your Node for Operation
Intro to the Command Line Interface
Specifying a Fallback Node
Fee Distributors and the Smoothing Pool
MEV, MEV-Boost & MEV Rewards

Creating or Migrating Minipools

Overview
Creating a new Minipool (Validator)
The Minipool Delegate
Converting a Solo Validator into a Minipool
Migrating a 16-ETH Minipool to 8-ETH
The Deposit Credit System

Monitoring & Maintenance

Overview
Monitoring your Node's Performance
Setting up the Grafana Dashboard
Smartnode Stack Alert Notifications
Checking for Updates
Backing Up Your Node
Masquerading as Another Node Address
Expiring Pre-Merge History
Pruning the Execution Client
Changing Execution or Consensus Clients
Moving from One Node to Another

Claiming Rewards

Overview
Claiming Node Operator Rewards
Distributing Skimmed Rewards

Participating in pDAO governance

Overview
The Protocol DAO
Participating in on-chain pDAO Proposals
Setting your Snapshot Signalling Address
Delegating Voting Power
Viewing the State of a Proposal
Voting on a Proposal
Creating a Proposal
Executing a successful proposal
Claiming Bonds and Rewards
Creating and Claiming a recurring treasury spend

Exiting your Minipools

Shut Down a Minipool
Rescuing a Dissolved Minipool
FAQ (WIP)

Testing Rocket Pool with the Hoodi Test Network

Practicing with the Test Network
Migrating from the Test Network to Mainnet

Running an Oracle DAO Node

The Rocket Pool Oracle DAO
Setting up an Oracle DAO Node
Testing your Oracle DAO Node
Monitoring your Oracle DAO Node
Oracle DAO Proposals

Legacy Guides

Upgrading to Smartnode v1.3.x
Migrating the Smartnode from Previous Beta Tests
The Atlas Update
Lower ETH Bond Minipools

Redstone & The Merge

The Rocket Pool Redstone Update
[Docker Mode] Guide to the Redstone Update and the Merge
[Hybrid Mode] Guide to the Redstone Update and the Merge
[Native Mode] Guide to the Redstone Update and the Merge

The Houston Upgrade

Overview
Getting Started with Houston
The Protocol DAO
Participating in Proposals
Stake ETH on Behalf of Node
RPL Withdrawal Address
Preparing a Raspberry Pi
📝 Edit this page on GitHub
Previous PageSelecting a Rocket Pool Mode
Next PageCreating a Native Rocket Pool Node without Docker

#Creating a Standard Rocket Pool Node with Docker

In this section, we will walk through the process of 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 Execution (formerly ETH1) client of your choice, or a connection to an existing client you already manage
  • A Consensus (formerly ETH2) client of your choice, or a connection to an existing client you already manage
  • A Validator client that will handle your Beacon Chain validation duties
  • (Optionally) a monitoring stack for capturing performance and health metrics

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

NOTE

The below instructions require you to use your system's terminal to enter and execute commands. If you are connected to the node machine via SSH, you are already doing this. If you are on the node machine and using a Desktop UI, you will need to open a terminal window to execute the following commands. Refer to your OS's instructions to learn how to do this if you are unfamiliar.

#Process Overview

At a high level, here's what is involved in installing Rocket Pool:

  1. Download the Rocket Pool command-line interface (CLI)
  2. Use the CLI to install the Smartnode stack
  3. Configure the Smartnode stack with an easy-to-use UI in the terminal
  4. Done!

#Before You Start

WARNING

If using Ubuntu, it is recommended that before installing Rocket Pool you double check that docker was not installed alongside the operating system.

The Ubuntu installer gets docker from the snap package manager, which will conflict with the version of docker installed by Smartnode.

Run snap list, and make sure docker was not installed.

For example, this is the output on a machine where docker is not installed:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

And here is the output if it was installed:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
docker  20.10.17       2746   latest/stable  canonical✓  -
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

If you see it in the snap list output, be sure to remove it with:

sudo systemctl stop snap.docker.dockerd.service

sudo snap remove --purge docker

After which, it is recommended that you reboot the machine (sudo systemctl reboot)

#Downloading the Rocket Pool CLI

The instructions for downloading the CLI vary based on your Operating System.

NOTE

You must perform the following instructions on the machine you will use for your Rocket Pool node. If you are not using a keyboard and monitor directly connected to your node machine, you will need to access it remotely (e.g. via SSH) and run these commands on it through that remote connection.

Linux
MacOS

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.

TIP

If you do not know your CPU architecture, you can run the following command to find it:

uname -m

The output of this command will print your architecture. Note that x86_64 is the same as x64 and amd64. Note that aarch64 is the same as arm64.

For x64 systems (most normal computers):

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

For arm64 systems:

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-arm64 -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. You should see output like this:

rocketpool --version
rocketpool version 1.5.0

TIP

If you see an error message like this,

-bash: /home/user/rocketpool: cannot execute binary file: Exec format error

it means that you downloaded the wrong version above. Please check if your system is x64 or arm64 using the command in the tip above, and download the appropriate version. If your system is neither of those, then you will not be able to run Rocket Pool.

#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 actually 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 (above some release notes for the latest version which will be printed at the end):

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

NOTE

Note that the Smartnode installer cannot install docker and docker-compose on all platforms automatically. 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

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

rocketpool service install -d

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

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

#Configuring Docker's Storage Location

By default, Docker will store all of its container data on your operating system's drive. In some cases, this is not what you want.

NOTE

If you are fine with this default behavior, skip down to the next section.

To do this, create a new file called /etc/docker/daemon.json as the root user:

sudo nano /etc/docker/daemon.json

This will be empty at first, which is fine. Add this as the contents:

{
  "data-root": "<your external mount point>/docker"
}

where <your external mount point> is the directory that your other drive is mounted to.

Press Ctrl+O, Enter to save the file, and Ctrl+X, Enter to exit the editor.

Next, make the folder:

sudo mkdir -p <your external mount point>/docker

Now, restart the docker daemon so it picks up on the changes:

sudo systemctl restart docker

After that, Docker will store its data on your desired disk.

#Configuring the Smartnode Stack

The next step in the installation process is to do an initial configuration of your node. Move on to the Configuring Rocketpool section for a walkthrough of this process.