How To Setup a Nimbus Validator Node

EthStaker Workshops and Technical Guides · January 2021 · 23:54

This EthStaker workshop walks through setting up a validator on Nimbus, the lightweight Ethereum consensus client built by the Status team for resource-constrained hardware. It covers installation, validator key generation, and connecting to the beacon chain for solo staking. The session targets home stakers running their own hardware rather than relying on pooled or custodial staking services.

Topics

From EthStaker Workshops and Technical Guides, hosted by Eth Staker.

Transcript

hello my fellow eaststakers i am envetica don eth and this is the validator workshop series follow along as i set up and configure an ethereum validator from scratch now for non-technical users this can be an incredibly intimidating experience since running a validator requires a deposit of 32 eth which the current market value of that is roughly 54 000 dollars as of today and also requires the use of the command line now for these reasons we'll be using sumer eset's guides to set up and configure our validator by utilizing the guides developed by samir we'll be provided in-depth explanations of what we're building along with the commands to easily copy and paste to the command line

additionally mayor's guides are well maintained and updated to include steps to maintain your validator over time also these guides have been funded by the ethereum foundation and are considered an industry standard for this recording we'll be deploying an ethereum validator on the puremont test dent if this is your first time running a validator it's good practice to start on a test net for a few weeks to ensure you understand what it is you're doing and verify that the setup is working properly before deploying onto mainnet now we are assuming that you have the necessary prerequisites for running your validator specifically having already requested at least 33 gorly eath opened up a metamask account and have a dedicated machine for staking with a

fresh installation of ubuntu desktop if you don't the video tutorial for those steps are linked in the description of this video for this video tutorial we'll be focusing specifically on configuring and running an ethereum geth node generating and funding the validator keys importing those keys to the eth2 client and finally installing and configuring the eth2 client itself so without further ado let's get into it the first thing we're going to do is create a bit of a workstation here for setting up our validator so i'm going to open up a browser session pull it over to the side here and then pull up submari sets guide now this is specifically for the

lighthouse client now that we have that i'm going to go over here and then i'm just going to type the word term and that will bring up the terminal click on that and then i'm going to open up uh the show applications icon in the bottom left hand corner and then type text to bring up a text editor these will be the three things that we'll use the most all right and one thing to note before we get too ahead of ourselves all of the links and resources mentioned in this tutorial are all in the description of this video so if you're following along in step with this guide and you're not

sure where we're getting the information from just look at the description of this video and everything should be there all right so diving right into the guide for nimbus on the pyrmont test net let's go ahead and look at the first set of instructions that sumer has outlined now there's a lot of useful information in here and again this is sort of to set up a minimal viable product in that the only thing that we're worried about is looking at the instructions on setting up a validator node only we're not going to go into security we're not going to go into dashboards we're simply looking at how do we spin up a so with that in mind we're just going to skip past step 0 which is connecting to the server remotely that's no longer

applicable to us since we are running locally we are going to start with step one though and make sure that our system has been updated with the necessary operating system patches so let's go ahead and copy and paste this into our command prompt now for those of you who are not used to working in a command line there's going to be a lot of copy and paste instructions in the guide here pay no attention to the dollar sign we want to actually copy everything to the right of the dollar sign we're not actually going to be copying pasting the dollar sign is simply a representation of a new command that's all so let's copy and paste and hit enter we'll enter our administrative password and watch that process all right looks like that has processed

successfully let's go ahead and issue the second command simply just going to be copy and pasting and it looks like that's complete too let's go ahead and clear our screen by typing the word clear and then hitting enter and let's move on to the next step now for step two for securing the server we're also going to ignore this step for right now this goes outside of the scope of this tutorial specifically configuring the firewall and allowing ssh to actually access that's something if you're interested in doing i highly recommend following these steps on your own time so looking to the next steps here we're going to open up the ports for eth1 and eth2 nodes

so let's go ahead and just copy and paste this command this will open up port 30303 for geth and let's go ahead and open up port 9000 for nimbus now there are instructions here for opening up ports for grafana and prometheus which are dashboard and monitoring tools for your validator client that is also outside of the scope of this tutorial however if it is something that you're looking to have as far as additional functionality please feel free to follow these steps all right so the step the next step here is to configure the time keeping let's go ahead and just issue this command

everything looks correct let's go ahead and clear our screen again and hit enter now what we're going to do is install and run go ethereum which is the eth1 node first thing we need to do is download the files so let's go ahead and do that with this command all right looks like that's completed so let's go ahead and update those files with the following update command and finally let's go ahead and actually

install geth with the install command all right looks like everything is processed correctly so we've downloaded and installed geth let's clear our screen before we start geth what we're going to do is create a background service so that once we run the eth1 node that we can continue working on the machine without it interrupting any services so to do that let's go ahead and make the appropriate user we'll just copy and paste this command we'll create a data directory for it to work out of

