<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Libbitcoin_Node</id>
	<title>Libbitcoin Node - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Libbitcoin_Node"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Libbitcoin_Node&amp;action=history"/>
	<updated>2026-05-15T08:00:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=Libbitcoin_Node&amp;diff=5697&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;The [https://github.com/libbitcoin/libbitcoin-node libbitcoin-node] library provides an abstraction over the low level networking calls required to implement a full node on th...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Libbitcoin_Node&amp;diff=5697&amp;oldid=prev"/>
		<updated>2019-06-09T13:26:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;The [https://github.com/libbitcoin/libbitcoin-node libbitcoin-node] library provides an abstraction over the low level networking calls required to implement a full node on th...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The [https://github.com/libbitcoin/libbitcoin-node 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_Common|libbitcoin]].&lt;br /&gt;
&lt;br /&gt;
==Example (Version3) ==&lt;br /&gt;
 #include &amp;amp;lt;future&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;bitcoin/node.hpp&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Starting up...&amp;quot; &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 &lt;br /&gt;
 bc::threadpool pool(1);&lt;br /&gt;
 bc::node::configuration settings(bc::config::settings::mainnet);&lt;br /&gt;
 bc::node::full_node node(settings);&lt;br /&gt;
 std::promise&amp;amp;lt;bc::code&amp;amp;gt; started;&lt;br /&gt;
 &lt;br /&gt;
 const auto handle_started = [&amp;amp;started](const bc::code&amp;amp; ec)&lt;br /&gt;
 {&lt;br /&gt;
 started.set_value(ec);&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 // To also &amp;quot;run&amp;quot; the node on the p2p nework next call node.run(...).&lt;br /&gt;
 node.start(handle_started);&lt;br /&gt;
 &lt;br /&gt;
 const auto ec = started.get_future().get();&lt;br /&gt;
 &lt;br /&gt;
 if (ec)&lt;br /&gt;
 {&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;The node failed to start: &amp;quot; &amp;amp;lt;&amp;amp;lt; ec.message() &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 return 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 const auto display_history = [](const bc::code&amp;amp; code,&lt;br /&gt;
 const bc::chain::history_compact::list&amp;amp; history)&lt;br /&gt;
 {&lt;br /&gt;
 if (code)&lt;br /&gt;
 {&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Error: &amp;quot; &amp;amp;lt;&amp;amp;lt; code.message();&lt;br /&gt;
 return;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 for (const auto&amp;amp; entry : history)&lt;br /&gt;
 {&lt;br /&gt;
 auto output = (entry.kind == bc::chain::point_kind::output);&lt;br /&gt;
 auto kind = (output ? &amp;quot;output&amp;quot; : &amp;quot;spend&amp;quot;);&lt;br /&gt;
 auto height = entry.height;&lt;br /&gt;
 auto hash = bc::encode_hash(entry.point.hash());&lt;br /&gt;
 auto index = entry.point.index();&lt;br /&gt;
 &lt;br /&gt;
 // The value for a spend is the entry.point.checksum() of the&lt;br /&gt;
 // output. This allows the spends to be correlated to outputs.&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;History...&amp;quot; &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Kind: &amp;quot; &amp;amp;lt;&amp;amp;lt; kind &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Height: &amp;quot; &amp;amp;lt;&amp;amp;lt; height &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Point: &amp;quot; &amp;amp;lt;&amp;amp;lt; hash &amp;amp;lt;&amp;amp;lt; &amp;quot;:&amp;quot; &amp;amp;lt;&amp;amp;lt; index &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Value: &amp;quot; &amp;amp;lt;&amp;amp;lt; entry.value &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 }&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 while (true)&lt;br /&gt;
 {&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Type a bitcoin address or 'stop' to exit.&amp;quot; &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 &lt;br /&gt;
 std::string command;&lt;br /&gt;
 std::getline(std::cin, command);&lt;br /&gt;
 &lt;br /&gt;
 if (command == &amp;quot;stop&amp;quot;)&lt;br /&gt;
 break;&lt;br /&gt;
 &lt;br /&gt;
 bc::wallet::payment_address address(command);&lt;br /&gt;
 &lt;br /&gt;
 if (!address)&lt;br /&gt;
 {&lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Invalid address: &amp;quot; &amp;amp;lt;&amp;amp;lt; command &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 continue;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Accept up to 1000 rows and search from block 0.&lt;br /&gt;
 node.chain().fetch_history(address, 1000, 0, display_history);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 std::cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Shutting down...&amp;quot; &amp;amp;lt;&amp;amp;lt; std::endl;&lt;br /&gt;
 &lt;br /&gt;
 return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Console Application==&lt;br /&gt;
The library is accompanied by the console application [[Bitcoin_Node|Bitcoin Node]] (bn).&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
* See [https://github.com/libbitcoin/libbitcoin-server/wiki/Design-Overview Design Overview] (Bitcoin Server)&lt;br /&gt;
&lt;br /&gt;
==Dependencies (Version2)==&lt;br /&gt;
* [http://www.boost.org boost]&lt;br /&gt;
* [https://github.com/bitcoin/secp256k1 secp256k1]&lt;br /&gt;
* [[Libbitcoin_Common|libbitcoin]]&lt;br /&gt;
* [[Libbitcoin_Consensus|libbitcoin-consensus (optional)]]&lt;br /&gt;
* [[Libbitcoin_Blockchain|libbitcoin-blockchain]]&lt;br /&gt;
&lt;br /&gt;
==Dependencies (Version3)==&lt;br /&gt;
* [http://www.boost.org boost]&lt;br /&gt;
* [https://github.com/bitcoin/secp256k1 secp256k1]&lt;br /&gt;
* [[Libbitcoin_Common|libbitcoin]]&lt;br /&gt;
* [[Libbitcoin_Blockchain|libbitcoin-network]]&lt;br /&gt;
* [[Libbitcoin_Blockchain|libbitcoin-database]]&lt;br /&gt;
* [[Libbitcoin_Consensus|libbitcoin-consensus (optional)]]&lt;br /&gt;
* [[Libbitcoin_Blockchain|libbitcoin-blockchain]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Libbitcoin]]&lt;br /&gt;
* [[Bitcoin_Node|Bitcoin Node]]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://bitcoin.it/ http://bitcoin.it/]&lt;br /&gt;
[[Category:Open source]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>