Libbitcoin Node: Difference between revisions
Jump to navigation
Jump to search
Split v2/v3 dependencies. |
|||
| Line 47: | Line 47: | ||
* See [https://github.com/libbitcoin/libbitcoin-server/wiki/Design-Overview Design Overview] (Bitcoin Server) | * See [https://github.com/libbitcoin/libbitcoin-server/wiki/Design-Overview Design Overview] (Bitcoin Server) | ||
==Dependencies== | ==Dependencies (Version2)== | ||
* [http://www.boost.org boost] | * [http://www.boost.org boost] | ||
* [https://github.com/bitcoin/secp256k1 secp256k1] | * [https://github.com/bitcoin/secp256k1 secp256k1] | ||
* [[Libbitcoin_Common|libbitcoin]] | * [[Libbitcoin_Common|libbitcoin]] | ||
* [[Libbitcoin_Consensus|libbitcoin-consensus (optional)]] | |||
* [[Libbitcoin_Blockchain|libbitcoin-blockchain]] | |||
==Dependencies (Version3)== | |||
* [http://www.boost.org boost] | |||
* [https://github.com/bitcoin/secp256k1 secp256k1] | |||
* [[Libbitcoin_Common|libbitcoin]] | |||
* [[Libbitcoin_Blockchain|libbitcoin-network]] | |||
* [[Libbitcoin_Blockchain|libbitcoin-database]] | |||
* [[Libbitcoin_Consensus|libbitcoin-consensus (optional)]] | * [[Libbitcoin_Consensus|libbitcoin-consensus (optional)]] | ||
* [[Libbitcoin_Blockchain|libbitcoin-blockchain]] | * [[Libbitcoin_Blockchain|libbitcoin-blockchain]] | ||
Revision as of 22:08, 27 May 2016
The libbitcoin-node library provides an abstraction over the low level networking calls required to implement a full node on the Bitcoin peer-to-peer network. It was originally contained within libbitcoin.
Example
The example expects the blockchain to be initialized in "./blockchain/" (see initchain). The initialize_logging and display_result functions are omitted for brevity.
int main()
{
std::string command;
bc::payment_address address;
initialize_logging("debug.log", "error.log");
std::cout << "Starting up...";
bc::node::fullnode node("blockchain");
node.start();
std::cout << "Type a bitcoin address or 'stop' to exit." << std::endl;
while (true)
{
std::getline(std::cin, command);
if (command == "stop")
break;
if (!address.set_encoded(command))
{
std::cout << "Invalid address." << std::endl;
continue;
}
const auto fetch_handler = [&address](const std::error_code& code,
const bc::chain::history_list& history)
{
display_result(code, history, address);
};
fetch_history(node.chain(), node.indexer(), address, fetch_handler);
}
std::cout << "Shutting down...";
node.stop();
return 0;
}
Console Application
The library is accompanied by the console application Bitcoin Node (bn).
Design
- See Design Overview (Bitcoin Server)
Dependencies (Version2)
Dependencies (Version3)
- boost
- secp256k1
- libbitcoin
- libbitcoin-network
- libbitcoin-database
- libbitcoin-consensus (optional)
- libbitcoin-blockchain