Bitcoin and Ubuntu

Micha Bailey michabailey at gmail.com
Thu Dec 12 22:00:18 UTC 2013


Apologies for the cross-post, but I wasn't sure which mailing list would be
most appropriate.
Also, please note that I am writing this as myself, not as a representative
of the Bitcoin project or development community.

The Bitcoin software (the codebase maintained at
https://github.com/bitcoin/bitcoin, also known as the Satoshi client,
including bitcoind, the daemon version of the software, and Bitcoin-Qt, the
GUI version of the software) is currently available in Ubuntu's software
sources, specifically the Universe branch, as far back as Precise
(bitcoind) and Raring (Bitcoin-Qt). There are several problems with the way
Bitcoin is being distributed by Ubuntu. In this message, I'd like to
mention a few of these, and try and find a way to solve the issues.

Bitcoin is not a mature piece of software. It is still in beta, and new
versions become available periodically. These new releases vary in nature,
from adding new features to fixing bugs, some of which are critical. Bugs
that are fixed can be anything from DoS bugs that can allow an attacker to
cause nodes to become unresponsive or even crash, to minor graphical
glitches in the Bitcoin-Qt GUI, to bugs that can inadvertently cause
consensus failures, leading to a fork in the blockchain, such as the March
2013 fork. Some changes may be changes in criteria for transaction relay,
such as allowing new transaction types or adjustments to the default fee
policy. As I understand it, the way Ubuntu works is that when a new version
of Ubuntu comes out, every 6 months, it's considered frozen, and packages
that are in the repositories for that version aren't kept up to date. This
is a problem for Bitcoin, given its status as a distributed consensus
system that relies on the fact that nodes follow the same rules. Debian's
version 0.8.3-2 of the package made the switch to using LevelDB included in
the upstream code, rather than using the system LevelDB. This is explained
in the debian/README.source file. Note, however, that Ubuntu releases prior
to Saucy (Raring and older) haven't had this fix applied, which could
potentially result in an unpredictable consensus split, as mentioned above.

Additionally, there are other issues with the packaging process. Bitcoin,
as of version 0.8.0, switched the blockchain indices from using Berkeley DB
to using LevelDB. However, BDB is still used in the bitcoin wallet. All
upstream release binaries are built using BDB version 4.8. The only version
of Ubuntu which includes this version of BDB in its repositories is Lucid.
Later versions build their Bitcoin packages with BDB 5.1. The problem with
this is that BDB databases are not backwards-compatible with older versions
of BDB. Any bitcoin wallet that is touched (created, or even once opened)
by a Bitcoin binary built with a version later than 4.8 will become
impossible to open with any Bitcoin binary built with an earlier version,
which as mentioned includes the vast majority of Bitcoin binaries used on
other platforms. This means that the wallet is not portable between
platforms as is expected, and the error message is not one that clearly
indicates the problem, as the failure originates in BDB and not the Bitcoin
software.

For these reasons and others, including the Bitcoin software in any stable,
no-updates release is not a good thing for Ubuntu users nor for the bitcoin
network as a whole. There is already a PPA, maintained by Matt Corallo, one
of the core developers, and linked to from http://bitcoin.org/en/download.
Said PPA provides both the Bitcoin software and the BDB 4.8 packages needed
for wallet compatibility with the software on other platforms. Over at
Debian, their Bitcoin Packaging Team has been maintaining the package,
keeping it in the unstable branch (sid) only, where it is allowed to be
updated with new releases of the software. It is not included in the stable
repository (wheezy), nor in testing (jessie). If I understand correctly,
Ubuntu doesn't have that kind of release. It is my opinion that, given
Ubuntu's methods of managing its software, it would be better to not
include Bitcoin in the Ubuntu repositories, unless exceptions to the
policies could be made, allowing all supported Ubuntu versions to get the
latest updates as they come down from upstream. As a first step, the
Bitcoin software should be removed from Trusty's repositories, assuming no
exception can be made. Ideally, it would also be removed from the older
repositories (Precise, Quantal, Raring, Saucy) if it can't be updated,
though I'm told that's significantly harder from the perspective of the
standard workflows.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-motu/attachments/20131213/2ccc7d76/attachment.html>


More information about the Ubuntu-motu mailing list