Smart Node CLI Package

If you want to stake your own ETH and run a node, you can do so in the Rocket Pool network with as little as 16 ETH. This is half the amount required to stake and run your own node outside of Rocket Pool. When you run your own node with us, your 16 ETH is matched up with user deposits who don’t run a node and the resulting 32 ETH is used to stake with Casper. Since you’ll be staking your own ETH, you can also get a higher return by receiving extra ETH via a network determined fee which is charged to those users who are staking on your node. Half the ETH required and a higher return — What’s not to like? :)

The Smart Node CLI is the main tool that node operators will use to interact with the Rocket Pool network and run their node. We’ve been hard at work on implementing a host of features and are very close to completing a first version, ready to release alongside the next Rocket Pool beta.

Some of the initial commands available to a node operator in the network.

Running a smart node in the Rocket Pool network isn’t just like running a node outside, you’ll need to install this smart node CLI package which has seen a lot of progress in recent weeks. This package allows you to deposit ETH into Rocket Pool’s smart contracts, vote on staking fees the networks nodes should charge + more. It will also add several daemons, which will allow your node to become a smart node by enabling communication with the Rocket Pool smart contracts, manage multiple validators on a single node and integrate with the beacon chain as well.

Available CLI commands are broken down into a few modules — here’s what they all do:

Node — handles initial node setup and registration. Node operators can initialise their node with an Ethereum account, register it with the Rocket Pool network, change its timezone location, check on its status, and withdraw funds (both ETH and RPL) from their smart node contract back to their account.

Deposit — handles node operator deposits into the Rocket Pool network, which create minipools (validators) for user deposits to be assigned to. Node operators can reserve a deposit (locking in an ETH:RPL ratio for 24 hours), complete or cancel it, view the status of their current reservation, and check on the current network ETH:RPL ratio.

Minipool — handles the minipools created by the node from deposits it has made. Node operators can check the status of all of their minipools, and withdraw funds (both ETH and RPL) from them if available.

Fee — handles voting on the network node operator fee. Node operators can check the current network fee, and set a target fee to vote on. Once a target fee is set, the CLI will automatically submit votes to raise or lower the network fee accordingly during check in.

Service — handles registering the CLI daemons with the operating system. Node operators can install and enable the daemons, start and stop them, check on their status, and run them manually if required.

There are currently two separate daemons: a smart node daemon for communicating with the Rocket Pool network, and a validator daemon for performing validation duties on the Ethereum beacon chain.

The smart node daemon is responsible for checking in with the Rocket Pool network periodically to signal node liveness. This also involves reporting current server load information (retrieved from the OS) and submitting network node operator fee votes.

The validator daemon currently submits activity messages to our beacon chain simulator to simulate validation duties — this is placeholder functionality which will be removed or replaced once beacon chain node software is available to use. It also periodically checks staking durations for active validators, and logs them out when they are ready.

The Smart Node CLI is written in Go and the repo containing the source code is currently private — our plan is to publish only compiled binaries for now, but to open-source this work later, once it’s been stress-tested in the wild and has stabilised.