|
| 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| 2 | +<html xmlns="http://www.w3.org/1999/xhtml"> |
| 3 | +<head> |
| 4 | +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| 5 | +<meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| 6 | +<title>libbitcoin: libbitcoin API dox</title> |
| 7 | + |
| 8 | +<link href="tabs.css" rel="stylesheet" type="text/css"/> |
| 9 | +<link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| 10 | + |
| 11 | +<link href="search/search.css" rel="stylesheet" type="text/css"/> |
| 12 | +<script type="text/javascript" src="jquery.js"></script> |
| 13 | +<script type="text/javascript" src="search/search.js"></script> |
| 14 | +<script type="text/javascript"> |
| 15 | + $(document).ready(function() { searchBox.OnSelectItem(0); }); |
| 16 | +</script> |
| 17 | + |
| 18 | +</head> |
| 19 | +<body> |
| 20 | +<div id="top"><!-- do not remove this div! --> |
| 21 | + |
| 22 | + |
| 23 | +<div id="titlearea"> |
| 24 | +<table cellspacing="0" cellpadding="0"> |
| 25 | + <tbody> |
| 26 | + <tr style="height: 56px;"> |
| 27 | + |
| 28 | + |
| 29 | + <td style="padding-left: 0.5em;"> |
| 30 | + <div id="projectname">libbitcoin |
| 31 | + |
| 32 | + </div> |
| 33 | + <div id="projectbrief">Bitcointoolkitlibraryforasynchonrousapps</div> |
| 34 | + </td> |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + </tr> |
| 39 | + </tbody> |
| 40 | +</table> |
| 41 | +</div> |
| 42 | + |
| 43 | +<!-- Generated by Doxygen 1.7.6.1 --> |
| 44 | +<script type="text/javascript"> |
| 45 | +var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| 46 | +</script> |
| 47 | + <div id="navrow1" class="tabs"> |
| 48 | + <ul class="tablist"> |
| 49 | + <li class="current"><a href="index.html"><span>Main Page</span></a></li> |
| 50 | + <li><a href="pages.html"><span>Related Pages</span></a></li> |
| 51 | + <li><a href="namespaces.html"><span>Namespaces</span></a></li> |
| 52 | + <li><a href="annotated.html"><span>Classes</span></a></li> |
| 53 | + <li><a href="files.html"><span>Files</span></a></li> |
| 54 | + <li> |
| 55 | + <div id="MSearchBox" class="MSearchBoxInactive"> |
| 56 | + <span class="left"> |
| 57 | + <img id="MSearchSelect" src="search/mag_sel.png" |
| 58 | + onmouseover="return searchBox.OnSearchSelectShow()" |
| 59 | + onmouseout="return searchBox.OnSearchSelectHide()" |
| 60 | + alt=""/> |
| 61 | + <input type="text" id="MSearchField" value="Search" accesskey="S" |
| 62 | + onfocus="searchBox.OnSearchFieldFocus(true)" |
| 63 | + onblur="searchBox.OnSearchFieldFocus(false)" |
| 64 | + onkeyup="searchBox.OnSearchFieldChange(event)"/> |
| 65 | + </span><span class="right"> |
| 66 | + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> |
| 67 | + </span> |
| 68 | + </div> |
| 69 | + </li> |
| 70 | + </ul> |
| 71 | + </div> |
| 72 | +</div> |
| 73 | +<div class="header"> |
| 74 | + <div class="headertitle"> |
| 75 | +<div class="title">libbitcoin API dox </div> </div> |
| 76 | +</div><!--header--> |
| 77 | +<div class="contents"> |
| 78 | +<div class="textblock"><h2><a class="anchor" id="intro_sec"></a> |
| 79 | +Introduction</h2> |
| 80 | +<p>libbitcoin is a bitcoin library targeted towards high end use. The library places a heavy focus around asychronicity. This enables a big scope for future scalability as each component has its own thread pool. By increasing the number of threads for that component the library is able to scale outwards across CPU cores. This will be vital in the future as the demands of the bitcoin network grow.</p> |
| 81 | +<p>Another core design principle is libbitcoin is not a framework, but a toolkit. Frameworks hinder development during the latter stages of a development cycle, enforce one style of coding and do not work well with other frameworks. By contrast, we have gone to great pains to make libbitcoin function as an independent set of mutual components with no dependencies between them.</p> |
| 82 | +<h2><a class="anchor" id="overview_sec"></a> |
| 83 | +Overview</h2> |
| 84 | +<p>Broadly speaking the main services in libbitcoin can be divided down three lines.</p> |
| 85 | +<h3><a class="anchor" id="network"></a> |
| 86 | +Network services</h3> |
| 87 | +<p>These services are concerned with the network side of things.</p> |
| 88 | +<ul> |
| 89 | +<li><a class="el" href="classlibbitcoin_1_1channel.html">channel </a></li> |
| 90 | +<li><a class="el" href="classlibbitcoin_1_1network.html">network </a></li> |
| 91 | +<li><a class="el" href="classlibbitcoin_1_1protocol.html">protocol </a></li> |
| 92 | +<li><a class="el" href="classlibbitcoin_1_1hosts.html">hosts </a></li> |
| 93 | +<li><a class="el" href="classlibbitcoin_1_1handshake.html">handshake </a></li> |
| 94 | +</ul> |
| 95 | +<h3><a class="anchor" id="blockchain"></a> |
| 96 | +Blockchain service</h3> |
| 97 | +<p>Bitcoin's blockchain is usually disk oriented. Backends all implement the blockchain allowing programs to utilise backends using the same code.</p> |
| 98 | +<ul> |
| 99 | +<li><a class="el" href="classlibbitcoin_1_1bdb__blockchain.html">bdb_blockchain </a></li> |
| 100 | +</ul> |
| 101 | +<h3><a class="anchor" id="supporting"></a> |
| 102 | +Supporting services</h3> |
| 103 | +<p>These services utilise other services and provide additional functionality. They can be thought of as composed services.</p> |
| 104 | +<ul> |
| 105 | +<li><a class="el" href="classlibbitcoin_1_1poller.html">poller </a></li> |
| 106 | +<li><a class="el" href="classlibbitcoin_1_1transaction__pool.html">transaction_pool </a></li> |
| 107 | +<li><a class="el" href="classlibbitcoin_1_1session.html">session </a></li> |
| 108 | +</ul> |
| 109 | +<h2><a class="anchor" id="message"></a> |
| 110 | +Message</h2> |
| 111 | +<p>libbitcoin operates around messages. Each message corresponds to one of the packets in the bitcoin network protocol.</p> |
| 112 | +<p>These primitives make up the corpus of libbitcoin.</p> |
| 113 | +<ul> |
| 114 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1version.html">message::version </a></li> |
| 115 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1verack.html">message::verack </a></li> |
| 116 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1address.html">message::address </a></li> |
| 117 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1inventory.html">message::inventory </a></li> |
| 118 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1get__data.html">message::get_data </a></li> |
| 119 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1get__blocks.html">message::get_blocks </a></li> |
| 120 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1transaction.html">message::transaction </a></li> |
| 121 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1block.html">message::block </a></li> |
| 122 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1get__address.html">message::get_address </a></li> |
| 123 | +<li><a class="el" href="structlibbitcoin_1_1message_1_1ping.html">message::ping </a></li> |
| 124 | +</ul> |
| 125 | +<h2><a class="anchor" id="base"></a> |
| 126 | +Foundational</h2> |
| 127 | +<p>These classes provide foundational functionality that is widely used.</p> |
| 128 | +<ul> |
| 129 | +<li><a class="el" href="classlibbitcoin_1_1exporter.html">exporter </a><ul> |
| 130 | +<li><a class="el" href="classlibbitcoin_1_1satoshi__exporter.html">satoshi_exporter </a></li> |
| 131 | +</ul> |
| 132 | +</li> |
| 133 | +<li><a class="el" href="classlibbitcoin_1_1serializer.html">serializer </a> / <a class="el" href="classlibbitcoin_1_1deserializer.html">deserializer </a></li> |
| 134 | +<li><a class="el" href="classlibbitcoin_1_1script.html">script </a></li> |
| 135 | +<li><a class="el" href="classlibbitcoin_1_1payment__address.html">payment_address </a></li> |
| 136 | +<li><a class="el" href="classlibbitcoin_1_1elliptic__curve__key.html">elliptic_curve_key </a></li> |
| 137 | +<li><a class="el" href="classlibbitcoin_1_1big__number.html">big_number </a></li> |
| 138 | +<li><a class="el" href="classlibbitcoin_1_1async__service.html">async_service </a></li> |
| 139 | +</ul> |
| 140 | +<h2><a class="anchor" id="useful-funcs"></a> |
| 141 | +Useful functions</h2> |
| 142 | +<p>In accordance with C++ principles of encapsulation, operations which wrap or compose other operations are not provided as member functions, but as free functions.</p> |
| 143 | +<p>This minimises intrusion of class interfaces and provides a clear separation as a matter of API design choice.</p> |
| 144 | +<h3><a class="anchor" id="transaction"></a> |
| 145 | +Transaction</h3> |
| 146 | +<ul> |
| 147 | +<li><a class="el" href="">hash_transaction </a></li> |
| 148 | +<li><a class="el" href="">generate_merkle_root </a></li> |
| 149 | +<li><a class="el" href="">previous_output_is_null </a></li> |
| 150 | +<li><a class="el" href="">is_coinbase </a></li> |
| 151 | +<li><a class="el" href="">total_output_value </a></li> |
| 152 | +</ul> |
| 153 | +<h3><a class="anchor" id="block"></a> |
| 154 | +Block</h3> |
| 155 | +<ul> |
| 156 | +<li><a class="el" href="">hash_block_header </a></li> |
| 157 | +<li><a class="el" href="">block_value </a></li> |
| 158 | +<li><a class="el" href="">block_work </a></li> |
| 159 | +<li><a class="el" href="">block_locator_indices </a></li> |
| 160 | +<li><a class="el" href="">genesis_block </a></li> |
| 161 | +</ul> |
| 162 | +<h3><a class="anchor" id="format"></a> |
| 163 | +Format</h3> |
| 164 | +<ul> |
| 165 | +<li><a class="el" href="">pretty_hex </a></li> |
| 166 | +<li><a class="el" href="">bytes_from_pretty </a></li> |
| 167 | +<li><a class="el" href="">hash_from_pretty </a></li> |
| 168 | +<li><a class="el" href="">extend_data </a></li> |
| 169 | +<li><a class="el" href="">cast_chunk </a></li> |
| 170 | +<li><a class="el" href="">uncast_chunk </a></li> |
| 171 | +</ul> |
| 172 | +<h3><a class="anchor" id="hashing"></a> |
| 173 | +Hashing</h3> |
| 174 | +<ul> |
| 175 | +<li><a class="el" href="">generate_ripemd_hash </a></li> |
| 176 | +<li><a class="el" href="">generate_sha256_hash </a></li> |
| 177 | +<li><a class="el" href="">generate_sha256_checksum </a></li> |
| 178 | +</ul> |
| 179 | +<h3><a class="anchor" id="base58"></a> |
| 180 | +Base58</h3> |
| 181 | +<ul> |
| 182 | +<li><a class="el" href="">encode_base58 </a></li> |
| 183 | +<li><a class="el" href="">decode_base58 </a> </li> |
| 184 | +</ul> |
| 185 | +</div></div><!-- contents --> |
| 186 | +<!-- window showing the filter options --> |
| 187 | +<div id="MSearchSelectWindow" |
| 188 | + onmouseover="return searchBox.OnSearchSelectShow()" |
| 189 | + onmouseout="return searchBox.OnSearchSelectHide()" |
| 190 | + onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| 191 | +<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a></div> |
| 192 | + |
| 193 | +<!-- iframe showing the search results (closed by default) --> |
| 194 | +<div id="MSearchResultsWindow"> |
| 195 | +<iframe src="javascript:void(0)" frameborder="0" |
| 196 | + name="MSearchResults" id="MSearchResults"> |
| 197 | +</iframe> |
| 198 | +</div> |
| 199 | + |
| 200 | + |
| 201 | + |
| 202 | +<hr class="footer"/><address class="footer"><small> |
| 203 | +Generated on Sat Apr 21 2012 14:14:38 for libbitcoin by  <a href="http://www.doxygen.org/index.html"> |
| 204 | +<img class="footer" src="doxygen.png" alt="doxygen"/> |
| 205 | +</a> 1.7.6.1 |
| 206 | +</small></address> |
| 207 | + |
| 208 | +</body> |
| 209 | +</html> |
0 commit comments