-
Notifications
You must be signed in to change notification settings - Fork 1
Design Overview
Bitcoin Node utilizes the proactor pattern of asynchronous operation. The pattern allows for a high degree of asynchrony while minimizing thread consumption and eliminating the need to explicitly write threading code. Boost ASIO provides the optimized cross platform proactor framework.
Bitcoin Server builds on Bitcoin Node by adding a blockchain query and notification API based on ZeroMQ. The API is conceptually similar to bitcoind's JSON-RPC API and Electrum's Stratum API.
Security for the API is provided by CurveZMQ which in turn relies on the Sodium cryptographic library. Optional client and server authentication and packet-level privacy are provided using the flexible and highly-performant modern protocol with modern elliptic curve cryptography.
Bitcoin Server is built on libbitcoin-blockchain, a highly performant custom memory-mapped file database.
Bitcoin Server can be built using either the libbitcoin or the libbitcoin-consensus implementation of Bitcoin Consensus algorithm.
It was a design goal to eliminate the dependence on OpenSSL. The native libbitcoin consensus implementation uses libsecp256k1. There is experimental support for use of libsecp256k1 within libbitcoin-consensus.
Bitcoin Server is highly configurable. A single configuration file controls most behaviors and scale factors, including the number of threads used by various services.
Bitcoin Server was designed for trivial deployment as a single file executable program on all major platforms. This simplifies deployment and maintenance of the application in production environments.
Users | Developers | License | Copyright © 2011-2015 libbitcoin developers