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 userinto rocketpool groupsudo usermod -aG rocketpool myserveruserGet <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.serviceservicesudo nano /etc/systemd/system/rp-node.serviceCopy the configuration below into the
rp-node.serviceservice 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.targetSave and Exit the file by pressing
ctrl+x, theny.Define log script for
rp-node.service- Open 
node-log.shlog filesudo nano /srv/rocketpool/node-log.shCopy the code below into the file
#!/bin/bash journalctl -u rp-node -b -fSave and Exit the file by pressing
ctrl+x, theny. - Set running permission for 
node-log.shsudo chmod +x /srv/rocketpool/node-log.shNote: Log can be watched with
sudo /srv/rocketpool/node-log.shcommand 
- Open 
 
 - 
        
Configurate Rocketpool Watchtower service
Define
rp-watchtower.servicesudo nano /etc/systemd/system/rp-watchtower.serviceCopy the configuration below into the
rp-watchtower.serviceservice 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.targetSave and Exit the file by pressing
ctrl+x, theny.Define log script for
rp-watchtower.service- Open 
watchtower-log.shlog filesudo nano /srv/rocketpool/watchtower-log.shCopy the code below into the file
#!/bin/bash journalctl -u rp-watchtower -b -fSave and Exit the file by pressing
ctrl+x, theny. - Set running permission for 
node-log.shsudo chmod +x /srv/rocketpool/watchtower-log.shNote: Log can be watched with
sudo /srv/rocketpool/watchtower-log.shcommand 
- 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-validatorAdd validator user into
rocketpooluser groupsudo usermod -aG rocketpool rocketpool-validatorCreate a directory for the validator data
sudo mkdir /var/lib/ethereum/prysm/rocketpool-validatorSet permissions for the directory
sudo chown -R rocketpool-validator:rocketpool-validator /var/lib/ethereum/prysm/rocketpool-validatorDefine
rocketpool-validator.servicefilesudo nano /etc/systemd/system/rocketpool-validator.serviceCopy the configuration below into the
prysmvalidator-rp.serviceservice file[Unit] Description=Prysm Consensus Client VC (Mainnet) Wants=network-online.target After=network-online.target [Service] User=rocketpool-validator Group=rocketpool-validator Type=simple Restart=always RestartSec=5 EnvironmentFile=/srv/rocketpool/data/validators/rp-fee-recipient-env.txt ExecStart=/usr/local/bin/validator \ --datadir=/var/lib/ethereum/rocketpool-validator \ --wallet-dir=/srv/rocketpool/data/validators/prysm-non-hd \ --wallet-password-file=/srv/rocketpool/data/validators/prysm-non-hd/direct/accounts/secret \ --suggested-fee-recipient=${FEE_RECIPIENT} \ --enable-builder \ --graffiti "Rocketpool | Nethermind+Prysm" \ --suggested-fee-recipient=0xXXXXXXXXXXXXXXXX \ --graffiti="Nethermind+Prysm" \ --accept-terms-of-use [Install] WantedBy=multi-user.targetAll Prysm Validator flags:https://prysm.offchainlabs.com/docs/configure-prysm/parameters/#validator-flags
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 
~/.profilefilesudo 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.shReplace
#sudo systemctl restart lighthouse-validatorat the last line for:sudo systemctl restart rocketpool-validatorDo 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.shReplace
#sudo systemctl stop lighthouse-validatorat the last line for:sudo systemctl stop rocketpool-validatorDo 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/rocketpoolto 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 configAnd follow the documentation
Reload Daemon
sudo systemctl daemon-reloadStart the services
sudo systemctl enable rp-node rp-watchtowerSet 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 initReboot 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 statusRetrun permision back to
rocketpoolusersudo chown -R rocketpool:rocketpool /srv/rocketpool/dataSet 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 passwordlater) - $
sudo chmod g+r wallet(temporary, it will be returned back tosudo chmod 600 walletlater) 
- $
 
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 to0002for 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-reloadLaunch Rocketpool services
- 
                
sudo systemctl start rp-node rp-watchtower rocketpool-validator Check Rocketpool services
systemctl status rp-node rp-watchtower rocketpool-validatorThe 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-watchtowerjournalctl -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- Manage node / Stake RPL - https://node.rocketpool.net/
 - $
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-validatorCheck 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-validatorMonitor logs
journalctl -fu rp-node.servicejournalctl -fu rp-watchtower.servicejournalctl -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 statusClaim 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 existrp-nodeandrp-watchtowerFix:Check
/srv/rocketpool/user-settings.ymlfile and modify it for notified keys. - Other issue? Search or Ask in Rocketpool discrot