Libbitcoin was the first re-implementation of the bitcoin protocol; it was first developed by Amir Taaki and released in 2011 along with the SX command line tools and later the obelisk server architecture.
It was the first bitcoin alternative implementation to the original reference client. Libbitcoin sought to preserve the values of open software in bitcoin by creating an implementation that payed close attention to key, high-level features of the bitcoin protocol; namely: privacy, scalability and integrity.
The goal was to create a modular toolkit that allowed the bitcoin protocol to be ultra-pluggable, extendable and hackable without creating centralization by allowing specific groups of developers to hardcode preferred parameters.
Version 3 Release
It’s almost 6 years later and an almost entirely different team of developers but development chugs along and the project’s current leader, Eric Voskuil, keeps Amir’s initial vision alive as they officially release Libbitcoin: Version 3.
Libbitcoin as a toolkit, now consists of several separate libraries each abstracting a module of the bitcoin protocol. Libbitcoin contains: the foundational libbitcoin library containing bitcoin primitive types and hashing functions for keys, addresses and transactions, the libbitcoin-client, -server, -networking and -protocol libraries which implement the p2p and networking functionality, and the libbitcoin-database, -blockchain, -consensus libraries which implement a highly efficient database and expose the necessary functionality for working with the blockchain.
In addition, Libbitcoin includes three executable applications implementing core bitcoin functionality. Libbitcoin-Server acts as a full bitcoin query server for blockchain and utxo data. Libbitcoin-node is a bitcoin full node application written with libbitcoin. Lastly, Libbitcoin-explorer is a powerful set of command line utilities for working with bitcoin generally.
Libbitcoin supports many of bitcoin’s important privacy and security features including stealth-addresses, HD-keys, multi-signature and encrypted private keys. It also avoids hardcoding important parameters such as key-version prefixes and active forks, thus, writing an application that works with segregated witness, bitcoin-unlimited, bitcoinXT or an outright alt-coin is entirely up to the developer.
LIbbitcoin offers several ways to install the toolkit including signed executable binaries, a build system with autotools and compiling from source code.
Version 3 offers many improvements to the functionality and reliability of the codebase, enabling a new wave of open source programmers to create decentralized, privacy focused bitcoin/blockchain applications.