The primary role of witnesses is to provide infrastructure to keep the chain running. Additionally, we decide on blockchain parameters for the best of the network. To achieve that, we run so-called "witness nodes." This is a computer/server running hived
software that validates blocks and connects to other nodes to share the data.
While it's usually better to host a witness node in a professional datacenter to ensure uninterrupted power and network connection, it's also important to have a local node to stay independent and have full control over it in case of emergencies.
When I was speaking about Hive at Berlin Blockchain Week, I met a guy from Solana. He shared some information about how power-hungry their nodes are and how much it costs to run them. I knew Hive is much better in all measures, but I wanted to know how low we could go in terms of power consumption.
I thought it would be a great experiment to show how efficient Hive software is.
And for the sake of explanation, I have more "full power" backup nodes to validate blocks and keep the chain running. It's just an experiment, yet another Hive witness node. Even such an experiment is useful for the network; the more nodes to share and connect, the better it is for Hive.
Hardware
I decided to try popular, secondhand thin clients that are available almost everywhere. They are cheap and quiet (most of them do not have active cooling!). I already have couple of such devices for local services like pihole or homeassistant and I often try different solutions just to have something to compare.
This time I decided to try Dell OptiPlex 3000 Thin Client:
- | - |
---|---|
Processor | Intel(R) Pentium(R) Silver N6005 @ 2.00GHz |
Memory | 8GB |
Network | RTL8111 Gigabit Ethernet Controller |
Storage | Western Digital Sn770 1TB NVMe drive |
Cost | ~$88 |
Dell OptiPlex 3000 Thin Client comes in a handy package as a read-to-use small computer. All you need to do is to connect couple of peripherals and press power button.
Unfortunately, the original SSD size is 2230 and my new one is 2280 (it's 50 mm longer), there was a conflict with a speaker. Fortunately, it was easily removable.
I also had to remove the threaded part that keeps the original drive in place. I just desoldered it.
Software
The recommended system for the Hive node is Ubuntu 22.04, so that's what I used. I decided to go with the server
version because I do not need to use a GUI, as I use a terminal to manage my nodes.
While the system is working exceptionally well, I experienced some issues with the network adapter. For some reason, the download/upload speed was much lower than 1 Gb/s, even when connecting to my other local devices. I found a thread on StackOverflow that the reason is a bug in the RTL8111 driver. I installed many versions of such and even compiled a couple of them from sources, but I never fully fixed the issue. It works at a sufficient speed but not the highest available. It's enough for the experiment.
Results
As I already said, this setup is working extremely well. I have already more than 2 months of uptime and just take a look at the load average!
engrave@local-hive-witness:~$ uptime
14:43:31 up 62 days, 13:38, 0 user, load average: 0.12, 0.15, 0.12
2025-02-23T15:41:35.671518 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585733,"lib":93585732,"type":"p2p","id":"05940145f38ed44f9ebe415c94e950099cf8b708","ts":"2025-02-23T15:41:36","bp":"quochuy","txs":13,"size":15546,"offset":-330736,"before":{"inc":34,"ok":34,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":1,"post":0,"drop":0,"size":233},"exec":{"offset":-336477,"pre":196,"work":5545,"post":2226,"all":7967}}
2025-02-23T15:41:38.698188 p2p_plugin.cpp:199 handle_block ] Got 25 transactions on block 93585734 by steempeak -- Block Time Offset: -301 ms
2025-02-23T15:41:38.698847 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585734,"lib":93585733,"type":"p2p","id":"059401466df97c2bdc2fb63b3485eae490e99235","ts":"2025-02-23T15:41:39","bp":"steempeak","txs":25,"size":7146,"offset":-301824,"before":{"inc":44,"ok":44,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-311560,"pre":170,"work":9566,"post":648,"all":10384}}
2025-02-23T15:41:41.699274 p2p_plugin.cpp:199 handle_block ] Got 26 transactions on block 93585735 by themarkymark -- Block Time Offset: -300 ms
2025-02-23T15:41:41.700471 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585735,"lib":93585734,"type":"p2p","id":"059401475365963bce5e1675b4172ef81ce6d7d2","ts":"2025-02-23T15:41:42","bp":"themarkymark","txs":26,"size":5875,"offset":-300861,"before":{"inc":46,"ok":46,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-316009,"pre":382,"work":14766,"post":1273,"all":16421}}
2025-02-23T15:41:44.683329 p2p_plugin.cpp:199 handle_block ] Got 25 transactions on block 93585736 by abit -- Block Time Offset: -316 ms
2025-02-23T15:41:44.685258 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585736,"lib":93585735,"type":"p2p","id":"05940148aea0541534d0a190ca8557b157f1e1c6","ts":"2025-02-23T15:41:45","bp":"abit","txs":25,"size":5325,"offset":-316828,"before":{"inc":46,"ok":46,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-332958,"pre":237,"work":15893,"post":2006,"all":18136}}
2025-02-23T15:41:47.692084 p2p_plugin.cpp:199 handle_block ] Got 26 transactions on block 93585737 by ocd-witness -- Block Time Offset: -307 ms
2025-02-23T15:41:47.694268 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585737,"lib":93585736,"type":"p2p","id":"0594014996a966ba9c95a8292f10dd87058bee7c","ts":"2025-02-23T15:41:48","bp":"ocd-witness","txs":26,"size":5081,"offset":-307932,"before":{"inc":45,"ok":45,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-312522,"pre":399,"work":4191,"post":2174,"all":6764}}
2025-02-23T15:41:50.737229 p2p_plugin.cpp:199 handle_block ] Got 60 transactions on block 93585738 by ausbitbank -- Block Time Offset: -262 ms
2025-02-23T15:41:50.739119 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585738,"lib":93585737,"type":"p2p","id":"0594014a6df065f9fc044aa95322b0891ad3c1d5","ts":"2025-02-23T15:41:51","bp":"ausbitbank","txs":60,"size":10187,"offset":-262814,"before":{"inc":81,"ok":81,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":1,"post":0,"drop":0,"size":256},"exec":{"offset":-274470,"pre":224,"work":11432,"post":1889,"all":13545}}
2025-02-23T15:41:53.697229 p2p_plugin.cpp:199 handle_block ] Got 26 transactions on block 93585739 by guiltyparties -- Block Time Offset: -302 ms
2025-02-23T15:41:53.698106 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585739,"lib":93585738,"type":"p2p","id":"0594014bede6934e3894ebd893d92bf7131bf53a","ts":"2025-02-23T15:41:54","bp":"guiltyparties","txs":26,"size":8979,"offset":-302786,"before":{"inc":45,"ok":45,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-315118,"pre":326,"work":12006,"post":868,"all":13200}}
2025-02-23T15:41:56.673515 p2p_plugin.cpp:199 handle_block ] Got 23 transactions on block 93585740 by pharesim -- Block Time Offset: -326 ms
2025-02-23T15:41:56.676561 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585740,"lib":93585739,"type":"p2p","id":"0594014c0461d8174058ea84454cf97daa00c6bc","ts":"2025-02-23T15:41:57","bp":"pharesim","txs":23,"size":4985,"offset":-326578,"before":{"inc":43,"ok":43,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-338302,"pre":384,"work":11340,"post":3080,"all":14804}}
2025-02-23T15:41:56.677105 chain_plugin.cpp:659 operator() ] waiting for work: 93.85%, waiting for locks: 0.04%, processing transactions: 5.61%, processing blocks: 0.44%, unknown: 0.06%
2025-02-23T15:41:59.689154 p2p_plugin.cpp:199 handle_block ] Got 29 transactions on block 93585741 by therealwolf -- Block Time Offset: -310 ms
2025-02-23T15:41:59.691063 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585741,"lib":93585740,"type":"p2p","id":"0594014d42e0e41930064502fc5bf83341b4e002","ts":"2025-02-23T15:42:00","bp":"therealwolf","txs":29,"size":5415,"offset":-310921,"before":{"inc":50,"ok":50,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-331295,"pre":432,"work":19942,"post":1936,"all":22310}}
2025-02-23T15:42:02.684282 p2p_plugin.cpp:199 handle_block ] Got 22 transactions on block 93585742 by arcange -- Block Time Offset: -315 ms
2025-02-23T15:42:02.686159 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585742,"lib":93585741,"type":"p2p","id":"0594014ede2112d623b346a891b1981cc36c3aa2","ts":"2025-02-23T15:42:03","bp":"arcange","txs":22,"size":10275,"offset":-315814,"before":{"inc":42,"ok":42,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-329110,"pre":932,"work":12364,"post":1910,"all":15206}}
2025-02-23T15:42:05.704456 p2p_plugin.cpp:199 handle_block ] Got 50 transactions on block 93585743 by yabapmatt -- Block Time Offset: -295 ms
2025-02-23T15:42:05.782216 block_flow_control.cpp:113 on_worker_done ] Block stats:{"num":93585743,"lib":93585742,"type":"p2p","id":"0594014f853ea547eaf59e23e1678918abbd30ce","ts":"2025-02-23T15:42:06","bp":"yabapmatt","txs":50,"size":13671,"offset":-295585,"before":{"inc":69,"ok":69,"auth":0,"rc":0},"after":{"exp":0,"fail":0,"appl":0,"post":0,"drop":0,"size":0},"exec":{"offset":-309258,"pre":202,"work":13471,"post":77743,"all":91416}}
Power consumption

