Bitcoin reference implementation

Filed under: Uncategorized — Jacob Welsh @ 05:14

Here at JWRD we maintain the most practical yet conservative known Bitcoin node implementation, derived from release 0.5.3 of March 2012 through a series of readable, purposeful and cryptographically signed patches contributed by known entities. It resolves known bugs in the old code and improves usability while staying faithful to the original design: an honest node in the words of Satoshi Nakamoto's white paper. Dependency sprawl is kept in check, with no trendy/buggy new database systems piled onto the original Berkeley DB. The various censorship attacks known as soft forks, promoted by the enemies of Bitcoin and enforced thus far by the mining cartel (archived), are absent.(i)

In addition, we wrote and maintain Gales Bitcoin Wallet, which decouples the sensitive private key generation and signing operations from the inherently network-exposed node, enabling true air-gapped operation and full control over transaction construction. It works either in concert with our node, or fully standalone based on data collected from some other source, by hand if need be. Its implementation makes a radical departure from the C++/Wintel/Object-Oriented code soup that the node implementation remains stuck with: the whole stack is written from scratch and runs on a fully-owned implementation of Scheme, a neat, tidy and type-safe classical programming language in the Lisp family.

Our present publishing paradigm is to issue a detailed article discussing each proposed patch or series; so far these can all be found here on Fixpoint under the Bitcoin category. Then, when appropriate, we roll them up into a new version of a downloader script known as fetch-bitcoind which constitutes the formal release. See The simplest way yet to fetch Bitcoin code for its introduction, system requirements and usage instructions, then return here to find the latest recommended version.

Source code can be browsed online and linked, at the state produced by any given patch, using the Codeview tool as introduced here.

Latest release (signature), published 2024-03-22.

History (signature), published 2023-04-25. (signature), published 2023-03-23. (signature), published 2022-05-21. (signature), published 2022-05-05. (signature), published 2022-02-04.

  1. Specifically, BIP 16 aka Pay to Script Hash aka 3-addresses from 0.6.0 as well as all newer forks are out, except BIP 30 which was in by way of a backport in 0.5.3. [^]


  1. [...] with a clue, by the definition of what having a clue means, would conclude he's smarter* or more accomplished. ___ ___ * Where I want to link my unwritten article about the village idiot finally being [...]

    Pingback by The root of our dispute is I value substance over form and thus manage to learn and grow, while you cling to form and, thus, dwell in mediocrity. on Dorion Mode - A blog by Robinson Dorion. — 2023-07-28 @ 13:46

  2. [...] of this change, but remember that being a Bitcoiner means more than just owning some coin or even running a node, it means adapting yourself to the Bitcoin model, which includes learning the Variety Speak : In [...]

    Pingback by Chat analysis : the ever enduring IRC on Dorion Mode - A blog by Robinson Dorion. — 2023-08-02 @ 18:45

  3. [...] work will also be included in the keksum version distributed as part of the next fetch-bitcoind release. I did have some fun though thinking about how it could be implemented while preserving the current [...]

    Pingback by File-level error recovery for keksum « Fixpoint — 2024-03-09 @ 21:03

  4. [...] sixth fetch-bitcoind release that wraps these up along with the recent keksum work is up in the canonical place. Besides the new patches, it updates the base URLs for my change of domain name although I've still [...]

    Pingback by Dropping BDB locking, bitcoind finally follows the Bitcoin protocol « Fixpoint — 2024-04-12 @ 04:49

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by MP-WP. Copyright Jacob Welsh.