Smart Node Software

Our smart node software aims to make staking as a node operator in Rocket Pool an easy and flexible process, with some really cool scaling and monitoring options provided out of the box. Our aim is to give casual node operators the tools to run and manage their node easily, and at the same time allow power users to create some truly mind-boggling redundancy, scaling and monitoring for their staking nodes.

Initially only a CLI will be available with the above GUI coming later for home users.

Installing

To install the smart node software, only a single terminal command will need to be run. This will install your ETH1 and ETH2 clients of choice and configure your node to get up and running. After installation, a Rocket Pool CLI will be available for your node. This will allow it to register with the network, deposit ETH/RPL and begin receiving ETH from regular users who are not running a node. For home users who wish to run a node on their own computer, this CLI package will become bundled with a GUI to make things easier. Only the CLI will be available during our upcoming betas, with the GUI coming at a later date.

Monitoring

With staking in ETH2 requiring both ETH1 and ETH2 clients, it can be a little daunting to know exactly what’s going on in your server. Out of the box, we’ll be providing users with some command line monitoring to help them view CPU, Memory & Network usage of their node. All users will also have the option to follow live logs of their ETH1 & ETH2 clients and our own minipools that are running on it.

Advanced monitoring for your smart node using Prometheus and Grafana, coming soon!

Shown above, we’re also working on some highly customised monitoring for our nodes with a graphical interface that will be available for all users who wish to enable it. This will be part of our second beta later in the year.

The Stack

The software stack that runs the smart node is built using docker containers. There are many benefits to using containers, but one of the biggest is portability — we can create an environment where each process in the stack runs the same no matter which server or laptop they are running on.

The default stack for our smart node software. Note that ETH1 and ETH2 clients are configurable on install.

Above, you can see the design of our default smart node software stack from the ground up. Node operators will be able to choose their ETH1 and ETH2 client upon install.

In the “Validators” segment above, you can see that this node has made 3 x 16 ETH deposits on their node, which has created 3 minipool containers (our type of validator). Each of these validators contains 16 ETH from the node operator and 16 ETH which has been matched from users who are not running a node and have simply deposited it to the Rocket Pool network for assignment to node operator.

A node operator can create as many validators as they want on a single node, but keep in mind that the more validators are on a node, the more resources are required for that node, mostly in the way of CPU.

Since a node can have many validators on it, all communication from these validators to the ETH1 and ETH2 clients is sent through Traefik, a reverse proxy / load balancer. What this creates is an extremely flexible setup that can add scaling and load balancing abilities to your node — we’ll go over just some of these possible setups below.

Scaling

This is where things get really fun. Rocket Pool’s smart node software stack is built to allow advanced scaling / load balancing options out of the box. To show exactly what’s possible, we’ll cover some of these configurations for each experience level, from your standard user to your advanced power user.