google.com, pub-7590763259720133, DIRECT, f08c47fec0942fa0
 

Part 5 - Node Operator's Configuration Guide for Dummies - Starting RP & Setting up Node Wallet


Part 5 - Starting RP & Setting up Node Wallet

Part 5 - Starting RP & Setting up Node Wallet


Starting Rocket Pool and Setting Up a Node Wallet

At this point, you should have the complete Rocket Pool infrastructure running, including the Smartnode stack, an ETH1 client, and an ETH2 client. You should also have hardened your operating system from outside attackers. If you've completed both of these steps, you're ready to create a Rocket Pool node and begin staking. If not, please review the previous sections and return here once you've completed those steps.


Starting and Stopping the Rocket Pool Services

Now that you have the Smartnode installed, starting the stack is easy. Simply enter the following command:

  rocketpool service start 

This command will create all the necessary Docker images if they don't already exist, make sure the Rocket Pool docker network and storage volumes have been initialized, and update any containers if they no longer match the image versions described in ~/.rocketpool/config.yml.


The first time you do it, the output should look like this:

$ rocketpool service start  
Creating network "rocketpool_net" with the default driver 
Creating volume "rocketpool_eth1clientdata" with default driver 
Creating volume "rocketpool_eth2clientdata" with default driver 
Creating rocketpool_eth1 ...  
Creating rocketpool_eth1 ... done 
Creating rocketpool_eth2 ...  
Creating rocketpool_api  ...  
Creating rocketpool_api  ... done 
Creating rocketpool_eth2 ... done 
Creating rocketpool_watchtower ...  
Creating rocketpool_node       ...  
Creating rocketpool_validator  ...  
Creating rocketpool_validator  ... done 
Creating rocketpool_node       ... done 
Creating rocketpool_watchtower ... done 

If it does, then the Smartnode stack has been successfully initialized and is now running.


If you ever need to stop the services (for example, during an upgrade or because you must do maintenance), you can use rocketpool service stop to shut everything down. The output should look like this:

$ rocketpool service stop  

Are you sure you want to pause the Rocket Pool service? Any staking minipools will be penalized! [y/n] y  

Stopping rocketpool_node       ...  
Stopping rocketpool_validator  ...  
Stopping rocketpool_watchtower ...  
Stopping rocketpool_eth2       ...  
Stopping rocketpool_api        ...  
Stopping rocketpool_eth1       ...  
Stopping rocketpool_validator  ... done 
Stopping rocketpool_node       ... done 
Stopping rocketpool_watchtower ... done 
Stopping rocketpool_api        ... done 
Stopping rocketpool_eth2       ... done 
Stopping rocketpool_eth1       ... done 
NOTE Once you call this, Rocket Pool will not automatically start after a system reboot. You will have to call rocketpool service start to start all of the Docker containers and enable auto-start on reboot again.

Confirming the Correct Version and Network

Once the containers or services are up, a good first step is to confirm that you have the correct versions of the clients and are on the network that you expect. You can do this with the following command:

 rocketpool service version 

The output will look similar to this:

Your Smartnode is currently using the Ethereum Mainnet.  

Rocket Pool client version: 1.0.0-pre 
Rocket Pool service version: 1.0.0-pre 
Selected Eth 1.0 client: Geth (ethereum/client-go:v1.10.8) 
Selected Eth 2.0 client: Nimbus (statusim/nimbus-eth2:multiarch-v1.4.2)  

The first line will tell you if your Smartnode is configured for the Ethereum mainnet or for the Prater testnet.


The second set of lines will tell you which clients you're using, and which versions of them are defined in Rocket Pool's config.yml file.


Checking the Service Status and Logs

Now that the Smartnode services have been started, it's a good idea to check that they're running correctly without errors.

The first thing to check is whether the Docker containers are running well, or if they are constantly restarting due to an error. Run the following command:

 docker ps 

