kajikoffo
10 min readOct 9, 2020

--

Rocket Pool Beta noob guide - Node on own hardware

OK, hi again class.. This article is going to be complemental to supersuccessful series of installing Rocketpool node on cheap VPS here:

Today let’s look at how to run Rocketpool beta node on a computer that neighbor’s kid dropped by the dumpster. Looks like Rocketpool stack runs on shitty computers as well, but let’s say we’d like some Core 2 duo as minimum, i5 (gen3+as someone in Discord confirmed Dell OptiPlex 7020 is just fine, that’s gen4 to be exact) optimal and 8G RAM (as my test node consumes ~7G or more), and don’t forget 240G or larger SSD with high IOPS (fast R/W speeds) otherwise your node won’t perform well and will be that one dumb kid at the back of the class..

Note: 480G SSD should be cheapest as $/GB and sufficent for beta and testnets. Anyway probably 1TB drive will be good choice for later real Eth2 launch. Eth PoW main net chain has around 170G+ to this day.. (https://blockchair.com/ethereum/charts/blockchain-size).

I’ll install in ProxMox virtual in our cluster to make it more comfortable to make screenshots or do an easier step back when I f*** up (but that doesn’t happen.. never).

I remind that this manual is for total n00bs with no knowledge of linux and who just want to participate in staking with rocketpool as node operators. Don’t be afraid, even chicken can do this if you put some grain around Enter.. Who knows what he’s doing can skip the installation and than copy-paste commands.

[!] Note: if you’re going to just copy-paste, look out for these notes or you’ll end up crying. Also, create user named user.

Image and software preparations

We’ll pick up Debian linux as usual, as it is pretty much stub linux distro which is simple yet powerful and it’s not consuming much HW resources itself. First, download latest stable release:

For now that’s gonna be file

debian-10.6.0-amd64-netinst.iso

You can burn it on CD with something like CDburnerXP (if you still have CD burner hehe).. Or make install flash drive with BalenaEtcher:

There’s no much to say, select ISO, select flash drive, burn!

Boot and install

So now we boot form our install medium and we’re offered installation menu. We go for simple ‘Install’, we don’t need graphical installation or interface..

Debian installer menu

We go through selection of language, keyboard, location.. I keep everything US English, only select Czech republic as my correct location. That’s because we’re going to download half of system and later most of the software from repository - which we want to be as close as possible - but I need english keyboard characters.

Only select your location right, everything else is fine with US English

Next system installs basic files and detects network configuration. I suppose nobody has static IP addresses and if so he should to know how to configure them. So we obtain IP address from DHCP (and if not, we’re offered to configure manually. In that case I just recommend to use google’s 8.8.8.8 as DNS server) and we can continue naming our server.

Wait for address

Pick up name as you wish and omit the domain.

Node name, leave domain name blank

Next we set up password for user root. That’s system administrator’s account with almost unlimited power.. In wild that should be some really strong password, but in our home laboratory nobody cares.

Then we’re asked to create new user.. Let’s pick up user for example. AnalShredder84268 is OK to, but remember: linux is case sensitive so you have to correctly write capital letters every time - users, groups, commands..

Our user is going to be named user to make things more confusing

Okaayy, next we’re going to partition disk. We’ll just go with Guided - entire disk, just follow the offered options and write changes to disk in the end.

Simpliest way
This is fine and write changes to disk..

Base system is installed and we’re asked, if we have another CD. We don’t, so select NO and then we have to pickup mirror to download additional packages. If you selected the country you’re really living in, just take offered options, no proxy..

No other CDs

Fine, if you want to participate in package popularity contest you can..

In software selection we DON’T want desktop environment, that’s useless and only obstructs work with system - only disctrats you from true Shaolin path of command line system administrator. We sure only want SSH and system utils.

I always install Debian like this. Anything else can be downloaded with apt anytime when really needed.

Next, packages are downloaded and all system is updated to latest version possible, nice.. When done, we’re asked to install grub (OS loader) into MBR, so we do that and take offered drive, like /dev/sda. In linux drives are marked /dev/hd[x] or /dev/sd[x] .. where hd can’t be seen lately as it marks ATA drives, sd marks SATA drives. Third letter marks drive # on bus and additional number (when partitioned) marks number of partition, like /dev/sda1, /dev/sda2 ..

So that’s done, CDs, ZIPs, floppies and flashdrives out and reboot..

We log in as root and that 1234ish password you created after I told you not to care. We don’t have to run update. Also we can switch to that VPS manual I mentioned at the beginning, but I’ll continue with right recipe here too..
We’ll use package manager apt to download missing (and eventualy update existing) packages:

apt -y install mc locate wget curl ntpdate htop sudo
Finaly, our linux.. Everything up to date.

These are useful or required softs/utilities we’ll use to download Rocketpool, keep time synced with NTP server, we’ll get nice editor, resource monitor and ability to run elevated commands.

Next thing to do is allow our user user run administrator tasks. So we add it to sudoers group which is allowed to do so with magical command sudo.. BTW if you come accross any Ubuntu manual, every command starts with this one :)..

