public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: John Dillon <john.dillon892@googlemail•com>
To: Gregory Maxwell <gmaxwell@gmail•com>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Linux packaging letter
Date: Sun, 28 Jul 2013 18:21:44 +0000	[thread overview]
Message-ID: <CAPaL=UWsZ1xAgqSC==FzT3xEi1J6-qw4mYmnL0vycq5ipC0v7g@mail.gmail.com> (raw)
In-Reply-To: <CAAS2fgR7evOkrTpX75EQgJzuDUBqGOKCAvWJR_5T64REOJmJ8A@mail.gmail.com>

My signature:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Linux distribution packaging and Bitcoin
========================================
2013-07-23

This note summarises the dangers inherent in the Linux distribution
packaging model for Bitcoin, and forms a request from upstream
maintainers to not distribute Bitcoin node software as part of
distribution package repositories without understanding the special
requirements of Bitcoin.

Distributors typically unbundle internal libraries and apply other
patches for a variety of generally good reasons, including ensuring
that security-critical fixes can be applied once, rather than multiple
times for many different packages. In most cases, the common
distribution packaging policy has many advantages.

However, Bitcoin nodes are an unusual category of software: they
implement a complex group consensus in which every client verifies the
behaviour of every other exactly. Even an exceptionally subtle change -
including apparently harmless bugfixes - can cause a failure to reach
consensus. A consensus failure of one client is a security risk to the
user of that client. A significant number of nodes failing to reach
consensus - as happened in March 2013 due to a change in database
libraries[1] - is a critical problem that threatens the functionality
and security of the system for all users.

For this reason, it is _vital_ that as much of the network as possible
uses _unmodified_ implementations that have been carefully audited and
tested, including dependencies. For instance, if the included copy
of LevelDB in bitcoind is replaced by a system-wide shared library,
_any_ change to that shared library requires auditing and testing,
a requirement generally not met by standard distributor packaging
practices.

Because distributed global consensus is a new area of computer science
research, the undersigned request that distributors refrain from
packaging Bitcoin node software (including bitcoind and Bitcoin-Qt)
and direct users to the upstream-provided binaries instead _until they
understand the unique testing procedures and other requirements to
achieve consensus_. Beyond being globally consistent, upstream binaries
are produced using a reproducible build system[2], ensuring that they
can be audited for backdoors.

1. https://en.bitcoin.it/wiki/BIP_0050
2. http://gitian.org/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBCAAGBQJR9WC5AAoJEEWCsU4mNhiPg6UH/2oHzBWBPaQMhH/GCTHQEi5U
7GSRfqwihIs/M2ROHLNq0HhgWR7mPAh5TTI6+tG95FCGCGNZq0seqw9wW4ZyGCoc
VueY51q4hcn23405oLD/QGK2lDxxywWY8XtFYVPqAzXTq6zRzgpNJkjoRtOAUOP7
3PrRkimYYyj0KrqFg+cEvZDT27dkeX+5PXM6Ua0o7h/TlhR2RJPhej5DI8cNLXgA
f0t+mES4Apb6zLgnEYYlPp22FR9vuFcJO3z1akhVL4DLUMqr58NYHLVnH1FH0Jhn
hVuld159QtCjQ5Qyn19cn86akTQJVi+ikCXqaKriCc2jBFX7TCI8WTDc6aSZpsQ=
=oX5d
-----END PGP SIGNATURE-----



  reply	other threads:[~2013-07-28 18:21 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-23 20:01 Mike Hearn
2013-07-23 20:14 ` Gregory Maxwell
2013-07-23 20:32   ` Mike Hearn
2013-07-23 20:50     ` Gregory Maxwell
2013-07-28 18:21       ` John Dillon [this message]
2013-07-23 22:02 ` Scott Howard
2013-07-23 22:26   ` Luke-Jr
2013-07-24  3:00     ` Scott Howard
2013-07-24  1:45   ` Douglas Huff
2013-07-24  2:27     ` Scott Howard
2013-07-24  3:54     ` [Bitcoin-development] Endianness (was: Linux packaging letter) Wendell
2013-07-24  4:03       ` Luke-Jr
2013-07-24  4:07       ` Gregory Maxwell
2013-07-24  4:09         ` Gregory Maxwell
2013-07-23 22:33 ` [Bitcoin-development] Linux packaging letter Pieter Wuille
2013-07-23 23:23 ` Greg Troxel
2013-07-23 23:45   ` Luke-Jr
2013-07-24  0:50   ` Gregory Maxwell
2013-07-24  2:35     ` zooko
2013-07-24  3:19       ` Gregory Maxwell
2013-07-24  8:28         ` Mike Hearn
2013-07-24 13:52           ` Jeff Garzik
2013-07-24 15:32             ` zooko
2013-07-24 19:35               ` Gregory Maxwell
2013-07-24 16:01           ` zooko
2013-07-27  0:45           ` Greg Troxel
2013-07-27  0:43     ` Greg Troxel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPaL=UWsZ1xAgqSC==FzT3xEi1J6-qw4mYmnL0vycq5ipC0v7g@mail.gmail.com' \
    --to=john.dillon892@googlemail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=gmaxwell@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox