A step by step guide for beginners…(Part1) (updated for hornet version 1.02 and HORC 1.03 on 30.05.21)
With the upgrade to the Chrysalis network on April 28 2021 the IOTA protocol has encountered its biggest upgrade and protocol change in its entire history and did implement a lot of amazing new features.
An essential part of the IOTA protocol is the participation of a big amount of nodes in the network to offer a stable and secure processing of messages.
For the user of any DLT, the optimum in decentralization and user participation reachable is to run your own node which nobody else can control. This is the Idea of all P2P DLT networks since Nakamoto’s vision became reality in Bitcoin, but most Cryptocurrencies at their current state require heavy computation and expensive setups to participate in the network.
As the IOTA protocol is so lightweight and all processing is extremely optimized, running an IOTA full node is neither expensive, nor really complicated.
This guide aims to help beginners and especially users that have never extensively used Linux or a command line to setup an IOTA Hornet node on a VPS server using their Windows PC. I will explain the following steps in this guide:
- Install and setup of the VPS server at Hetzner Cloud
- create a secure login method to your server using SSH Keys
- Install a pre-build Hornet node software script on your VPS
- access the node dashboard via your standard browser and connect with other Nodes in the IOTA network.
- All as easy as possible explained so that you can follow and copy every needed step.
- in a second blog i will explain more in detail the routines of using, updating and monitoring your node, but this first part will lead already to a full functioning and reliable IOTA Hornet node
- Please recognize that this is purely educational content from a community member that i created to help you — the final responsibility of what is happening on your server is totally on you.
- The second part of this guide that focusses on managing an already running node can be found here: https://phyloiota.medium.com/iota-hornet-node-installation-2-8f2639e04d1d
What do you need to prepare before the start?
- a Windows PC (but most of it works the same way on Mac or Linux ofc) with up to date Windows version and security software. It is essential that you regularly implement software updates of your operation system and Antivirus software.
- Get an free account on a VPS Cloud server provider like Hetzner, Netcup, AWS, DigitalOcean, etc etc… This guide will use and explain a HETZNER VPS installation, but every other VPS will basically works the same way.
- The software-package Putty:
- choose the Windows MSI installer file which will include the SSH client Putty and the SSH Key generator PuttyGen. Install it on your Windows system. Most modern Windows 10 computers with Intel or AMD CPU will use the 64-bit x86 version:
1.) VPS SETUP ON HETZNER CLOUD
Login to your Hetzner account and go to “Cloud”
Click on the “+ new project” button and give a desired name for your new node project and confirm with “Add project”.
Next step will be to “Add Server” to your project where you choose the technical setup.
Choose one of the 3 offered locations for you server and choose the operation system image “Ubuntu 20.04”
Choose a server type based on your budget. The CX 21 is already a sufficient choice. Choose the standard setup with local NVMe SSD drive. The price you see is the cost for running the node for one month within the limits that are stated in the package. The Hornet node will normally not reach the limits (Traffic) of this package.
If you are on a different VPS provider this are the recommended minimum stats that your server should provide:
2 CPU cores, 4 GB RAM, 40 GB SSD drive storage.
Before you purchase we will have to add the option for SSH key first by scrolling further down.
Scroll a bit down and choose the option SSH Key, click “Add SSH Key”. You could also give your server a name here in step 9.
Now we need to generate a secure SSH Key that will be used to access your server from your local computer. This key we will create using the tool PuttyGen that you should already have installed in the PuTTy Software package. Open this app please and select “Ed 25519” as parameter.
Click on “generate” and move your mouse a bit over the “key” window. This is used to generate randomness in the key encryption.
Your generated public key is now shown as a hash-function in the program window. To secure it you need to give it a strong password of your choice and confirm the passphrase. This password is very important. You will need it whenever you want to access your VPS Server using the Putty tool as described further down.
Save the public key and the private key on your computer as a file backup. To use the generated public key in your Hetzner server highlight the hash text in the window with your mouse cursor and copy it (with keys STRG+C or with click on right mouse button and “copy”)
Now, we move back to the Hetzner VPS setup.
Paste the copied public key into the open window on Hetzner (STRG+V or right mouse click “paste”) and click “Add SSH key”
Now you are ready to use the “create and buy now” button.
Your server will now be configured. Once that’s finished take note of the shown “IP-Address”. This was the first step, your server is running and has a secure access method.
2.) Connecting to your VPS Server using PuTTy SSH
We are using PuTTy whenever we want to access the operation system (Ubuntu) of your server. Using the extremely secure login method via SSH is a key point in protecting your server and so the whole IOTA network. Putty is creating a direct connection to the ip address of your server and lets you configure every part of the operation system and the node software.
Open Putty and insert the IP address of your Hetzner server under “Host name or IP Address”
In the menu tree on the left side of Putty open up the tree:
“Connection — SSH — Auth.” and click on “Auth”.
Use the “Browse” button and select the private key file that was created in PuTTyGen which you saved before. By selecting this, it gets pasted into the field next to the “browse” button.
Instead of clicking directly now on “open”, please scroll a bit up in the left sided Putty menu tree and click on “session”.
Insert a name for your connection in “saved sessions” and click on save. The session name will appear in the window below as a ‘saved session’.
If you want to login to the operation system of your server using SSH in the future, you just need to “load” this saved session.
Now please click on “open” to establish a connection.
A warning will pop up, you can click on “Yes”.
A black background command line window will popup. This is the interface that Putty provides to execute commands in the Ubuntu Linux software operation system off your VPS server. Using the secure SSH Key method Putty allows now to access your server from your windows PC directly instead of using a web browser.
You will access the server as the “root” superuser. This user has full control over every aspect of the operation system. This is why we use the secure SSH method to protect this access.
One important thing to mention for Windows user is the following:
- some things that we are used from Windows work a bit different in this (Linux) environment. The most important one for you is this:
- using keyboard commands to copy and paste content is not possible! Dont use “STRG+C” or “STRG+V” or “STRG+X” as you are using it in Windows. It has a different function in the Linux command and can cause failures
- copy / paste content in the command works in another very cool way:
- every text in the command that you highlight with your mouse cursor is directly copied. So, hold the mouse key while you move over the text you want to copy.
- to paste any text that you have copied into the command line, move your cursor on the intended spot where you want it to appear and click the right button of your mouse. The copied text will be pasted to this spot.
Okay — lets keep this in mind and move forward.
The username you type in now is:
Click enter and type in the passphrase that you created for your private key in the PuttyGen app. For security reasons you will not see the letters of your password while you type it. This can be very irritating!
Now you should be successful logged in as the user “root” @ your server
We will now execute a script that will mostly autonomously install all required software and do the needed configurations to run a Hornet Node on a VPS Server. It was build by an IOTA community member “Nuriel77” making the community developed Hornet node software installation with simple commands and you can find it here:
We are following his Installation instructions in this guide.
Please copy this following code from here and paste it into the putty console window (remember paste = click on right mouse key)
sudo bash -c “bash <(curl -s https://raw.githubusercontent.com/nuriel77/hornet-playbook/main/fullnode_install.sh)"
Confirm with key “y” and press enter. The installation will start and you will see a lot of activity in the command console.
After a while you will see this screen. You don’t need to change anything, just use the “Tab” key. This will navigate your cursor towards the “OK” button. If its highlighted in red press enter.
Again use the “Tab” key and confirm “Yes” with enter
choose a username (no special characters like $%^&@ allowed), press enter
give a strong password, repeat it and confirm with enter.
Command line Installation will continue now. After a few minutes you will see again a blue screen. Take a note (write it down) of the both web addresses that are shown to you in the next screen, then confirm
Thats the final screen. The installation of the Hornet Node Software on the VPS is finished.
So finally your node is ready and operational. Lets see what we created and open a browser window to connect to the Hornet dashboard!
3.) Connecting to the Hornet Dashboard and the IOTA Network
Open a new browser window and input the web address of your node as shown in the installation process before (use https!). If you have a security software on your PC it will most likely create a warning:
Overrun this warning and proceed to the website.
Welcome to the HORNET Dashboard. I will switch to dark mode and then we need to login into the web dashboard. Use the same username and password as before.
And so you will be finally logged into your first own IOTA node! Congrats!
You will see that “health” and “sync” still appear red, so we are not yet finished totally.
Your node can only work in the IOTA Network if it is connected with other nodes. This nodes will be your neighbors and we call them “peers”.
You need to find peers (other node operators) and they need to tell you their connection configuration, and you need to tell them yours. The best way to find those neighbors is by accessing the IOTA Discord server and ask for members that would be willing to take you as a neighbor. There is a specific channel in the IOTA Discord for this called #Nodesharing.
The link to the IOTA Discord is here:
Also it is possible to obtain peers from this following website. You share your peering information with the website and will get the information of 3 random chosen peers to connect to.
You can add those neighbors in the “peers” tab of your node dashboard. Click on “add Peer”.
The peering information for a neighboring node consists of an address, a peer id and an alias.
It follows the format:
/Internet protocol version/IP — Address/tcp/peering port
individual node id:
A name for your neighbor that you can choose…
So my fresh created node would have the address:
where “184.108.40.206” is the IP address of my Hetzner server.
and my node id would be:
and Alias could be:
If you would add my node as a peer it will look like that:
As this is only a test node that i will delete, this will not work for you, so its up to you to get a few peers.
Having only one peer is not recommended, because if, for any reason, this other node will go offline you will loose connection to the network and your node will fall out of sync and cannot process transactions anymore. We recommend to have 4–6 peers.
I have added now my original mainnet node as my first peer:
but because my new created node has not yet any connection to the mainnet it will very likely not find a way to connect and synchronize.
So the first peering needs also be implemented from a neighbor that is already connected and synced with the mainnet and so can send the needed information to synchronize your node to your node.
So that your neighbor can add you in his peers you need to send your peering information (per private message) to your neighbors and ask them to add your node in their peers.
As soon as one of your neighbors has added your node to his peering list, you will start to receive incoming messages in your node from this neighbor:
Shortly after this your node will become synced with the network and your status will become green in “health” and “synced”.
The number in CMI/LMI (confirmed milestone index / last milestone index) will start to increase, you will receive incoming messages, and see your neighbors in green as “peers”.
Congratulations! Your node is now part of the worldwide network of IOTA nodes and is actively processing messages in the IOTA Tangle!!!!
I hope you found this guide useful and it did lead you in a good way towards your goal of becoming an IOTA node operator.
If you have any questions or run into problems with you node that you cannot figure out, you are always welcome in IOTA’s Discord server.
There is a dedicated channel called #Hornet-Discussion where the community is always around and happy to support you.
If you have questions or suggestions to me visit the IOTA discord and feel free to pm me or leave a comment under this blog:
If you want to leave me a tip for this guide i will be very thankful and happy to receive a donation on this IOTA address:
And if you want to thank Nuriel77 for his great script you can use this:
The second part of this guide that focusses on managing an already running node after you have finished this tutorial can be found here: https://phyloiota.medium.com/iota-hornet-node-installation-2-8f2639e04d1d