Rocketpool Beta Pyrmont Testnet: Part 1 [Installation guide and various files and folders on server]
Updated: Mar 15, 2021
So after Medalla testnet we have the Pyrmont testnet. This time we will run 4 validators as last time during Medalla testnet due to finality issue it has been requested not to run more than 2 validators in Pyrmont testnet.
In part1 we will go through the node setup, performance and analysis. Logs of Ethereum chains and validators. We will go through various files and folder of the node server. We will cover some important arguments/commands essential to run the server. For full list of the commands refer rocket pool official documentation here. In part2 we will see how to exit the validators and withdraw your funds. We will also see how to clean the Eth2 chain data only and get ready for the next testnet, which will be the last rocket pool beta testnet on tokenomics.
First let's check which clients we are using. Type the following command to check that:
[ rocket@localhost:~$ cat ~/.rocketpool/settings.yml ]
You can see from the screen shot below that we are using eth1:client:geth and eth2:client:lighthouse. We are using the same clients as we did in the Medalla testnet.
The folder ".rocketpool" has been created after we have installed the Rocket Pool Smart Node Package from github. The guide to setup the node is provided in their official documentation or from medium written by Jake Pospischil, one of the team member of Rocketpool.
Right now Rocketpool supports only two clients Prysm and Lighthouse. May be in future with the mainnet launch they will provide the other two clients - Teku and Nimbus. You can go through the validator clients on Eth2 official launch pad website here.
We will use only commands necessary to setup and run the node server. For full details of all the commands refer their official documentation here.
You can also refer 'command reference' from their official documentation here.
We will be using Rocketpool Smart Node Client version 0.0.9 for this testnet and will update it periodically as when required. Rocket Pool smart nodes are not upgraded automatically. As ethereum client updates may contain breaking changes and prevent validators from working, node operators need to be aware of Rocket Pool smart node updates, and apply them manually. Node operators are encouraged to read the changelogs of the relevant repositories. The Eth1 and Eth2 client updates are also updated in the Rocketpool Smart Node client periodically. So always use the latest verion. You can check the Rocketpool Smart Node client latest releases on github here. For upgrading your Rocketpool Smart Node client refer their official documentation here.
Now let's check which Rocketpool Smart Node client version we are using through CLI on server. Use command [ rocket@localhost:~$ rocketpool service cersion ] to see which version you are using. The output [ rocket pool client version 0.0.9 ] and [ rocketpool service version 0.0.9 ] tells that we are using version 0.0.9.
In regard to the hardware requirements it is recommended to follow the following setup:
OS: Ubuntu 20.04 LTS
CPU: Minimum 4 core with passmark score 5000 or better.
RAM: min 16 GB recommended
Storage: 1 TB SSD
PSU: Corsair HX series, platinum category.
CPU generally is not that important while running a node. It is mostly required while synchronizing the node or chains - eth1 and eth2 chains.
You can use 8 gb ram but it is found that while synchronizing the system gets hangs often till it gets synchronized. Once it's synchronized it will run smooth but you cannot add more peers. So 16 gb ram is recommended.
Server psu's are meant to be used 24/7 but creates loud noises due to which you cannot keep your server in your room. So for home server it is recommended to use Corsair HX series, platinum category psu's. Choose psu after calculating the total wattage of your system. There is no harm is using psu whose wattage is more than that required. For choosing psu you can refer my gpu mining blog here.
For details on hardware set up you can refer beaconchain website here or you can refer rocket pool's official documentation here.
For installation guide you can refer their official documentation or guide prepared by Jake Pospischil for the testnet beta here.
Now let's check rocketpool service stats. Use command [ rocket@localhost:~$ rocketpool service stats ]
You can see the cpu and memory usage of various components. The cpu and memory usage of eth2 chain is more than that of eth1 chain.
Now lets check the eth1 chain logs. Use command [ rocket@localhost:~$ rocketpool service logs eth1 ]
You can see the eth1 chain is in the synchronized state as no mention of 'time left to get sync' is there. Until and unless eth1 get sync you won't get the wallet status. We are using geth as eth1 client . We have two options for eth1 client, geth and infura. We didn't choose Infura as it is 3rd party and requires registration process to go through. So we opted for the good old geth client.
Now let's check the eth2 chain logs. Use command [ rocket@localhost:~$ rocketpool service logs eth2 ]
You can see the eth2 chain is in the sync state as no mention of time is there. Among the four eth2 clients: Lighthouse, Prysm, Teku and Nimbus we have chosen Lighthouse client as it is more stable than the other three and requires less time to get synchronize. Right now rocketpool is offering Lighthouse and Prysm clients. They are planning to introduce one more client in their last testnet on tokenomics. With mainnet launch they are planning to introduce all the four clients.
Now let's check the validators logs. In the last testnet Medalla, I didn't show you the validators logs. Use command [ rocket@localhost:~$ rocketpool service logs validator ]
You can see I'm running four validators and all are active and making attestations.
Now let's check the node status. Use command [ rocket@localhost:~$ rocketpool node status ]
You can see that the node has a balance of 208.031439 ETH and 0.000000 nETH. The node is registered with Rocket Pool with a timezone location of India/Mumbai. The node has a total of 4 minipools and all 4 are staking.
Now let's check the minipool status. Use command [ rocket@localhost:~$ rocketpool minipool status ]. You can see the details of the four minipools. Now the expected rewards of the first minipool is 16.226532 ETH and validator balance is 32.378620. My 16 ETH is paired with another 16 ETH from the deposit pool to form 32 ETH validator. How the rewards will be distributed between the two will be discussed in the next and last testnet. The details about rewards and tokenomics will be discussed in the next blog with rocketpool last beta testnet based on tokenomics.
Now on the beacon chain website you can see all the four validators are active. You can also see the proposal history of all the validators. You can also see the total ETH/income earned by running all the four validators.
Here you can see each validator details. Balance, last attestaion, proposal made and income from last 7 days.
On beacon chain website you can see the validator balance of 32 Eth and and on server side you can see both expected rewards of my 16 ETH and validator balance of 32 ETH.
Now let's go through various files and folders created after running the rocket pool smart node client. Use command [ rocket@localhost:~$ ls -a ] get all the hidden folders. You can see '.rocketpool' folder. which has been created after running the RP smart node client. Now we will explore all the files and folders in it.
Based on your OS chose the command to install the smart node client. As we are using Ubuntu so we opt for Linux (wget). Use command [ mkdir -p ~/bin && wget https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool && chmod +x ~/bin/rocketpool ] .
You can refer medium guide by Jake here.