This how to procedure is for setting up a Seed Node (seed.yehey.org). There are many different ways to complete this task but this one works for me.
Server requirements. You need to have a minimum server requirements to run your Witness node otherwise it won’t work.
- 20GB RAM minimum, 32GB RAM is highly recommended. As of writing this article the current memory usage is at 15.1GB.
- 100GB SSD hard disk minimum, the block log file is around 38GB file size.
- Fast Internet connection, with the above setup I was able to complete setup within 10-12 hours up and running.
- Tested using Ubuntu 16.04.3 LTS for operating system.
Please note. If you go beyond 24 hours to setup your node server, you need to check your hardware and your internet bandwidth speed. The STEEM blockchain needs a faster servers to process blocks.
Let’s begin setting up a new server.
When I setup a Server or a workstation. I always set the date and time correct, so I can get a good event logs later on for trouble shooting.
Set your timezone, for me it’s EST (optional)
sudo timedatectl set-timezone America/New_York
Install all dependencies.
sudo apt update
sudo apt install git curl wget
Download Steem in the box courtesy by @someguy123 using git clone.
THIS IS IMPORTANT. Logout, re-login, then change directory to steem-docker.
Let’s install docker.
You will see something like this captured screen.
Download a copy of blocks. This will take a couple of hours or shorter depending on your server specifications.
Adjust your Witness server memory. MUST re-adjust if server upgrade it’s memory. DO NOT GIVE MORE SHARED MEMORY THAN YOU HAVE ACTUAL RAM AVAILABLE. e.g. In our server specification example, we are using 32GB RAM only use 30G for your shared memory.
sudo ./run.sh shm_size 30G
Edit the config.ini file.
Some data in config.ini file. THIS IS VERY IMPORTANT!
p2p-endpoint = 0.0.0.0:2001
shared-file-size = 30G
shared-file-dir = /shm
enabled-plugin = witness
You don’t need to add your witness and private-key for the seed node.
To disable port forwarding for seeds:
On a blank line, put the following:
Check the logs, every 10 minutes. Use this command to see the current logs.
You will see something like this results.
and this is the normal logs results.
The SEED Node server is synced and ready to serve the STEEM blockchain.
Next is secure the server. I have a network firewall up and running, this is to secure my network perimeter. To add another layer of security. I will enable “ufw” Uncomplicated Firewall in my host server allowing only the services or ports allowed. In this case, only allowing port 22 and 2001. Actually, only port 2001 is open to the public while port 22 is only accessible within my internal network.
sudo ufw enable // enable the uncomplicated firewall
and allow ports 22 for SSH and 2001 for seed port.
sudo ufw allow 22 // for remote management of server.
sudo ufw allow 2001 // assign port for seed node.
That’s all I need for my firewall.
To see the status of ufw, run this command.
sudo ufw status
The security of server doesn’t stop in Firewall management, we make sure the server is always up to date.
To keep the server up to date, follow this procedure https://que.com/howto-keep-your-ubuntu-server-updated-with-patches-and-security-fixes/
That’s all. Keep your server and network secure.
References I’ve used to build my Witness node.
- How to Setup a Witness Server – https://que.com/howto-setup-witness-node-by-yehey/
- How to use ufw in Ubuntu. https://help.ubuntu.com/community/UFW
- Keep the server up to date. https://que.com/howto-keep-your-ubuntu-server-updated-with-patches-and-security-fixes/
Image by nidan pixabay