usermod -aG sudo user

Now let’s get ourselves access over SSH and manage this piece of.. computer.. remotely, so we can throw it under table and get back to our Windows. We just need to know our IP address, so let’s

ip add
I also enabled SSH login for root, but it’s not needed as rocketpool runs under ‘user’ account only. ens18 is my network adapter, virtual machines have them this way..

..and we can see two adapters probably: loopback (lo) and physical card (eno1, em1 or such). Under physical adapter there’s line begining with inet [address] and that’s it. Now, you should get DHCP reservation for that in your home router. If that’s out of your range ask a friend to do that; or just let’s assume that your router isn’t total piece of junk and remembers who gets which IP address by client’s MAC address - and doesn’t just pull them out of hat every time asked for one.. If not, throw it out of window and until that, this address will change every time you reboot the server.

Next let’s download PuTTy (on our good ol’ Windows computer) as a pretty nice terminal app:

And connect to our server with our user’s credentials:

Great. Now we can begin with rocketpool at last! Now we’re basicly following manual from https://medium.com/rocket-pool/rocket-pool-v2-5-beta-node-operators-guide-77859891766b but with nice images and stupid comments..

Macumba voodoo and magic

Let’s download that Rocketpool already dammit!!

curl -L https://github.com/rocket-pool/smartnode-install/releases/latest/download/rocketpool-cli-linux-amd64 --create-dirs -o ~/bin/rocketpool && chmod +x ~/bin/rocketpool
Fresh Rocketpool..

This just downloaded fresh Rocketpool executable to our home directory and made it executable.

[!] Note: Now we have to restart terminal, so paths (to look for executables) get updated. PuTTy users click top of the window and hit Duplicate session.

Log in and close original window. Those sitting infront your linux server type

exit

to log out of session and can immediately log back in.

Fancy features of putty; can also restart terminal with original settings if disconnected

Fine; now we run command

rocketpool

..and we should see Rocketpool logo and help puked out. Niceee. First step done.

This is how we see we did everything right..

Before we move on, let’s run some harmless sudo command to go through that educational first run stuff..

sudo apt update

..insert user’s password, hit enter, this just updates package manager repositories info. It will find out system is up to date and that’s it. Now we can get on with Rocketpool.

rocketpool service install

In worst case we’re asked for password again and we can see node stack components downloading.. you should see output like this:

In the upper half of window you can see we were asked for user’s password once again an then 7 steps of apocallypse.. eee.. installation went smooth. If script skips steps 1–4 (and tells you that) you did something wrong, i.e. didn’t restart terminal or run ‘sudo apt update’ first.

Great, now we’re supposed to configure service, let’s do that:

rocketpool service config

We’re asked to select Eth 1.0 client. We go for Geth, which will download whole (testnet) blockchain. Infura is a paid service which has blockchain downloaded for you and only provides you over API; you can use it for free and free 100K requests a day will do for testing - but registration is needed and API key has to be obtained and provided to config. Furthermore, we’re not pussies and do things the hard way.
Hit Enter twice again to skip additional info and let’s spin roulete for Eth 2 client.. or you can select your favorite.
Aaand done! That’s the bottom half of the previous screenshot, nothing to do wrong here.

[!] Note: restart terminal again.. otherwise docker won’t run. Trust me..

And now, in red corner, ..

rocketpool service start

We should see output similar to this:

And these green ‘done’-s tell us we did it!! Yaaay, very well!!

You can check with:

rocketpool service status

and to check consumed resources (quit with Ctrl+C)

rocketpool service stats

or to see how blockchains of eth1 and eth2 are bing downloaded (synced) run

rocketpool service logs eth1
rocketpool service logs eth2

respectively, Ctrl+C to quit again. You can also run all-in-one-log-output with

rocketpool service logs

On the other hand you can check how your PC is performing with

htop

Or if you can already smell that smoke and see little flames at the back, you can guess Eth1 and Eth2 clients syncing can be really resources greedy..

And that’s IT!! Now, according to manual, you should forward TCP/UDP ports 30303 and 9001 to your server. That’s port forwarding section of your home router. These are needed to accelerate sync of Eth1 and Eth2 clients over P2P.
Also, these will take some time to finish; if looking at Eth1 log, there will sometimes appear how many blocks you have synced of total amount and Eth2 also shows estimated time remaining in the log from time to time.. Eth1 takes few hours, Eth2 can take even few days, depends on link speed in part and that port forwarding.
Until node is fully synced, there’s no rush. You can accumulate as much gETH as possible, read oficial Rocketpool guides here

and read follow up article, which is written for VPS hosting, but with that in mind can be perfectly used for our machine:

you can also follow Node Operator’s Guide from rocketpool site; There’s info to register node, generate wallet, manage minipools and whole thing is explained from better people :).

I’ll be in touch on Discord channel and keeping (that red) eye on n00b’s troubles.

Before I get back grab a book about linux basics and learn ;).

kajik#8875

--

--