Rocketpool client(s) and file(s) (hybrid configuration, native mode)
Rocketpool configuration
Rocketpool implementation
├── Service Users
│ ├──
│ └──
├── clients
│ ├── /usr/local/bin/rocketpool-cli (rocketpool client)
│ └── /usr/local/bin/rocketpool-daemon (rocketpool daemond client)
├── data & companion scripts
│ ├── /srv/rocketpool (rocketpool service data)
│ │ ├── data (rocketpool data)
│ │ ├── node-log.sh (rp-node.service log script)
│ │ ├── restart-vc.sh (companion script)
│ │ ├── stop-validator.sh (companion script)
│ │ ├── user-settings.yml (rocketpool configuration)
│ │ └── watchtower-log.sh (rp-watchtower.service log script)
│ └── /rocketpool-validator (rocketpool validator data)
└── services
├── /etc/systemd/system/rp-node.service
├── /etc/systemd/system/rp-watchtower.service
└── /etc/systemd/system/.service
Install Rocketpool service
-
Create a Rocketpool service user
-
Create a rocketpool service User
sudo useradd --system --no-create-home --shell /bin/false rocketpool
-
Add
server user
into rocketpool groupsudo usermod -aG rocketpool myserveruser
Get <Server user> by whoami
, if needed.
-
-
Create directories for Rocketpool client's data
-
Root folder
sudo mkdir -p /srv/rocketpool
-
Validators data directory with proper permissions
sudo mkdir -p /srv/rocketpool/data/validators && sudo chmod 775 /srv/rocketpool/data/validators
-
Reward trees Data directory
sudo mkdir /srv/rocketpool/data/rewards-trees
-
Custom keys Data directory
sudo mkdir /srv/rocketpool/data/custom-keys
-
-
Download Rocketpool clients
Rocketpool clients should be downloaded from the official Rocketpool Github.
-
Download latest Rocketool client (linux-amd64 version)
wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/downloads/rocketpool
-
Download latest Rocketool daemon client (linux-amd64 version)
wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-daemon-linux-amd64 -O ~/downloads/rocketpoold
-
-
Copy clients to targeted locations
sudo cp rocketpool /usr/local/bin && sudo cp rocketpoold /usr/local/bin
-
Set clients permissions
-
sudo chown rocketpool:rocketpool /usr/local/bin/rocketpool
-
sudo chown rocketpool:rocketpool /usr/local/bin/rocketpoold
-
sudo chmod +x /usr/local/bin/rocketpool
-
sudo chmod u+sx,g+sx,o-rwx /usr/local/bin/rocketpoold
-
-
Remove downloaded clients files
rm ~/downloads/rocketpool && rm ~/downloads/rocketpoold
-
Configurate Rocketpool Node service
Define
rp-node.service
servicesudo nano /etc/systemd/system/rp-node.service
Copy the configuration below into the
rp-node.service
service file[Unit] Description=rp-node After=network.target [Service] Type=simple User=rocketpool Restart=always RestartSec=5 ExecStart=/usr/local/bin/rocketpoold --settings /srv/rocketpool/user-settings.yml node [Install] WantedBy=multi-user.target
Save and Exit the file by pressing
ctrl
+x
, theny
.Define log script for
rp-node.service
- Open
node-log.sh
log filesudo nano /srv/rocketpool/node-log.sh
Copy the code below into the file
#!/bin/bash journalctl -u rp-node -b -f
Save and Exit the file by pressing
ctrl
+x
, theny
. - Set running permission for
node-log.sh
sudo chmod +x /srv/rocketpool/node-log.sh
Note: Log can be watched with
sudo /srv/rocketpool/node-log.sh
command
- Open
-
Configurate Rocketpool Watchtower service
Define
rp-watchtower.service
sudo nano /etc/systemd/system/rp-watchtower.service
Copy the configuration below into the
rp-watchtower.service
service file[Unit] Description=rp-node After=network.target [Service] Type=simple User=rocketpool Restart=always RestartSec=5 ExecStart=/usr/local/bin/rocketpoold --settings /srv/rocketpool/user-settings.yml watchtower [Install] WantedBy=multi-user.target
Save and Exit the file by pressing
ctrl
+x
, theny
.Define log script for
rp-watchtower.service
- Open
watchtower-log.sh
log filesudo nano /srv/rocketpool/watchtower-log.sh
Copy the code below into the file
#!/bin/bash journalctl -u rp-watchtower -b -f
Save and Exit the file by pressing
ctrl
+x
, theny
. - Set running permission for
node-log.sh
sudo chmod +x /srv/rocketpool/watchtower-log.sh
Note: Log can be watched with
sudo /srv/rocketpool/watchtower-log.sh
command
- Open
-
Configurate a validator service for validators controlled by Rocketpool
Validator service controlled by Rocketpol is same as Solo validator, only with Rocketpool data placed in its config file.
:
:
Create a new rocketpool validator user
sudo useradd --system --no-create-home --shell /bin/false rocketpool-validator
Add validator user into
rocketpool
user groupsudo usermod -aG rocketpool rocketpool-validator
Create a directory for the validator data
sudo mkdir /var/lib/ethereum/prysm/rocketpool-validator
Set permissions for the directory
sudo chown -R rocketpool-validator:rocketpool-validator /var/lib/ethereum/prysm/rocketpool-validator
Define
rocketpool-validator.service
filesudo nano /etc/systemd/system/rocketpool-validator.service
Copy the configuration below into the
prysmvalidator-rp.service
service file[Unit] Description=Prysm Consensus Client Rocketpool (Mainnet) Wants=network-online.target After=network-online.target [Service] User=prysmvalidator-rp Group=prysmvalidator-rp Type=simple Restart=always RestartSec=5 EnvironmentFile=/srv/rocketpool/data/validators/rp-fee-recipient-env.txt ExecStart=/usr/local/bin/validator \ --datadir=/var/lib/prysm/validator-rp \ --wallet-dir=/srv/rocketpool/data/validators/prysm-non-hd \ --wallet-password-file=/srv/rocketpool/data/validators/prysm-non-hd/direct/accounts/secret \ --graffiti="" \ --suggested-fee-recipient ${FEE_RECIPIENT} \ --enable-builder \ --accept-terms-of-use [Install] WantedBy=multi-user.target
Save and Exit the file by pressing
ctrl
+x
, theny
.Create additional directories
-
sudo mkdir -p /srv/rocketpool/data/validators/prysm-non-hd/direct/accounts
-
sudo chown -R rocketpool:rocketpool /srv/rocketpool/data/validators/prysm-non-hd
-
sudo chmod -R 775 /srv/rocketpool/data/validators/prysm-non-hd
-
Guide can be created on request.
Guide can be created on request.
Guide can be created on request.
-
Define alias for Rocketpool access
- Open
~/.profile
filesudo nano ~/.profile
- Place the code below at the end of the file
Save and Exit the file by pressingalias rocketpool="rocketpool -d /usr/local/bin/rocketpoold -c /srv/rocketpool"
ctrl
+x
, theny
. - Process the change
source ~/.profile
- Open
-
Configure Rocketpool companion scripts
Companion scripts allows Rocketpool client to process certain operations automatically, if necessary.
Restarting validator instance
- Download the companion script
sudo wget https://github.com/rocket-pool/smartnode/raw/release/install/scripts/restart-vc.sh -O /srv/rocketpool/restart-vc.sh
- Modify the downloaded file for your validator service
Open the file
sudo nano /srv/rocketpool/stop-validator.sh
Replace
#sudo systemctl restart lighthouse-validator
at the last line for:sudo systemctl restart rocketpool-validator
Do not forget remove
#
at the start. Save and Exit the file by pressingctrl
+x
, theny
. - Allow execution
sudo chmod +x /srv/rocketpool/restart-vc.sh
- Download the companion script
Stoping validator instance
- Download the companion script
sudo wget https://github.com/rocket-pool/smartnode/raw/release/install/scripts/stop-validator.sh -O /srv/rocketpool/stop-validator.sh
- Modify the downloaded file for your validator service
Open the file
sudo nano /srv/rocketpool/stop-validator.sh
Replace
#sudo systemctl stop lighthouse-validator
at the last line for:sudo systemctl stop rocketpool-validator
Do not forget remove
#
at the start. Save and Exit the file by pressingctrl
+x
, theny
. - Allow execution
sudo chmod +x /srv/rocketpool/stop-validator.sh
- Download the companion script
Set up passwordless access
- Request
sudo visudo -f /etc/sudoers.d/rocketpool
to open the configuration filePlace the code below into the file
Cmnd_Alias RP_RESTART = /usr/bin/systemctl restart rocketpool-validator Cmnd_Alias RP_STOP = /usr/bin/systemctl stop rocketpool-validator rocketpool ALL=(ALL) NOPASSWD: RP_RESTART, RP_STOP
-
Configurate Rocketpool native mode
Launch service configuration tool
rocketpool service config
And follow the documentation
Reload Daemon
sudo systemctl daemon-reload
Start the services
sudo systemctl enable rp-node rp-watchtower
Set automatic launch on system startup
sudo systemctl start rp-node rp-watchtower
Generate rocketpool wallet
NOTE: It's recommended to access the device locally to generate the seed
Enable access to the directory for server user
sudo chown -R myserveruser:myserveruser /srv/rocketpool/data
- Unlink the server to the internet
Generate the wallet
and go through the process of generating the seed and walletrocketpool wallet init
Reboot PC
$sudo reboot
- Connect the server back to the internet
- Now you can safely connect over SSH again
Check wallet status
and copy address for an option to paste it in next steprocketpool wallet status
Retrun permision back to
rocketpool
usersudo chown -R rocketpool:rocketpool /srv/rocketpool/data
Set temporary permissions
- $
sudo usermod -aG rocketpool myserveruser
- $
sudo usermod -aG myserveruser rocketpool
- $
cd /srv/rocketpool/data/
- $
sudo chmod g+r password
(temporary, it will be returned back tosudo chmod 600 password
later) - $
sudo chmod g+r wallet
(temporary, it will be returned back tosudo chmod 600 wallet
later)
- $
Set UMASK, if needed
By default, your system will typically come with a umask configuration that will strip the +w bit from the group permissions whenever the node daemon creates a new folder. This is problematic for several consensus clients, because they will actually write things such as lock files or other metadata into the directories that the Smartnode creates when it generates new validator keys during a minipool deposit.
To combat this and ensure your VC works correctly, please relax your umask settings. For example, instead of
0022
, you should consider setting it to0002
for the rp user.Guide: https://www.howtogeek.com/812961/umask-linux/
Choosing Distributor / Smoothing pool option
- $
rocketpool node status
- check fee distributor's address - $
rocketpool node initialize-fee-distributor
- fee distributor initialization - $
rocketpool node distribute-fees
- request fees distribution
- $
rocketpool node join-smoothing-pool
- $
rocketpool node leave-smoothing-pool
- $
rocketpool node claim-rewards
- $
Reload daemon
sudo systemctl daemon-reload
Launch Rocketpool services
-
sudo systemctl start rp-node rp-watchtower rocketpool-validator
Check Rocketpool services
systemctl status rp-node rp-watchtower rocketpool-validator
The VC will fail to start until you make a new Rocket Pool minipool (described later in the guides) because these files won't be created until that time, but the Beacon Node will be able to sync properly.
Monitor services
journalctl -f -u rp-node -u rp-watchtower
journalctl -f -u rocketpool-validator
-
Prepare Rocketpool node
guides/node/prepare-node- $
rocketpool node status
- $
rocketpool node register
- Whitelist HW wallet for RPL staking:
$
rocketpool node add-address-to-stake-rpl-whitelist <wallet>
- Setting Withdrawal wallet: $
rocketpool node set-withdrawal-address <wallet>
→ https://stake.rocketpool.net/withdrawal/ - Setting your Voting Delegate Address: $
rocketpool node set-voting-delegate <wallet>
- $
Create a rocketpool validator
guides/node/create-validator- Stake RPL - /stake-behalf
- $
rocketpool node deposit
Monitor
- $
rocketpool node status
- $
journalctl -fu rp-node.service
- $
journalctl -fu rp-watchtower.service
- $
journalctl -fu prysmvalidator-rp
- $
Remove option to read wallet and password files for the group
- $
cd /srv/rocketpool/data/
- $
sudo chmod 600 password
- $
sudo chmod 600 wallet
- $
Update Rocketpool service
-
Check version of running Rocketpool client
rocketpool -v
-
Download Rocketpool clients
Rocketpool clients should be downloaded from the official Rocketpool Github.
-
Download latest Rocketool client (linux-amd64 version)
wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/downloads/rocketpool
-
Download latest Rocketool daemon client (linux-amd64 version)
wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-daemon-linux-amd64 -O ~/downloads/rocketpoold
-
-
Stop Rocketpool services
- If preferred, you can wait for a moment after published attestation(s)
journalctl -fu rocketpool-validator
Stop Rocketpool services
sudo systemctl stop rp-node rp-watchtower rocketpool-validator
Check state
systemctl status rp-node rp-watchtower rocketpool-validator
- If preferred, you can wait for a moment after published attestation(s)
-
Copy clients to targeted locations
sudo cp rocketpool /usr/local/bin && sudo cp rocketpoold /usr/local/bin
-
Set clients permissions
-
sudo chown rocketpool:rocketpool /usr/local/bin/rocketpool
-
sudo chown rocketpool:rocketpool /usr/local/bin/rocketpoold
-
sudo chmod +x /usr/local/bin/rocketpool
-
sudo chmod u+sx,g+sx,o-rwx /usr/local/bin/rocketpoold
-
-
Start Rocketpool services
sudo systemctl start rp-node rp-watchtower rocketpool-validator
-
Check state of running
systemctl status rp-node rp-watchtower rocketpool-validator
Monitor logs
journalctl -fu rp-node.service
journalctl -fu rp-watchtower.service
journalctl -fu rocketpool-validator
-
Remove downloaded clients files
rm ~/downloads/rocketpool && rm ~/downloads/rocketpoold
Other commands
Check Rocketpool version
$
rocketpool -v
- check rocketpool client versionCheck Rocketpool health
rocketpool node status
Claim rewards:
- Beacon chain:
rocketpool minipool distribute-balance
- Tx Fees:
rocketpool node distribute-fees
- RPL:
rocketpool node claim-rewards
- Beacon chain:
Add another validator
rocketpool node deposit
Regular maintenance
As a regular member securying the network and processing blockchain operations on it, you need to keep your software up to date to avoid penalties and earning rewards for the work.
Guides for regular maintenanceTroubleshooting
-
or in a similar variant on startingerror loading user settings: could not deserialize settings file: error upgrading configuration to v1.17.0: error applying upgrade for config version 1.16.0: expected a section called `nethermind` with a setting called `fullPruneMemoryBudget` but it didn't exist
rp-node
andrp-watchtower
Fix:Check
/srv/rocketpool/user-settings.yml
file and modify it for notified keys. - Other issue? Search or Ask in Rocketpool discrot