The results should look similar to this, but different line formatting:

CONTAINER ID   IMAGE                               COMMAND                  CREATED       STATUS         PORTS                                                                                                         NAMES
a3c22f54eff0   rocketpool/smartnode:v1.0.0-rc3     "/go/bin/rocketpool …"   2 hours ago   Up 2 minutes                                                                                                                 rocketpool_node
0d5818868ef6   statusim/nimbus-eth2:amd64-v1.3.0   "sh /setup/start-val…"   2 hours ago   Up 2 minutes                                                                                                                 rocketpool_validator
88bea525fa89   rocketpool/smartnode:v1.0.0-rc3     "/go/bin/rocketpool …"   2 hours ago   Up 2 minutes                                                                                                                 rocketpool_watchtower
4dfc7a2e939b   statusim/nimbus-eth2:amd64-v1.3.0   "sh /setup/start-bea…"   2 hours ago   Up 2 minutes   0.0.0.0:9001->9001/tcp, 0.0.0.0:9001->9001/udp, :::9001->9001/tcp, :::9001->9001/udp                          rocketpool_eth2
62314e5a0ecf   rocketpool/smartnode:v1.0.0-rc3     "/bin/sleep infinity"    2 hours ago   Up 2 minutes                                                                                                                 rocketpool_api
ac629c08c896   ethereum/client-go:v1.10.3          "sh /setup/start-nod…"   2 hours ago   Up 2 minutes   8545-8546/tcp, 0.0.0.0:30303->30303/tcp, 0.0.0.0:30303->30303/udp, :::30303->30303/tcp, :::30303->30303/udp   rocketpool_eth1

The key thing to check is the STATUS column. If none of the entries state Restarting..., then the containers should be running properly (see the below note for an exception about the rocketpool_validator container).

NOTE If you are using Prysm or Teku as your ETH2 client, you will likely notice the rocketpool_validator container is constantly restarting. This is okay! The validator container will fail until a new validator has been created using the rocketpool node deposit command. Once this is done, the container will function correctly - until then, just ignore it.

Still, it might be useful to check the logs of the various services.


To check on the logs, use the rocketpool service logs <container> command, where <container> is one of eth1, eth2, validator, api, node, or watchtower.


For example, to check the logs for your ETH1 client:

$ rocketpool service logs eth1

Attaching to rocketpool_eth1
eth1_1        | INFO [06-17|05:17:19.052] Imported new block receipts              count=25   elapsed=26.651ms    number=247,000   hash=6583ec..35eb1c age=2y3mo2w  size=15.72KiB
eth1_1        | INFO [06-17|05:17:19.098] Imported new block headers               count=192  elapsed=18.515ms    number=247,551   hash=b7d5e4..d49faf age=2y3mo2w
eth1_1        | INFO [06-17|05:17:19.334] Imported new block receipts              count=371  elapsed=46.450ms    number=247,371   hash=dd3240..1ed173 age=2y3mo2w  size=266.59KiB
eth1_1        | INFO [06-17|05:17:19.354] Imported new state entries               count=1271 elapsed=2.866ms     processed=374,695 pending=3134  trieretry=0   coderetry=0  duplicate=0 unexpected=0
eth1_1        | INFO [06-17|05:17:19.441] Imported new block headers               count=384  elapsed=35.331ms    number=247,935   hash=4c4dba..5bf8b6 age=2y3mo2w
eth1_1        | INFO [06-17|05:17:19.460] Imported new block receipts              count=180  elapsed=33.648ms    number=247,551   hash=b7d5e4..d49faf age=2y3mo2w  size=128.73KiB
eth1_1        | INFO [06-17|05:17:19.480] Imported new block headers               count=192  elapsed=19.122ms    number=248,127   hash=aa70b9..40d139 age=2y3mo1w
eth1_1        | INFO [06-17|05:17:19.486] Imported new block receipts              count=6    elapsed=26.042ms    number=247,557   hash=fd6656..ca2439 age=2y3mo2w  size=3.77KiB

