Libbitcoin Node

From Bitcoin Wiki
Revision as of 22:07, 12 July 2015 by Evoskuil (talk | contribs)
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 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

TODO

Dependencies

See Also

References