My Profile Photo


Using liberty-minded opensource tools, and using them well

Running a Bitcoin Unlimited Node

I decided that since I have the available bandwidth, technical skills, and hardware to do so, that I would run a node. I chose to support Bitcoin Unlimited because I believe that software provides for a free market instead of a fee market.

Clone the code. Here's the repo.

Wow, that was an ordeal.

Not only did it take forever to sync the entire blockchain, it also just so happened that I downloaded the client:

  1. Several hours after was released
  2. Several days before the assert(0) bug

The second of which, occurred while I had less than 10,000 blocks to go to get caught up. Luckily I wasn’t shut down, but I upgraded my client as soon as possible nonetheless. Regardless of all that, I still believe that all of this was worth it, and I am very glad at where I am today, running BTC Unlimited node in support of my favorite cryptocurrency.

Compiling BTC Unlimited

I did, and there was absolutely no benefit over grabbing the binaries, as usual (though don’t ask me about rtorrent-vi-color). The links below can help anyone out who wants to, but it’s hardly worth it, and very time consuming on top of an already time-consuming process.

CPU cores

I found out that when I only allocated 1 core to process the download, it became a bottleneck. I upped it to two, and it was solidly at ~75% for the rest of the duration of the download. After the download finished, the VM continues to run at around 75% utilization.

Bitcoin Unlimited itself

There’s not much to get super excited over. It’s only a platform on which other things were meant to be built upon (see below). I highly recommend bitcoin-cli help && experimenting over any type of documentation. What I read was a waste of time. However, finding out when my node was synced was of much importance to me while I was waiting.

Luckily enough there’s the perfect op-code for that - getblockcount. There are ways of scripting this, but since I had no good output, I figured I’d just look at it every now and again. has the current block count that I was able to compare it against to see how close I was to completion - it took longer than it’d like. However, I did realize that I was only leeching off of the network when I checked the connection count. When getconnectioncount returned only 8 peers, I went looking online. It appears that is the maximum number of download connections that are available at any given moment. Maxing those out is an indication of not having an port open to receive connections (port 8333 by default). After NATting it and taking care of iptables, the connection count rose quickly and hovered consistently around 30, give or take a few.

Bitcoin Node Stats

Here’s where the fun began. And by fun I mean hours of figuring out what Django is, how it works, what was going on here, etc. But in the end, it was worthwhile because it already had a dark color scheme that I didn’t have to tweak, and it came with nifty charts and a color coded connection list. It is, in a word, primo.


static_root static_url

python collect static

disabling admin and

static/js/plots.js (/bu-node/)static/

installing python3

getting apache to run python3 in its env