A C++ Bitcoin toolkit library for asynchronous apps

Libbitcoin is a multipurpose bitcoin library targeted towards high end use. An ideal backend to build fast implementations on top: mobile apps, desktop clients and server API's. The library places a heavy focus around asychronicity, speed and availability.

It's enables a big scope for scalability as each component has its own thread pool. By increasing the number of threads for that component the library is able to scale outwards across CPU cores. This are vital as the demands of the bitcoin network grow.

Libbitcoin can be leveraged with different design patterns depending on the task or application: javascript, python, PHP, Ruby and so on.

Features

Libbitcoin Server

A full Bitcoin peer-to-peer node, Libbitcoin Server is also a high performance blockchain query server.
Libbitcoin Server exposes a custom query TCP API built based on the ZeroMQ networking stack. It supports server, and optionally client, identity certificates and wire encryption via CurveZMQ and the Sodium cryptographic library and supports simple and advanced scenarios, including stealth payment queries. The libbitcoin-client library provides a calling API for building client applications. The server is complimented by libbitcoin-explorer (BX), the Bitcoin command line tool and successor to SX.

Libbitcoin Explorer (BX)

BX exposes over 80 commands and supports network communication with libbitcoin-server or its predecessor Obelisk, and the P2P Bitcoin network. BX is well documented and supports simple and advanced scenarios, including stealth and multisig. BX is a rich command line tool for working with Bitcoin. It can be built as a single portable executable for Linux, OSX or Windows and is available for download as a signed single executable for each.

Available for

Libbitcoin believes in the revolutionary promise of Satoshi's original protocol

The toolkit consists of libraries, examples, tests and applications.The project was established on three principles:

Privacy

Bitcoin should always remain as private as possible for its users.

scalability

Bitcoin built today with the future in mind.

Integrity

No individual or group should have enough power over the network to compromise its original aims.

The libbitcoin development project aims to create an extendable, scalable and configurable architecture, along with useful software. Making Bitcoin super-pluggable, highly configurable and easy to interact with.

By having a full featured C++ bitcoin library, it enables everybody to build apps really quickly using a common stable codebase.

License

The project is licensed as AGPL with a lesser clause. It may be used within a proprietary project, but the core library and any changes to it must be published online. Source code for this library must always remain free for everybody to access.