Askhat Beltsy, representative pool Validator.Center and future masternode under the same name on the network Minter, prepared for readers DeCenter column, in which he told how to run masternode, and also cited real figures for different configurations of the architecture and explained how much fun it will cost.
At the outset I would like to note that the proposed settings are suitable for Testnet and first six months of operation of the core network, but no more. Further with the increase in the number of users, and therefore an increase in the number of transactions and the size of the blockchain, the options presented below will not handle the load.
Let’s start our story with the simplest configuration: the start-up of masternode without using SNA. Briefly let us examine the 3 steps that you need to do to this masternode to start to run.
For reference: Sentry Node Architecture (SNA) is a solution that provides a way to hide the IP address of the node validator and provide more scalable a list of public IP addresses to mitigate DDoS. In more simple terms, this is the first line of defense that protects against cyber attacks the main masternode validator.
Step 1. Rent a virtual server and the hosting provider’s: 2 cores, 4GB RAM and 40GB SSD.
Why these settings?
2 core in Testnet take with a stock that had an extra «strength». The signature is formed only on a single core, but to balance and simultaneously perform other tasks, it is better to use more than 1 CPU.
Will require 40 GB of SSD, enough for at least a couple of months might be enough for a longer period, depending on the development of the network. Need is the SSD because it is faster than HDD.
Blockchain project is rapidly becoming more: 5 thousand transactions 1 kilobyte is lots of it: 5MB + 20% headers => 6MB — and it is one unit, and in the future it is planned to hold 10,000 transactions!
You need 4GB RAM, because the cost is small and it is better to take with a reserve. In Testnet at the moment, missing 1.5 GB of RAM.
The hosting provider we recommend hourly-dependent loads, you can use any from the list:
Google Cloud Platform
That is, if no load, it means less pay, as soon as — allocated resources accordingly becomes more expensive. For the first time is the best solution, while the network will not gain serious momentum.
You can choose the virtual server with constant configuration. In the market of VPS hosting many companies, but our eyes fell on two of them:
Germany: Hetzner with the product CX21 for €5.78 (440 rubles) per month
USA: Linode with the product 2GB for $10 (670 rubles) per month
To take better in the USA because the Germans are very meticulous and have good «hardware» firewalls. «Drop» such servers is difficult, but because of the excess of loss protection occur in 20 milliseconds, and this is pass block.
Step 2. Put the OS on the virtual server and customize it.
OS can be installed on any 64-bit system. You can use Windows, MacOS or UNIX(linux or *bsd). OS, UNIX-like, free and well-established as an OS for servers. If you use Linux-it is Ubuntu Server, Debian, Centos, RedHat; and if the BSD and the FreeBSD, OpenBSD.
Step 3. The installation of the blockchain Minter.
Download the latest version of Minter, and buy you Github. If there is your architecture, you can collect it yourself because the source code is fully open.
In settings set that our server will operate in the mode of the Validator, and it is in the config file.toml prescribe command validator_mode the value «true» (will look like this: validator_mode=»true»).
Noda will run in the mode of the validator without this command, but then there will be more loopholes to «put» node, so you should cut off other functions and leave it only as a validator.
The file is in the config directory where it syncs the entire Blockchain project. The path can be set to this folder, but the default user directory installed directory .minter.
The next, more difficult, but the budget configuration with SNA
Take 3 virtual machines on the Google Cloud Platform. Features: 1 processor (highly recommend 2 or more cores, but core 1 will work), 3.75 GB of RAM and an SSD on 40GB.
The money theoretically goes 3*$27.7= $83.1= 5560.93 rubles, but in reality came out ~2000 rubles per month. GCP raised on three virtual servers, but how much each consumes money, it’s hard to say no such statistics.
But at loading still there are problems (falling), because the signing is not parallelizes. This can handle powerful processor (3 GHz or more), but, unfortunately, mainly in the market of virtual servers presents products with a capacity of 2.7 GHz.
Based on the foregoing, we offer the following «holding the shot» for the first time configuration:
3 or 4 virtual machines Linode 8GB (4 cpu, 8GB memory and 160GB disk), 3 — SNA and 1 validator = $40*4 = $160 (10,706.96 rubles).
3 or 4 virtual machines Google (4 cpu, 8GB memory and 160GB disk), 3 — SNA and 1 validator = $113*4 = $452 (30,247.16 rubles), actual costs will largely depend on the network load, and for the first time is the minimum.
What the developers recommend for Mainnet?
RAM — 4GB
SSD — 200GB
What is with Linode?
Product: Linode 32GB. Price: $160 per month.
Total: $160*4 = $640 = 42,827.84 rubles per month.
What is Hetzner?
vCPU — 8
RAM — 32GB
Disk — 240GB
Traffic — 20TB
Product: CX51. Price €35.28 per month.
Total: €35.28*4 = €141.12 = 10,724.63 rubles per month, but, mind you, are skipped blocks.
What is with Google?
CPU — 8
RAM — 7.2 GB
Disk — 200GB
Price: $178.92 per month
Total $178.92*4 = $715.68 = 47,895.25 rubles per month, mind you, in reality, the fee will be for the load that is potentially less at first.
As you know, a lot of investment to start is not required, it is only important to write a good architecture and to choose the appropriate configuration. Finally I give a few tips:
The blockchain grows, so 200GB is not enough.
3 SNA will be a little better about 10 to cover a larger area.
All your questions and wishes gladly discuss in our chat. Join us!
For placement of materials within the author’s column, please write to firstname.lastname@example.org.