During my HiveFest presentation, I had a running node in my purse. It was running in live sync on a Raspberry Pi 4B with 8GB of RAM and 128GB of storage. On the display, it showed the several properties of thebeedevs account (including manabar levels, balances, notifications about incoming/outgoing funds) and the producer of the current block. After the presentation, you asked me some questions, so let’s answer them now.
Why did you decide to run a node on a Raspberry Pi?
We want to show that everyone can run their own node. After all optimizations that were done, you can do it on the Raspberry Pi. You can read about the optimizations in two previous posts:
Resent optimizations
Core services the block log revolution is here
In the chart below, you can see how our optimizations resulted in lower costs, even though the number of blocks is growing.
And moreover it was fun! We did everything from scratch: hooked up the display to the Raspberry Pi, wrote the software, and even designed and sewed the purse.
I want that! Can I do it myself?
Yes, you can!
Try our recipe: How to bake a raspberry pie
What were the biggest challenges during setup and configuration?
The biggest challenge to achieve Raspberry Pi support was the reduction of memory and CPU requirements needed to process data by the hived node. It was only possible due to hard work on software optimizations we did last year.
The important aspect of C++ code porting itself was WASM support (needed for WAX) which in the past improved C++ codebase enough to enable support for different platforms like ARM.
What are limitations in running a Hive node on such lightweight hardware?
We plan to make more performance tests by setting up a special test network and pushing a large number of transactions to the hived node working on the Raspberry Pi device. These tests should show how stable it is under stress conditions.
Usual block processing (incoming from mainnet) which we performed for about one month, didn’t show any problems. Below you can find several grafana statistics we collected for the last two- week period before heading to HiveFest. The device was able to run for several hours without needing to be recharged.
Is it the same kind of node that witnesses have?
Yes, there is no major difference in the hived node specific to witness node configuration. Block production only requires enabling witness_plugin and setting the private keys used to sign blocks. There are no major performance differences to a regular consensus node.
Where did the idea of making a purse for the node come from?
Actually, we have two unique, designer cases for the node. One of them is a purse for carrying the node with you at all times, and the other is a more stationary version.
We wanted to show that now the node can be so small and convenient that you can always have it with you.