Look at the chart - this is actually incredible. You can run fully featured computer with Hive software node under 5 W on average! It's even closed to 4 W. Think about it. Other blockchains consume many times more power! Not to mention those using PoW.
You can spread the word and let other people know how awesome Hive is!
Support me with your witness vote! Click on the image below:
people with stable housing situations should be hosting nodes. it doesnt seem like a huge cost especially if you are creating content or invested in some other way here. this is a great argument against those who say that blockchain as a whole is inefficient in power consumption. i sure as hell would if i could but ive been discouraged from mobile node hosting haha havent looked into it much since then.
Yep, we still need powerful API nodes that could handle frontends' traffic, but theoretically, almost everyone could run a basic node.
Nice! I have been looking to do something like that too. That seems way lighter than what I have heard you need for a witness node though. I was told like 32GB of RAM and 1TB SSD or NVMe... Maybe that is for an API node...
With enough RAM, you can keep the shared_memory file (basically blockchain state) in memory, rather than on disk (my case here). It will be much faster to load the state on node restart, not to mention replay ;) But if you are patient enough, you can use the cheapest option like this one.
Ah, okay. I have been looking to run a witness locally for a while just didn't know what kind of machine to get.
If you want to go full-performance with minimal cost, you need 32 GB of RAM (shared memory file takes 24 GB at the moment and for fastest node it's recommended to keep it in memory) and 1 TB of storage (nvme preferred for speed, block log file takes a bit under 500 GB at the moment). Regarding the CPU, take anything modern and you will be fine. The most important measure is single core performance as it will define how fast can you replay a node from scratch.
got it thanks for the info!
@tipu curate
Upvoted 👌 (Mana: 22/62) Liquid rewards.
!BBH
I wonder if it would run on a laptop with 64 gb ram 1tb ssd on windows with docker desktop running Ubuntu? I do have a very stable fiber optic fast connection that changes ip only a couple times a year.
This is a great experiment,@engrave!It's impressive that you've managed to run a fully functional Hive witness node on such low-power hardware.It's great to see that Hive is so efficient and can be run on a variety of systems.
I'm curious about the network adapter issue you encountered. Have you tried updating the BIOS on the Dell OptiPlex 3000 Thin Client? Sometimes that can help resolve network driver conflicts.
I'm also interested in the power consumption chart. It's amazing to see how much more efficient Hive is compared to other blockchains.
Thanks for sharing your experiment and for your continued work as a Hive witness!