and we'll just copy and paste that and finally we'll set the appropriate permissions okay next what we're going to do is actually create the system service to run in the background we'll do that by running this command you'll notice that it's going to open up a text editor that's exactly what we want and we're simply going to copy and paste the configuration file into our text editor here and we're going to make some slight modifications for formatting sake and that looks good now we're going to do to save this file we're going to hit control x it's going to ask us do we want to save we'll hit y and then we'll hit enter

moving on to the next steps we're going to reload the system daemon to apply the changes we had just made now let's go ahead and start geth using the start command looks like that process looks like that processed successfully to verify let's go ahead and run the status command and it looks like we're up and running we're green and active very good so let's go ahead and hit ctrl c to exit the screen and then hit clear and enter let's go ahead and move on to the next steps and right now we're going to enable geth which allows the system to automatically reboot if and when your physical system reboots looks like that is processed successfully

let's go ahead and take a look at the system logs for geth we're going to use the journal command here and take a peer into the system logs it looks like everything is running as expected for right now what's going to happen is the eth1 node is going to search for the minimum amount of peers to connect to the network once it reaches that amount of peers it'll start syncing with the blockchain it needs time because there's years of data to go over so let's go ahead and keep that running in the background we will hit control c and then type clear okay now the next step is to generate our validator keys and deposit data we're going to do this with the deposit cli file and we're going to go ahead and follow

the directions here the first step is to make sure that we're out of we're in the home directory excuse me and then what we're going to do is install curl and curl is going to be used to download the deposit cli file so let's go ahead and copy and paste the curl command real quick looks like that is completed successfully now let's go ahead and copy this entire curl command and like stated before this is going to directly download the deposit cli file the deposit cli file is a command line based wizard essentially that is going to generate our seed phrase our deposit file and our keystore file all necessary in order to launch our looks like that completely downloaded so

let's go ahead and copy this command which will unpack the files we just downloaded and then run the next command which is changing into the directory that we just unpacked very good let's go ahead and hit the clear button excuse me let's type clear and then hit the enter button next what we're going to do is actually run the deposit cli file run the deposit cli program to do that we're going to copy and paste this command before we put it in our command line let's paste it into our text file because there's a variable that we need to change here that's the number of variables because there's a variable we need to

change here and that's the number of validators we're going to run in our case we're going to just change that to number one however if you were to run multiple validators say two three four whatever it is you would just change the number there i also want to point out the chain flag here and you can clearly see that we're running on the puremont test testnet if for example we were wanting to run at a different test net or mainnet you would simply change out the name of the network let's go ahead and copy this and paste it into our command line and we can see that the deposit cli program is now running and it's prompting us to create a password for our validator key stores let's go ahead and do that

it's going to ask us to confirm like it has accepted our password and has simultaneously generated our seed phrase let's go ahead and paste that into our text document one quick note about the seed phrase you would never for any reason share this seed phrase with anyone else effectively who owns the seed phrase has rights to your validator and thus your ether so please make sure that you keep this in a safe place let's go ahead and hit enter and because this seed phrase is so important the deposit cli is asking to confirm that we have in fact written it down correctly let's go ahead and paste that in looks like it is confirmed

successfully so now it's generating our key stores and deposit files that is now completed and it has put those files in this data directory we're simply going to copy and paste that data directory into our text document as we're going to reference that later let's go ahead and hit enter and then clear our screen moving on to the next steps let's go ahead and clear our ahead and change our directory to our home directory and we're just going to remove the old tower file since we're no longer using it and now what we're going to do is install the dependencies that nimbus has and we're just going to simply copy and paste this install file

and then issue it on our command line alright looks like that's completed and move on to the next steps which are to clone and build nimbus so let's first run this command which is to ensure that we are running in the correct directory and then what we're going to do is clone the nimbus files using git clone we're just going to copy and paste that command in our command line looks like that has completed downloading let's go ahead and change directories into the nimbus directory all right next what we're going to do is

compile everything we've downloaded with the following command and let's just copy and paste that into our command line and hit enter now depending on your hardware this could actually take some time so let's step away take a break stretch our legs and come back in a couple minutes when this is completed okay looks like that's completed successfully let's go ahead and move on to the rest of our instructions so let's go ahead and copy all of the system files issuing this command it's going to ask us for our administrative password we'll go ahead and put that in all right now it's time to import our

validator keys let's go ahead and make the directory and before we issue this second command we're actually going to copy and paste it into our text document because there's two variables we need to adjust and that is the username for our validator node we can see here the nimbus validator that's the name of our server and admin is the user account for that server so we're just going to change that here and make that admin and admin so let's copy and paste this into our command line and hit enter now we want to make sure we have the

