Difference between revisions of "Libbitcoin Common"

From Bitcoin Wiki
Jump to: navigation, search
m (Remove "help" utilities feature as redundant with command line.)
(Don't put coverage bar numbers here.)
Line 44: Line 44:
 
* All build artifacts generated by [[Libbitcoin_Build|libbitcoin-build]]
 
* All build artifacts generated by [[Libbitcoin_Build|libbitcoin-build]]
 
* Continuous integration builds via [https://travis-ci.org/libbitcoin/libbitcoin Travis-CI]
 
* Continuous integration builds via [https://travis-ci.org/libbitcoin/libbitcoin Travis-CI]
* Test coverage bar of 85% by line with [https://travis-ci.org/libbitcoin/libbitcoin Coverall] reporting
+
* Automated test coverage reporting via [https://travis-ci.org/libbitcoin/libbitcoin Coverall]
 
* Visual Studio 2013 project and solution files
 
* Visual Studio 2013 project and solution files
 
* Support for 32/64 bit processors and [http://en.wikipedia.org/wiki/Endianness endianness] differences
 
* Support for 32/64 bit processors and [http://en.wikipedia.org/wiki/Endianness endianness] differences

Revision as of 21:15, 15 May 2015

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

Build and Quality Control

  • Autotools builds for GCC/Clang
  • All build artifacts generated by libbitcoin-build
  • Continuous integration builds via Travis-CI
  • Automated test coverage reporting via Coverall
  • 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