Difference between revisions of "Libbitcoin Common"

From Bitcoin Wiki
Jump to: navigation, search
(Add libbitcoin content)
(Add source code example.)
Line 1: Line 1:
 
The common [https://github.com/libbitcoin/libbitcoin libbitcoin] library is a dependency of all others with the exception of [[Libbitcoin_Consensus|libbitcoin-consensus]]. It was the first library created and originally contained the core functionality of all of the others.
 
The common [https://github.com/libbitcoin/libbitcoin libbitcoin] library is a dependency of all others with the exception of [[Libbitcoin_Consensus|libbitcoin-consensus]]. It was the first library created and originally contained the core functionality of all of the others.
 +
 +
==Example==
 +
    #include <iostream>
 +
    #include <bitcoin/bitcoin.hpp>
 +
   
 +
    int main()
 +
    {
 +
        const auto block = bc::genesis_block();
 +
        const auto& tx = block.transactions[0];
 +
        const auto& input = tx.inputs[0];
 +
        const auto script = 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==
 
==Bitcoin Related Features==
Line 37: Line 54:
 
==See Also==
 
==See Also==
 
* [[Libbitcoin]]
 
* [[Libbitcoin]]
 +
* [https://github.com/aantonop/bitcoinbook/blob/develop/appdx-bx.asciidoc Libbitcoin ]
  
 
==References==
 
==References==

Revision as of 01:30, 14 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 <bitcoin/bitcoin.hpp>
   
   int main()
   {
       const auto block = bc::genesis_block();
       const auto& tx = block.transactions[0];
       const auto& input = tx.inputs[0];
       const auto script = 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 (based on libsecp256k1)
  • 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 optimized for binary search
  • UTF8 Everywhere tools and integration for Windows
  • Command line, configuration file and help processing utilities
  • Uses C++11 advancements and restricts use of pointers and exceptions

Build and Quality Control

  • Autotools builds for GCC/Clang
  • All build artifacts generated by libbitcoin-build
  • Extensive unit text matrix (based on Boost Test)
  • Continuous integration builds via Travis-CI
  • Visual Studio 2013 project and solution files
  • Support for 32/64 bit processors and endianness differences

Dependencies

See Also

References