@techcoderx Hive infrastructure update (Late 2022)

in #node2 years ago

witness update log 28.png

Hive has seen tremendous growth since the previous hardware changes (minor, major) of techcoderx.com API node, but that also means significant increase in system requirements to run them. Hence, it's time for another hardware update.

Running v1.27

Since my previous post, Hive went through two hardforks. All my nodes as of now are up-to-date with the latest versions of their respective softwares, mainly hived v1.27 (26f38cd2), hivemind v1.26.1, haf (dd4e984e) and hafah (0bfcf91f).

For the record, these are my first HF26 and HF27 blocks respectively.

API node upgrades

IMG_0186.JPG

For $189, I have replaced both the 2x8GB and 2x16GB RAM kits that were previously in the server with two 32GB Kingston Fury DDR4-3200 C16 modules, totalling 64GB. These 32GB modules aren't officially supported by the CPU nor the motherboard at all, however it managed to boot and run well with XMP enabled.

With this, the experience of using the API node on frontends such as PeakD is so much better as PostgreSQL will actually make better use of the indexes for many queries.

In theory, it means I could add another 2 identical modules for a total of 128GB RAM if I have the budget to do so.

IMG_0183.JPGIMG_0187.JPG

Hive API database storage have grown a lot especially with the introduction of HAF, it also means an increase in NVMe storage required to run one.

I have added a PNY CS3040 2TB drive to the now RAID 0 ZFS pool containing the PostgreSQL database, which cost me $180. The boot drive is now the 2TB Crucial MX500 which also stores the compressed block_log file.

IMG_0171.JPGIMG_0173.JPG

The new 4TB ZFS pool is expected to fill up in approximately 4 years at current blockchain growth.

Witness node changes

I have moved the block producing node from Privex to an Intel NUC (pictured below) with the following specs:

Barebones Intel NUC11TNHi5 mini PC
Intel Core i5-1135G7 4C8T CPU
64GB (2x32GB) Kingston DDR4-3200 C22 RAM (KVR32S22D8/32)
PNY CS3040 2TB NVMe SSD
IMG_0198.JPGIMG_0200.JPG

This node runs on a VPN provider that is different from the API node. Basically they have two different public IP addresses, similar to multiple Hive nodes running in a single datacenter LAN (looking at Hive node operators who use Hetzner 👀) but at a much smaller scale. I'm doing this for 3 main reasons:

1. Cost

Instead of paying a monthly fee to rent a server or a colocation which only makes sense for higher-ranked witnesses, there's the initial hardware purchase ($820 total for this NUC) and the power costs to run it (no more than 20W).

The cost savings is greater if you already have an unmetered network connection as there are no additional costs on that front.

2. Actually getting to choose and own my hardware

Colocation aside, I actually own my hardware that I run my Hive nodes on. Not only there are no significant monthly fees, I get to repurpose it when it is time to do so (i.e. when shared_memory.bin exceeds 64GB max allowed memory).

On top of that, I get to pick the hardware rather than be constrained to what the providers offer, which could mean better hardware.

3. Decentralization

This is the biggest one. Being located in SE Asia where node count is very low if there is even one, the block time offsets are noticeably higher than nodes in US/EU (although it has improved since HF26). This should help the geographical diversity of Hive nodes for both API and seed nodes without the high monthly cost of colocation.

Due to potentially lower uptime (>99% instead of >99.9% on datacenters), I can only recommend this for lower ranked witnesses (below active rank 50) and/or non-producing seed/backup/broadcast nodes.


Witness performance

Current rank: 75th (active rank 71th)
Votes: 7,749 MVests
Voter count: 282

Producer rewards (7 days): 1.264 HP (yes, only one block in HF27 so far)
Producer rewards (30 days): 230.642 HP
Missed blocks (all-time): 29

Server resource statistics

hived (v1.27, 26f38cd2, all plugins)

block_log file size (compressed): 348 GB
block_log.artifacts file size: 1.6 GB
shared_memory.bin file size: 21 GB

HAF db

Output of SELECT pg_size_pretty( pg_database_size('block_log') );
Database size: 3,123 GB

hivemind (v1.26.1, 28f86d5a)

Output of SELECT pg_size_pretty( pg_database_size('hive') );
Database size: 544 GB

Overall Postgres database

RAM usage: 20.9 GB
Compressed disk usage: 1.5 TB


Hive witness footer 2.png

Sort:  

Great post and great work. You should be higher ranked.
I was thinking of running my witness node on a NUC.

Congratulations @techcoderx! You received a personal badge!

Thank you for taking the time to complete the Hive Keychain survey.

You can view your badges on your board and compare yourself to others in the Ranking

Check out the last post from @hivebuzz:

Our Hive Power Delegations to the October PUM Winners
Feedback from the November 1st Hive Power Up Day - New Turnout Record
Take the Keychain Survey and get your Future Shaper badge
Support the HiveBuzz project. Vote for our proposal!