Home / Archive / Bitcoin Unlimited Nodes Crash Due to Memory Leaks

Bitcoin Unlimited Nodes Crash Due to Memory Leaks

Last Updated March 4, 2021 4:56 PM
Andrew Quentson
Last Updated March 4, 2021 4:56 PM

Almost 600 Bitcoin Unlimited (BU) nodes came down crashing yesterday, falling from around 720 to 180. They have now slightly recovered to 458, with mining nodes apparently unaffected as BU’s hashrate share continues to be at around 41%. Andrew Clifford, President of the Bitcoin Unlimited foundation, publicly stated :

Unfortunately, running with full blocks and a massively bloated mempool is the hardest conditions for efficient block propagation while allowing flexibility for larger blocks. A point release is being prepared for this. In the meantime please try a size like maxmempool=20 in bitcoin.conf .

A BU node operator publicly reported  yesterday he was having problems due to what appeared to be a memory leak. Shortly afterwards, some 400 nodes came down crashing around the same time. Suggesting the network was attacked by exploiting the bug.

Back in 2015, Jonathan Toomim, a bitcoin miner, reported  a memory leak bug in Bitcoin Core followed by the opening of an issue in the project’s github . That was closed a few hours ago by Marco Falke, a Bitcoin Core developer, who stated the issue was “likely fixed.”

Bitcoin Core released a new client this week which, among other things, calculates memory usage more accurately. It’s not clear whether it is roughly the same issue as Bitcoin Core developers tend to not co-operate with BU devs.

The uncooperative attitude leads to, in effect, a duplication of work, with hostile actors potentially exploiting bugs for political points. The main such point may be a demoralization of BU supporters by implicitly suggesting that Bitcoin Core is the only client which can protect you.

Bitcoin clients have many attack vectors when the aim is not profit with their exploitation in many cases actually being costly to the attacker. The main one is a DDoS of nodes, which is usually difficult to defend against. It was used against both Bitcoin XT and Bitcoin Classic.

The preferred method for Bitcoin Unlimited seems to be the exploitation of somewhat fairly harmless bugs as it is highly unlikely any money was lost. This is the third time such bugs in BU have been exploited, with the result being a temporary fall in node counts which usually recover.

It’s not clear whether the bug exploit strategy would be effective against an experienced team. The bitcoin protocol has many lines of code with resources necessarily limited requiring prioritization. However, no bugs were exploited for Bitcoin XT or Bitcoin Classic.

That means probable detractors are likely pointing out the relative inexperience of Bitcoin Unlimited developers. An inexperience due to the client being grassroots. Thought at a conceptual level by ordinary bitcoiners and likewise coded by ordinary bitcoiners.

This inexperience was a disadvantage from the beginning, but on the other hand, it shows that bitcoin can operate fairly well even if all bitcoin developers are replaced. There may, of course, be a few bumps on the road, but nothing compared to Bitcoin Core’s chain split in 2013 and 2015 which led to miners losing a significant sum.

In the end, this is all just code. Bugs will be found; bugs will be fixed. That’s the relatively easy part as long as the bugs are relatively harmless. On the other hand, what appears to be incredibly difficult is getting some resolution to this never ending debate which is now increasing frustration across the bitcoin ecosystem.

How hard can it be to make a decision after two years of debate instead of endlessly scoring cheap political points to and fro? – may be a question we’ll soon get very bored of asking.

Featured image from Shutterstock.