Bitcoin is a decentralized system of digital cash in which users don’t need to trust anyone else with their money; however, the full benefits of this technology are only seen when users operate a full node on the network. The vast majority of Bitcoin users do not operate their own full nodes, but one man is trying to change that with a piece of hardware he calls the Bitcoin Block Clock Jr.
There are many good reasons for individual Bitcoiners to operate a full node. Full nodes are responsible for validating transactions and blocks on the Bitcoin network. Only by running full nodes can users know with full certainty that they received a valid payment. Additionally, the more users that run full nodes, the more decentralized the Bitcoin network is, making it harder to shut down or corrupt.
And as Sia Co-Founder David Vorick pointed out in a talk at this year’s MIT Bitcoin Expo, those who do not operate their own full nodes do not get a say in the matter when hard forks are deployed on the network. “If you’re not running a full node … your opinion on whether or not you like a hard fork is less relevant because, ultimately, if you’re not validating the rules and someone gives you a transaction following a different rule set, you don’t have a way to detect that,” he explained.
Running a full node, however, has been a rather expensive proposition. As a result, larger, economically invested entities that are better able to support full nodes have had more of a say.
According to Vorick, users can be dragged along with miners and large businesses if the cost of running a full node is too high: “If full nodes are expensive to run, only people who are capable of running nodes really have any say in what happens in a contentious upgrade.”
Matthew Zipkin is the man behind the Bitcoin Block Clock. A sound engineer by trade, he has been working in his spare time on creating full nodes that are both affordable and fun to use. During a recent discussion with Bitcoin Magazine, Zipkin revealed his desire to create a piece of hardware for operating a low-cost Bitcoin full node that isn’t boring.
A Bitcoin Full Node That Isn’t Boring
“I always wanted one, but they disappeared when they got bought out, so I decided to build my own,” said Zipkin.
While there are other full node options out there, such as Bitseed, Zipkin wanted to make something that was more than a piece of computer hardware that would sit on the floor next to a router. Zipkin wanted to turn a Bitcoin full node into a work of art, and that’s exactly what he did.
Zipkin built the first version of the Bitcoin Block Clock last year, and it was on display at the SF Bitcoin Meetup’s “Proof of Art” event in May of 2016. After receiving positive feedback at the event and on Reddit, Zipkin decided to make a smaller version of the full node hardware to sell.
The Bitcoin Block Clock included a screen that displayed various live information about the Bitcoin network. Zipkin put the original version of the Bitcoin Block Clock for sale on OpenBazaar and Purse.io, but it hasn’t sold.
“I priced it pretty high because it’s art and I love it and kind of want to keep it,” explained Zipkin. “So of course it still has not sold.”
Creating the Bitcoin Block Clock Jr. With Bcoin
In an effort to create a version of the Bitcoin Block Clock that could be produced at a lower price, Zipkin turned to Raspberry Pi Zero and Bcoin, which is an implementation of the Bitcoin protocol written in Node.js.
Of course, the problem with using SPV mode is that it’s not a full node and the device won’t receive all of the information related to a new Bitcoin block as it’s mined on the network. Zipkin opted for the pruned full node option in Bcoin in an effort to lower the system resources required to operate the node on Raspberry Pi Zero.
“With pruning, I get all the fun block details I wanted to display,” said Zipkin. “I even submitted a pull request (which got merged!) to Bcoin to make my application work even easier.”
Zipkin described the LED displays on the Bitcoin Block Clock Jr. as follows:
“The Bitcoin Block Clock Jr. has two LED rings. The outer ring of 24 LEDs indicates recent blocks. Each LED represents 2 minutes, and they “tick” clockwise around the ring. The color of the LED is determined by the block’s version (BIP 9 version bits combined with keywords from the Coinbase scriptSig like “/EXTBLK” or “/EB1/AD6/”). The inner 16-LED ring indicates the progress of the current difficulty period (2,016 blocks, or about two weeks). It starts blue and gradually turns more and more red as the meter fills up. The tiny little display screen indicates some details about the latest block: height, size, version (and extra scriptSig version) and the adjustment period progress. I added a little web interface so I could turn the lights off at night without having to SSH into the Pi every time.”
An Economical Way to Contribute to the Network
While Zipkin noted that the original Bitcoin Block Clock displays much more information and also comes with full wallet functionality, he also pointed out that the latest model proves that Bitcoin users only need about $20 to run their own full nodes (at least in pruned mode).
Having said that, Zipkin admitted that the Bitcoin Block Clock Jr. can struggle to keep up with the network at times.
“Bcoin plus my Python script and all the GPIO display output just barely hangs in there on this tiny underpowered computer,” said Zipkin. “The Python script has a method to restart Bcoin when it crashes and monitor it as it catches up to the network.”
All of the technical details of the Bitcoin Block Clock Jr. are open source and can be found on GitHub.