You should do this for both eth1 and eth2 to make sure both clients are running without any errors.


Setting up a Wallet

If the Smartnode services are up and running, the next step is to set up an ETH1 wallet for your node. This is simply an ETH1 address that will hold your node's funds - it will use this to send ETH to your minipool when you begin staking, pay for gas during various transactions, and other various operations.


Creating a New Wallet

The most common way to run a node is to create a new ETH1 address that is dedicated to the node. The Smartnode CLI provides a way to do this easily:

 rocketpool wallet init 

You will first be prompted for a password to protect your wallet's private key. Next, you will be presented with the unique 24-word mnemonic for your new wallet. This is the recovery phrase for your wallet. If you ever lose your machine, you can use this phrase to regenerate your wallet and resurrect all of the ETH2 validators attached to it.

WARNING
It is essential that you write this mnemonic down because this is the only time it will be shown to you, but keep it somewhere safe. Anyone with this phrase can gain control of your wallet. Once you confirm your mnemonic phrase, you will be presented with the unique ETH1 address for your node wallet.

Once you confirm your mnemonic phrase, you will be presented with the unique ETH1 address for your node wallet, take note of this.


Restoring from an Existing Wallet

If you already have a wallet from a previous installation, you can recover it and regenerate all of the validators attached to it instead of making a new one.

NOTE This will not work until your eth1 node has finished syncing. Please watch its log file to see when it's done; once it is, you can run this step.

To do this, use the following command:

 rocketpool wallet recover 

This will first ask you for a password you want to use to encrypt your wallet. After that, it will ask for your 24-word mnemonic recovery phrase. Enter it carefully - it will not be shown on-screen for safety, and it is very easy to make a mistake while typing it, so take your time.


When you're done, you should see output similar to this:

$ rocketpool wallet recover  

Please enter a password to secure your wallet with:  

Please confirm your password:  

Please enter your recovery mnemonic phrase:  

Recovering node wallet... 
The node wallet was successfully recovered. 
Node account: <your wallet address> 
No validator keys were found. 

If you don't see any errors, then your wallet and validators will be recovered.


Your Wallet and Password Files

WARNING As of the current build, Rocket Pool needs to have access to your wallet's private key in order to perform its automatic duties. This means that the private key will exist in a file on your machine. If an attacker manages to gain access to your machine, they could gain access to your node wallet and steal all the tokens that it contains! Please ensure that you have followed the security guide in Part 1 & Part 2 of this guide before you continue, and are comfortable with your security posture.

Your wallet's private key will be stored in a file located at ~/.rocketpool/data/wallet. The password used to encrypt your wallet's key will be stored in ~/.rocketpool/data/password. This is the file that must be protected at all times.


Waiting for Your ETH Clients to Sync

Now that you have a wallet set up, you're going to want to wait until your ETH1 and ETH2 clients have finished syncing with the network before proceeding.


One easy way to check on their status is with the following command:

 rocketpool node sync 

This command will show how far along your ETH1 and ETH2 clients are in the syncing process, similar to this:

$ rocketpool node sync  

Your eth1 client is fully synced. 
Your eth2 client is still syncing (16.96%).

You can call this occasionally to keep tabs on your clients' progress.

NOTE Prysm currently does not support the ability to get the sync progress externally, so Rocket Pool can't read it via this command.

To get an actual ETA of the sync time, it's easiest to look at the logs for your clients with rocketpool service logs eth1 and rocketpool service logs eth2 respectively. Each client typically provides an ETA on its sync status in its log output.

NOTE It can take days to fully sync both ETH1 and ETH2, depending on your client selection and your machine's hardware profile. This is expected. As long as the percentage is steadily rising, you are all set. Sit back, relax, and wait for both of them to finish.

Once your nodes are done syncing, move on to the next section.

43 views0 comments