correct permissions so i'll run this and verify that worked using the list everything looks right okay let's move on to the next steps let's just confirm that we are in the home directory so let's do that with the change directory command space tilde next let's change directories into the nimbus eth2 directory now before we issue this third command let's copy and paste it into our text editor because there's an additional variable that we need to change and that is specifically stating where our validator keys are now if you remember we copied and pasted our validator key directory location

so we're just going to copy and paste that into this command and replace the validator key section here all right looks like that is complete let's go ahead and copy and paste that in and what it's asking for here is the password that we generated during the deposit cli process so let's go ahead and do that all right looks like the key store has been imported very good let's move on to the next steps that is configuring the beacon node and so we're going to go ahead and this is

just like the eth1 node so we're going to start by creating the user creating the directory and applying the correct and next what we're going to do is create the actual configuration file so we're going to run this command it's going to open up the text editor we're simply going to copy and paste the entire config file listed in the tutorial and we're just going to do some brief formatting here and we are all set so to save this we're going to do control x we'll hit y to save and then enter next what we want to do is reload the

system daemon to apply the changes that we had just made let's go ahead and clear our screen and now what we're going to do is start nimbus to verify that is in fact running we'll run the status command all right look at that now we have a running nimbus beacon node so let's go ahead and do control c to exit this screen and then let's do clear and enter all right let's go ahead and move on to the next steps now what we're going to do is run the enable command this makes sure that if and when your server is rebooted so too do the services and let's go ahead and check the logs so

we're going to go ahead and run this command this will give us a live preview into the nimbus logs and looks like we are creating new log entries and waiting for the eth1 node to sync all right so let's go ahead and do control c to exit here and then we'll clear our screen again and proceeding on to the next steps now what we're going to do is fund the validator keys this is where we're actually making the deposit so let's go into the pyrmont launch pad on ethereum and what we're going to do is click on the become a validator button now for the sake of this demonstration we're going to breeze through these

screens fairly quickly however i can't stress this enough that if you are running a validator and you're especially if you're running on mainnet please make sure that you are reading through these screens and that you thoroughly understand the risks and responsibilities that go along with becoming a ethereum node operator let's just go ahead and click through these now okay here's a part where we need to

actually put in our information again for demonstration purposes we're just running a single validator however if you were running more you would put that number in here the rest of this options can be left on the default settings and then just make sure that you acknowledge that your mnemonic phrase or your seed phrase is securely written down now what we want to do is upload our deposit file so what we're going to do is open up a file explorer you'll see that in the left hand side of the ubuntu taskbar we're just going to drill down into the eth2 deposit folder and then the validator keys folder and here we'll see our two files that were generated by the

deposit cli program mainly the key store file and the deposit data file and we're simply going to drop and drag into the website to process our deposit and the green check mark means good to go so let's go ahead and click continue now this is the actual deposit portion of the uh funding of your validator keys so let's go ahead and click meta mask it's going to ask us to connect our wallet let's go ahead and do that we'll confirm that we're connecting and now we see that we're connected to the launch pad let's go ahead and click continue now we have a summary yes in fact we are

running one validator yes we're we're depositing 32 girly eats and now let's acknowledge the risks and responsibilities associated by being a note operator and click continue now this is the actual deposit portion so let's go ahead and click on confirm deposit it will open up our metamask account we are confirming that yes we are depositing 32 gourley eath and we are confirming again that we are in the girly test net let's go ahead and make that deposit now just take a moment here for the transaction to complete and there we go we have a successful transaction i'm going to go ahead and

open a new tab so we can look at that later and that's it you are now running your very own ethereum validator node now a couple items to note here again the eth1 node needs to properly sync and then at which time your beacon node will start syncing and then your validator will start picking up something also to note if we go back to our browser here let's uh maximize our browser window and go back to the deposit transaction one thing i want to point out here is the beacon chain deposit section where you have your validator public key this is literally your validator number so if we click

into that we're going to see a couple things first we'll see the status of the deposit that we just made and right now we're seeing that there's a bit of a wait so in about 15 to 16 hours we'll formally see that deposit process on the test net and the other thing we can do here is if we copy this address next what we're going to do is go to the puremont.beaconchain address and let's just copy and paste our validator address in there and now we can see the full status of where our validator is in relation to the test network so we can see that our deposit has gone through and now it's going to take looks like

around 15 hours for our validator to be processed into the network and be contributing attestations and proposing blocks now we did cover a lot of information in however the steps accomplished today only represent a minimally functioning i would highly recommend following all of the security steps in samir's guide additionally if you do want to develop a dashboard to monitor your validator please feel free to follow the instructions provided by samir which are also in the guides as always if you run into any issues at all the e-staker community is here to help our goal is to be welcoming first and knowledgeable second

there are no silly questions and no question too small simply ask and we'll do our best to help for more in-depth and advanced features make sure to check out our monthly e-staker validated workshops details on when those are will be hosted on our website at estaker.cc right that's it for me i'm envetica.eth and we'll see you around