This guide offers a bare-bones introduction to getting up and running with Nimbus and Rocket Pool -- a trustless staking pool which matches those who wish to stake some ETH with those who wish to operate a node.
Nota Bene: Rocket Pool is not only for node operators. Staking in Rocket Pool as a regular user is as easy as navigating to the Rocket Pool website, entering an amount of ETH to stake, and clicking Start! When you stake, you will immediately receive an amount of rETH with equivalent value to the ETH you deposit. This allows anyone, no matter how technical or wealthy, to help contribute to the decentralisation of the network.
It assumes you are familiar with the basics of how Rocket Pool works. If that's not the case, we recommend reading through the following resources first:
- Our introductory post
- Rocket Pool explainer series: part 1
- Rocket Pool explainer series: part 2
- Beta Finale announcement
If you're a Raspberry Pi user, we highly recommend this wonderful and complementary resouce by community member Joe Clapis.
Note: Rocket Pool is currently running their Beta Finale on Pyrmont testnet, so this is the perfect time to get up to speed and play around with their stack.
If you're using Ubuntu, Debian, CentOS or Fedora, please skip this step.
Note that Docker Desktop for Mac and Windows already include Compose, which means that if you're using a Mac or Windows device you can ignore the second link.
Background: The Rocket Pool smart node software stack provides all of the necessary infrastructure for running a node in the Rocket Pool network: it contains a smart node client, which provides a command-line interface for managing a smart node either locally or remotely (over SSH) and a smart node service; which provides an API for client communication and performs background node tasks (such as validator duties).
You can install the smart node client with either
To see which tool you have available, run:
curl --version wget --version
Once you know whether you have
wget available, you can find the relevant command for your operating system here.
For example, if you're running MacOS with
curlinstalled, you should run:
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
To install the smart node service, run:
rocketpool service install
Note: If you’re using Ubuntu, Debian, CentOS or Fedora, the above will automatically install docker engine and docker-compose on your system. If automatic dependency installation is not supported on your platform (this is the case for MacOS for example), run
rocketpool service install -dinstead.
Now you're ready to configure the smart node client:
rocketpool service config
You’ll be prompted to select an eth1 and eth2 client to run. If you like, you can use Infura instead of running an eth1 client.
The default is to select a random client for you, so make sure you select Nimbus!
To start Rocket Pool, open a new shell session and run:
rocketpool service start
You should see the following:
Starting rocketpool_eth1 ... done Starting rocketpool_api ... done Starting rocketpool_eth2 ... done Starting rocketpool_watchtower ... done Starting rocketpool_node ... done Starting rocketpool_validator ... done
Note: Docker will make sure that Rocket Pool keeps running, even if Nimbus crashes or you restart your computer.
To ensure Nimbus is running correctly, run:
rocketpool service logs eth2
Nimbus will print lines that look like this:
eth2_1 | INF 2021-02-21 06:35:43.302+00:00 Slot start topics="beacnde" tid=1 file=nimbus_beacon_node.nim:940 lastSlot=682377 scheduledSlot=682378 delay=302ms641us581ns peers=47 head=f752f69a:745 headEpoch=23 finalized=2717f624:672 finalizedEpoch=21 sync="PPUPPPDDDD:10:2.0208:1.5333:01d20h29m (736)" eth2_1 | INF 2021-02-21 06:35:43.568+00:00 Slot end
The time towards the end (
01d20h29m) tells you how long Nimbus thinks it will be until you're fully synced.
Now that Nimbus is syncing, you're ready to create a Rocket Pool wallet to create and hold your validator keys:
rocketpool wallet init
You'll need to find your node address in order to be able to request Goerli ETH:
rocketpool node status
Request 35 Goerli ETH from the faucet to the address you found in the previous step.
Note: you'll need slightly more than 32 ETH since you'll also need to interact with the Rocket Pool smart contracts to request RPL.
You'll also need some RPL. To request RPL directly from the Rocket Pool faucet, run:
rocketpool faucet withdraw-rpl
Now you're finally ready to register your node with Rocket Pool:
rocketpool node register
The final step is to deposit 32 ETH to initialise your validator (don't worry you'll get half of it back):
rocketpool node deposit
Note: You’ll see a prompt that will ask you to select the amount of ETH you wish to deposit. Select 32 ETH to ensure you can start staking ASAP. At some point (shouldn't take more than 24 hours) you'll be assigned an additional 16 ETH to manage from Rocket Pool stakers: at this stage you'll be able to ask for a 16 ETH refund using
rocketpool minipool refund.
That’s it! You’re officially part of the Rocket Pool network!
Tip: Once Nimbus is synced, you'll be able to check on the status of your minipool by running:
rocketpool minipool status
Node Operator’s Guide: https://medium.com/rocket-pool/rocket-pool-v2-5-beta-node-operators-guide-77859891766b
Smart node docs (for all things documentation related): https://rocket-pool.readthedocs.io/en/latest/smart-node/introduction.html
Joe Clapis' guide (Excellent resource for Pi users): https://github.com/jclapis/rp-pi-guide/blob/main/Overview.md
Rocket Pool's discord