Libbitcoin Common

From Bitcoin Wiki
Revision as of 10:32, 15 May 2015 by Evoskuil (talk | contribs) (fix trie description)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The common libbitcoin library is a dependency of all others with the exception of libbitcoin-consensus. It was the first library created and originally contained the core functionality of all of the others.

Example

#include <iostream>
#include <string>
#include <bitcoin/bitcoin.hpp>

// Extract Satoshi's words.
int main()
{
    const auto block = bc::genesis_block();
    const auto& tx = block.transactions[0];
    const auto& input = tx.inputs[0];
    const auto script = bc::save_script(input.script);
    std::string message(script.begin(), script.end());
    std::cout << message << std::endl;
    return 0;
}
♦   ↔☺♦EThe Times 03/Jan/2009 Chancellor on brink of second bailout for banks

Bitcoin Related Features

  • Key formats (raw, BIP32, WIF, compressed/uncompressed, minikey)
  • Encoding functions (base 2/10/16/58/64/85)
  • Hash functions (ripemd160, sha1, sha256, sha512, hmac_sha256, hmac_sha512, pkcs5_pbkdf2_hmac_sha512)
  • URL parsing (BIP21 and BIP72)
  • Mnemonic functions (BIP39)
  • All published mnemonic dictionaries
  • Curve math, deterministic ECDSA, verification and encryption functions
  • Address functions (P2PKH and P2SH/BIP16),
  • Stealth addresses functions[1] for wallets and blockchain search
  • Wire and text serializable type library (P2P protocol)
  • Bitcoin script engine (see libbitcoin-consensus for more information)
  • Asynchronous P2P networking stack built on ASIO

General Purpose Features

  • Logging utilities
  • Patricia Trie template with binary alphabet
  • UTF8 Everywhere tools and integration for Windows
  • Command line, configuration file and help processing utilities

Build and Quality Control

  • Autotools builds for GCC/Clang
  • All build artifacts generated by libbitcoin-build
  • Continuous integration builds via Travis-CI
  • Test coverage bar of 85% by line with Coverall reporting
  • Visual Studio 2013 project and solution files
  • Support for 32/64 bit processors and endianness differences
  • Uses C++11 advancements and restricts use of pointers and exceptions

Dependencies

See Also

References