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 PageThe Rocket Pool Oracle DAO
Next PageTesting your Oracle DAO Node

#Setting up an Oracle DAO Node

At a bare minimum, a standard Rocket Pool node runs the following:

  • The Smartnode CLI
  • The Smartnode API daemon
  • The Smartnode node daemon
  • The Smartnode watchtower daemon

Optionally, the node can also run the following components:

  • An Execution Client
  • A Beacon Node
  • A Validator Client
  • MEV-Boost
  • Prometheus
  • The Prometheus Node Exporter
  • Grafana

Each of these components can be run as Docker containers in the standard setup, as systemd services in the "Native Mode" setup, or run as externally-managed entities that the Smartnode can connect to via their respective API routes.

Conveniently, Oracle DAO nodes are the same as normal Rocket Pool nodes, but the watchtower daemon performs the supplemental Oracle DAO duties and there are more Prometheus metrics collected for performance monitoring purposes.

#Initial Node Setup

The best way to start is by following the standard setup instructions for a normal Rocket Pool node. That process will help you determine how you'd like to configure and run your node.

If you would like to run minipools (validators) on your node, please follow the normal node documentation from start to finish and return here when you're done.

If you do not intend to run minipools and instead will use it purely for Oracle DAO duties, you can skip all of the steps relating to staking RPL and minipool creation. The other steps such as node registration, establishing a good security posture, monitoring the node's health and performance, and updating the Smartnode after an update all still apply to you and you should review them carefully before proceeding. Return here when you've finished.

#Additional Oracle DAO Configuration

There are two additional settings you need to provision in order to satisfy your Oracle DAO responsibilities. Please select the mode you use to configure your node below from the tabs below.

(service config) Interactive UI
(service config) Headlessly
Direct Config File

Open the rocketpool service config TUI and go to the Smartnode and TX Fees section. Here, you will see two options at the bottom:

The Archive-Mode EC URL must be the HTTP endpoint of the RPC API for your Archive Execution Client. Note that if you are already using your Archive EC as your primary client in Externally-Managed mode, you can ignore this setting.

#Oracle DAO Smartnode Commands

The Smartnode CLI's odao command group is used to interact with the Oracle DAO contracts and duties on-chain:

NAME:
   rocketpool odao - Manage the Rocket Pool oracle DAO

USAGE:
   rocketpool odao command [command options] [arguments...]

COMMANDS:
   status, s             Get oracle DAO status
   members, m            Get the oracle DAO members
   member-settings, b    Get the oracle DAO settings related to oracle DAO members
   proposal-settings, a  Get the oracle DAO settings related to oracle DAO proposals
   minipool-settings, i  Get the oracle DAO settings related to minipools
   propose, p            Make an oracle DAO proposal
   proposals, o          Manage oracle DAO proposals
   join, j               Join the oracle DAO (requires an executed invite proposal)
   leave, l              Leave the oracle DAO (requires an executed leave proposal)

OPTIONS:
   --help, -h  show help

#status

The status command simply summarizes a few details about the Oracle DAO such as member count and proposal count:

The node is a member of the oracle DAO - it can create unbonded minipools, vote on DAO proposals and perform watchtower duties.

There are currently 8 member(s) in the oracle DAO.

There are 29 oracle DAO proposal(s) in total:
- 22 proposal(s) have passed and been executed
- 7 proposal(s) were cancelled, defeated, or have expired

#members

The members command prints detailed information about each member of the Oracle DAO, including their handle, their contact information, their node address, their RPL bond, and the last time they submitted a proposal for voting:

The oracle DAO has 8 members:

--------------------

Member ID:            kermit-2
URL:                  https://www.rocketpool.net
Node address:         0x04ddB06D1429578691F630B67A53916445DA38bE
Joined at:            31 Jul 21 23:32 EDT
Last proposal:        27 Sep 22 21:18 EDT
RPL bond amount:      5000.000000
Unbonded minipools:   0
...

#member-settings

member-settings shows the current values for each of the configurable parameters related to Oracle DAO membership:

ODAO Voting Quorum Threshold: 51.000000%
Required Member RPL Bond: 1750.000000 RPL
Max Number of Unbonded Minipools: 250
Consecutive Challenge Cooldown: 300 Blocks
Challenge Meeting Window: 900 Blocks
Cost for Non-members to Challenge Members: 1.000000 ETH

This command is described in more detail in the Oracle DAO Proposals section.

#proposal-settings

proposal-settings shows the current values for each of the configurable parameters related to proposals that the Oracle DAO can vote on:

Cooldown Between Proposals: 1h0m0s
Proposal Voting Window: 168h0m0s
Delay Before Voting on a Proposal is Allowed: 15m0s
Window to Execute an Accepted Proposal: 168h0m0s
Window to Act on an Executed Proposal: 168h0m0s

This command is described in more detail in the Oracle DAO Proposals section.

#minipool-settings

minipool-settings shows the current values for each of the configurable parameters related to minipools on the Rocket Pool network:

Scrub Period: 1h0m0s

#propose

The propose command is used to submit governance proposals that the rest of the Oracle DAO can vote on. These can involve changing a setting or modifying the Oracle DAO members (i.e., inviting or kicking other members).

This command is described in more detail in the Oracle DAO Proposals section.

#proposals

The proposals command is used to interact with existing Oracle DAO governance proposals. It can view them, rescind proposals that you made, vote on them, and execute them (if applicable) causing them to take effect after they have been approved by the other members:

NAME:
   rocketpool odao proposals - Manage oracle DAO proposals

USAGE:
   rocketpool odao proposals command [command options] [arguments...]

COMMANDS:
   list, l     List the oracle DAO proposals
   details, d  View proposal details
   cancel, c   Cancel a proposal made by the node
   vote, v     Vote on a proposal
   execute, x  Execute a proposal

OPTIONS:
   --help, -h  show help

This command is described in more detail in the Oracle DAO Proposals section.

#join / leave

The join and leave commands are used to join the Oracle DAO once you've been invited, or leave the Oracle DAO once the other members have approved your resignation request.

#Joining the Oracle DAO

#The RPL Bond

In order to join the Oracle DAO, your node wallet will need enough RPL in it to cover the required membership bond. This will be locked in Rocket Pool's vault as part of the joining process. The exact amount of RPL required for the bond will be determined at the time of your invitation, and will be communicated to you by the other Oracle DAO members prior to onboarding you.

NOTE

Unlike all other ETH and RPL rewards, the RPL bond is not sent to your node's withdrawal address upon exiting the Oracle DAO. It is sent back to your node wallet itself. Consider this as extra incentive to protect your node wallet from compromise.

#Accepting an Invitation

Once your node is set up and you have been invited to join the Oracle DAO by the existing members, you can use the rocketpool odao join command to accept the invitation. This will involve two transactions:

  • One to lock the RPL required for your bond
  • One to join the Oracle DAO when the bond has been received

Once you've joined, your watchtower daemon will automatically begin performing its required duties. You can verify this by looking at its logs (e.g. rocketpool service logs watchtower for standard Docker-based installations); the watchtower performs its loop of duties every 4 to 6 minutes, and you will notice a distinct change in its output once you've joined the Oracle DAO.

#Next Steps

Now that you've joined the Oracle DAO, take a look at the next section to learn how to test your node in this role.