dash-docs/en/doxygen/html/chain_8h_source.html

208 lines
116 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Dash Core: src/chain.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="bitcoin_logo_doxygen.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Dash Core
&#160;<span id="projectnumber">0.12.2.1</span>
</div>
<div id="projectbrief">P2P Digital Currency</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('chain_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">chain.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="chain_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright (c) 2009-2010 Satoshi Nakamoto</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Copyright (c) 2009-2015 The Bitcoin Core developers</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Distributed under the MIT software license, see the accompanying</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// file COPYING or http://www.opensource.org/licenses/mit-license.php.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#ifndef BITCOIN_CHAIN_H</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define BITCOIN_CHAIN_H</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="arith__uint256_8h.html">arith_uint256.h</a>&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="block_8h.html">primitives/block.h</a>&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pow_8h.html">pow.h</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tinyformat_8h.html">tinyformat.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="uint256_8h.html">uint256.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html"> 17</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8"> 19</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e"> 20</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a958cd730b290bbb0153d514c56517590"> 22</a></span>&#160; <a class="code" href="structCDiskBlockPos.html#a958cd730b290bbb0153d514c56517590">ADD_SERIALIZE_METHODS</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> Operation&gt;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a821bb4eebc99ae39c20133d80244325f"> 25</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="structCDiskBlockPos.html#a821bb4eebc99ae39c20133d80244325f">SerializationOp</a>(Stream&amp; s, Operation ser_action, <span class="keywordtype">int</span> nType, <span class="keywordtype">int</span> nVersion) {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a>));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a>));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#ac34e46c8bf3256b3eca09f54911cf8bd"> 30</a></span>&#160; <a class="code" href="structCDiskBlockPos.html#ac34e46c8bf3256b3eca09f54911cf8bd">CDiskBlockPos</a>() {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="structCDiskBlockPos.html#a0a6ba113219a456472081ee6d6b20a72">SetNull</a>();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a0c96947d09bb4aaf28ab2d7866d20918"> 34</a></span>&#160; <a class="code" href="structCDiskBlockPos.html#a0c96947d09bb4aaf28ab2d7866d20918">CDiskBlockPos</a>(<span class="keywordtype">int</span> nFileIn, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPosIn) {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> = nFileIn;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a> = nPosIn;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a04787eb60da48b80e0f7fb402c6896fe"> 39</a></span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structCDiskBlockPos.html#a04787eb60da48b80e0f7fb402c6896fe">operator==</a>(<span class="keyword">const</span> <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> &amp;a, <span class="keyword">const</span> <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> &amp;b) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> (a.<a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> == b.<a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> &amp;&amp; a.<a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a> == b.<a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a>);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#af77481af6cf1d32788ba67c29cc061b5"> 43</a></span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structCDiskBlockPos.html#af77481af6cf1d32788ba67c29cc061b5">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> &amp;a, <span class="keyword">const</span> <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> &amp;b) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> !(a == b);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a0a6ba113219a456472081ee6d6b20a72"> 47</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="structCDiskBlockPos.html#a0a6ba113219a456472081ee6d6b20a72">SetNull</a>() { <a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> = -1; <a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a> = 0; }</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#a7dd98fe3f5372d358df61db31899b0af"> 48</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structCDiskBlockPos.html#a7dd98fe3f5372d358df61db31899b0af">IsNull</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> == -1); }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structCDiskBlockPos.html#aec119689268c0dc9c2f1e3b25fd859ad"> 50</a></span>&#160; std::string <a class="code" href="structCDiskBlockPos.html#aec119689268c0dc9c2f1e3b25fd859ad">ToString</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <a class="code" href="tinyformat_8h.html#a56c674871a61baaad36ad52238c08857">strprintf</a>(<span class="stringliteral">&quot;CBlockDiskPos(nFile=%i, nPos=%i)&quot;</span>, <a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a>, <a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9"> 57</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9">BlockStatus</a> {</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9af5c7f1d4701444b3f7a0041c96bb4ab6"> 59</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9af5c7f1d4701444b3f7a0041c96bb4ab6">BLOCK_VALID_UNKNOWN</a> = 0,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9aa3b88e970b4071e746c84191f049fac5"> 62</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9aa3b88e970b4071e746c84191f049fac5">BLOCK_VALID_HEADER</a> = 1,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a67f3a88eeb793cc62f427f87ae830573"> 66</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a67f3a88eeb793cc62f427f87ae830573">BLOCK_VALID_TREE</a> = 2,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a3eef30f876594ac79b888b7d1ff6c66c"> 73</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a3eef30f876594ac79b888b7d1ff6c66c">BLOCK_VALID_TRANSACTIONS</a> = 3,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a00332fcf52dbd55990d8ff86b616bc65"> 77</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a00332fcf52dbd55990d8ff86b616bc65">BLOCK_VALID_CHAIN</a> = 4,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a47b28fca76b64d094ddca0a3aa8da230"> 80</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a47b28fca76b64d094ddca0a3aa8da230">BLOCK_VALID_SCRIPTS</a> = 5,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846"> 83</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a> = <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9aa3b88e970b4071e746c84191f049fac5">BLOCK_VALID_HEADER</a> | <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a67f3a88eeb793cc62f427f87ae830573">BLOCK_VALID_TREE</a> | <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a3eef30f876594ac79b888b7d1ff6c66c">BLOCK_VALID_TRANSACTIONS</a> |</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a00332fcf52dbd55990d8ff86b616bc65">BLOCK_VALID_CHAIN</a> | <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a47b28fca76b64d094ddca0a3aa8da230">BLOCK_VALID_SCRIPTS</a>,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15"> 86</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15">BLOCK_HAVE_DATA</a> = 8, </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd"> 87</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd">BLOCK_HAVE_UNDO</a> = 16, </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9acdae7e012d53f3bca66c098681f79d0c"> 88</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9acdae7e012d53f3bca66c098681f79d0c">BLOCK_HAVE_MASK</a> = <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15">BLOCK_HAVE_DATA</a> | <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd">BLOCK_HAVE_UNDO</a>,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9ab3f668fe41faf909922945b37b25ec2d"> 90</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9ab3f668fe41faf909922945b37b25ec2d">BLOCK_FAILED_VALID</a> = 32, </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a8653dc31c354a84e6fd0be105889262f"> 91</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a8653dc31c354a84e6fd0be105889262f">BLOCK_FAILED_CHILD</a> = 64, </div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a88df51e92f2f675baff60e0a5bd170ef"> 92</a></span>&#160; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a88df51e92f2f675baff60e0a5bd170ef">BLOCK_FAILED_MASK</a> = <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9ab3f668fe41faf909922945b37b25ec2d">BLOCK_FAILED_VALID</a> | <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a8653dc31c354a84e6fd0be105889262f">BLOCK_FAILED_CHILD</a>,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classCBlockIndex.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCBlockIndex.html">CBlockIndex</a></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#afac8099e03ffda463c7153ca82d37b66"> 104</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classuint256.html">uint256</a>* <a class="code" href="classCBlockIndex.html#afac8099e03ffda463c7153ca82d37b66">phashBlock</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39"> 107</a></span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* <a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#ab6242bb77bc01617f5b402d14e6a3883"> 110</a></span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* <a class="code" href="classCBlockIndex.html#ab6242bb77bc01617f5b402d14e6a3883">pskip</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5"> 113</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a"> 116</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a">nFile</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#af164283dfb2d62ac44be8d10446bce4a"> 119</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#af164283dfb2d62ac44be8d10446bce4a">nDataPos</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a865ddd56406c23e98cdc61511a61eb64"> 122</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a865ddd56406c23e98cdc61511a61eb64">nUndoPos</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a31e65c1f491d438dfdcd8d92bdfa73a1"> 125</a></span>&#160; <a class="code" href="classarith__uint256.html">arith_uint256</a> <a class="code" href="classCBlockIndex.html#a31e65c1f491d438dfdcd8d92bdfa73a1">nChainWork</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#ac8e219a377839d2f9133a4387f46e44e"> 129</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#ac8e219a377839d2f9133a4387f46e44e">nTx</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#af3c6d6dd8a7579e5ce516d94b98d2db5"> 134</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#af3c6d6dd8a7579e5ce516d94b98d2db5">nChainTx</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011"> 137</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58"> 140</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c"> 141</a></span>&#160; <a class="code" href="classuint256.html">uint256</a> <a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6"> 142</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713"> 143</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01"> 144</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">nNonce</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a4a679af5f7924cc594b8131371b21e54"> 147</a></span>&#160; uint32_t <a class="code" href="classCBlockIndex.html#a4a679af5f7924cc594b8131371b21e54">nSequenceId</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a6139e9e2cfceaef3694631cb7c330ff0"> 149</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCBlockIndex.html#a6139e9e2cfceaef3694631cb7c330ff0">SetNull</a>()</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classCBlockIndex.html#afac8099e03ffda463c7153ca82d37b66">phashBlock</a> = NULL;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a> = NULL;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classCBlockIndex.html#ab6242bb77bc01617f5b402d14e6a3883">pskip</a> = NULL;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a> = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a">nFile</a> = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classCBlockIndex.html#af164283dfb2d62ac44be8d10446bce4a">nDataPos</a> = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classCBlockIndex.html#a865ddd56406c23e98cdc61511a61eb64">nUndoPos</a> = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classCBlockIndex.html#a31e65c1f491d438dfdcd8d92bdfa73a1">nChainWork</a> = <a class="code" href="classarith__uint256.html">arith_uint256</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classCBlockIndex.html#ac8e219a377839d2f9133a4387f46e44e">nTx</a> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classCBlockIndex.html#af3c6d6dd8a7579e5ce516d94b98d2db5">nChainTx</a> = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classCBlockIndex.html#a4a679af5f7924cc594b8131371b21e54">nSequenceId</a> = 0;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a> = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a> = <a class="code" href="classuint256.html">uint256</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a> = 0;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a> = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">nNonce</a> = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a0eff34cbfb4470885020734581dc1555"> 171</a></span>&#160; <a class="code" href="classCBlockIndex.html#a0eff34cbfb4470885020734581dc1555">CBlockIndex</a>()</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classCBlockIndex.html#a6139e9e2cfceaef3694631cb7c330ff0">SetNull</a>();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#acaf83989071b40966072161c513a17a7"> 176</a></span>&#160; <a class="code" href="classCBlockIndex.html#acaf83989071b40966072161c513a17a7">CBlockIndex</a>(<span class="keyword">const</span> <a class="code" href="classCBlockHeader.html">CBlockHeader</a>&amp; block)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classCBlockIndex.html#a6139e9e2cfceaef3694631cb7c330ff0">SetNull</a>();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a> = block.<a class="code" href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">nVersion</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a> = block.<a class="code" href="classCBlockHeader.html#ae9ef013abbcfbd9f8bc23dbcda0fd5af">hashMerkleRoot</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a> = block.<a class="code" href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">nTime</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a> = block.<a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">nNonce</a> = block.<a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#ad0d95bf8524a1e94bc6cfb92adea0c63"> 187</a></span>&#160; <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> <a class="code" href="classCBlockIndex.html#ad0d95bf8524a1e94bc6cfb92adea0c63">GetBlockPos</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> ret;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15">BLOCK_HAVE_DATA</a>) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; ret.<a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> = <a class="code" href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a">nFile</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; ret.<a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a> = <a class="code" href="classCBlockIndex.html#af164283dfb2d62ac44be8d10446bce4a">nDataPos</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#aa06679e5dd3f2425a1b667f6804b1a94"> 196</a></span>&#160; <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> <a class="code" href="classCBlockIndex.html#aa06679e5dd3f2425a1b667f6804b1a94">GetUndoPos</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="structCDiskBlockPos.html">CDiskBlockPos</a> ret;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd">BLOCK_HAVE_UNDO</a>) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; ret.<a class="code" href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">nFile</a> = <a class="code" href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a">nFile</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; ret.<a class="code" href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">nPos</a> = <a class="code" href="classCBlockIndex.html#a865ddd56406c23e98cdc61511a61eb64">nUndoPos</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a29df6a3c3195ff87c650348a27959fa2"> 205</a></span>&#160; <a class="code" href="classCBlockHeader.html">CBlockHeader</a> <a class="code" href="classCBlockIndex.html#a29df6a3c3195ff87c650348a27959fa2">GetBlockHeader</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classCBlockHeader.html">CBlockHeader</a> block;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; block.<a class="code" href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">nVersion</a> = <a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a>)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; block.<a class="code" href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">hashPrevBlock</a> = <a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a>-&gt;<a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; block.<a class="code" href="classCBlockHeader.html#ae9ef013abbcfbd9f8bc23dbcda0fd5af">hashMerkleRoot</a> = <a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; block.<a class="code" href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">nTime</a> = <a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; block.<a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a> = <a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; block.<a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a> = <a class="code" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">nNonce</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> block;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c"> 218</a></span>&#160; <a class="code" href="classuint256.html">uint256</a> <a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="classCBlockIndex.html#afac8099e03ffda463c7153ca82d37b66">phashBlock</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a9fe0d4463c07c466f66252e8eec25f5c"> 223</a></span>&#160; int64_t <a class="code" href="classCBlockIndex.html#a9fe0d4463c07c466f66252e8eec25f5c">GetBlockTime</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> (int64_t)<a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4"> 228</a></span>&#160; <span class="keyword">enum</span> { <a class="code" href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4">nMedianTimeSpan</a>=11 };</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#aa9bd0ab02cf8b9c866618cee3a5a0583"> 230</a></span>&#160; int64_t <a class="code" href="classCBlockIndex.html#aa9bd0ab02cf8b9c866618cee3a5a0583">GetMedianTimePast</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; int64_t pmedian[<a class="code" href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4">nMedianTimeSpan</a>];</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; int64_t* pbegin = &amp;pmedian[<a class="code" href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4">nMedianTimeSpan</a>];</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; int64_t* pend = &amp;pmedian[<a class="code" href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4">nMedianTimeSpan</a>];</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* pindex = <span class="keyword">this</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4">nMedianTimeSpan</a> &amp;&amp; pindex; i++, pindex = pindex-&gt;<a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a>)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; *(--pbegin) = pindex-&gt;<a class="code" href="classCBlockIndex.html#a9fe0d4463c07c466f66252e8eec25f5c">GetBlockTime</a>();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; std::sort(pbegin, pend);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> pbegin[(pend - pbegin)/2];</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a18258e956a4bc77dcccdb0db8f91effe"> 244</a></span>&#160; std::string <a class="code" href="classCBlockIndex.html#a18258e956a4bc77dcccdb0db8f91effe">ToString</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <a class="code" href="tinyformat_8h.html#a56c674871a61baaad36ad52238c08857">strprintf</a>(<span class="stringliteral">&quot;CBlockIndex(pprev=%p, nHeight=%d, merkle=%s, hashBlock=%s)&quot;</span>,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a>, <a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a>,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a>.<a class="code" href="classbase__blob.html#a7a0d25782830d8b087c4da839f3ccdeb">ToString</a>(),</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>().<a class="code" href="classbase__blob.html#a7a0d25782830d8b087c4da839f3ccdeb">ToString</a>());</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#ad8b5a6560e7c0d4222066e2922178683"> 253</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classCBlockIndex.html#ad8b5a6560e7c0d4222066e2922178683">IsValid</a>(<span class="keyword">enum</span> <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9">BlockStatus</a> nUpTo = <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a3eef30f876594ac79b888b7d1ff6c66c">BLOCK_VALID_TRANSACTIONS</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; assert(!(nUpTo &amp; ~<a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a>)); <span class="comment">// Only validity flags allowed.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a88df51e92f2f675baff60e0a5bd170ef">BLOCK_FAILED_MASK</a>)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> ((<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a>) &gt;= nUpTo);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classCBlockIndex.html#a076aff906933e9d75a37aa9b81c01384"> 263</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classCBlockIndex.html#a076aff906933e9d75a37aa9b81c01384">RaiseValidity</a>(<span class="keyword">enum</span> <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9">BlockStatus</a> nUpTo)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; assert(!(nUpTo &amp; ~<a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a>)); <span class="comment">// Only validity flags allowed.</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a88df51e92f2f675baff60e0a5bd170ef">BLOCK_FAILED_MASK</a>)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> ((<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a>) &lt; nUpTo) {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> = (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; ~<a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a>) | nUpTo;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCBlockIndex.html#a21209a71e50daf10e283bd4049e46f64">BuildSkip</a>();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* <a class="code" href="classCBlockIndex.html#ae1f702384690c6b8302e026a84172ef3">GetAncestor</a>(<span class="keywordtype">int</span> height);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* <a class="code" href="classCBlockIndex.html#ae1f702384690c6b8302e026a84172ef3">GetAncestor</a>(<span class="keywordtype">int</span> height) <span class="keyword">const</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;};</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html"> 284</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCDiskBlockIndex.html">CDiskBlockIndex</a> : <span class="keyword">public</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224"> 287</a></span>&#160; <a class="code" href="classuint256.html">uint256</a> <a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a>;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212"> 288</a></span>&#160; <a class="code" href="classuint256.html">uint256</a> <a class="code" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">hashPrev</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#a8c460c63b799964ef55e2dbbb74b5ad6"> 290</a></span>&#160; <a class="code" href="classCDiskBlockIndex.html#a8c460c63b799964ef55e2dbbb74b5ad6">CDiskBlockIndex</a>() {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a> = <a class="code" href="classuint256.html">uint256</a>();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">hashPrev</a> = <a class="code" href="classuint256.html">uint256</a>();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#a8d76af0058fa72d3d8ff688d27d2a5c9"> 295</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCDiskBlockIndex.html#a8d76af0058fa72d3d8ff688d27d2a5c9">CDiskBlockIndex</a>(<span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* pindex) : <a class="code" href="classCBlockIndex.html">CBlockIndex</a>(*pindex) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a> = (<a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a> == <a class="code" href="classuint256.html">uint256</a>() ? pindex-&gt;<a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>() : <a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">hashPrev</a> = (<a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a> ? <a class="code" href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">pprev</a>-&gt;<a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>() : <a class="code" href="classuint256.html">uint256</a>());</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#adfa97e82f2e6db827fc6b8b5e351a1f9"> 300</a></span>&#160; <a class="code" href="classCDiskBlockIndex.html#adfa97e82f2e6db827fc6b8b5e351a1f9">ADD_SERIALIZE_METHODS</a>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> Operation&gt;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#a2ef7b51f2777fcc1b9625a0ee000f9b5"> 303</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCDiskBlockIndex.html#a2ef7b51f2777fcc1b9625a0ee000f9b5">SerializationOp</a>(Stream&amp; s, Operation ser_action, <span class="keywordtype">int</span> nType, <span class="keywordtype">int</span> <a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a>) {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span> (!(nType &amp; <a class="code" href="serialize_8h.html#ae4d5251432e1a9e6803c0240cc492e18aca6c7596d50ce42f28b5b97f39ba178a">SER_GETHASH</a>))</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a>));</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a>));</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a>));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#ac8e219a377839d2f9133a4387f46e44e">nTx</a>));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; (<a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15">BLOCK_HAVE_DATA</a> | <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd">BLOCK_HAVE_UNDO</a>))</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a">nFile</a>));</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15">BLOCK_HAVE_DATA</a>)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#af164283dfb2d62ac44be8d10446bce4a">nDataPos</a>));</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">nStatus</a> &amp; <a class="code" href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd">BLOCK_HAVE_UNDO</a>)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a>(<a class="code" href="classCBlockIndex.html#a865ddd56406c23e98cdc61511a61eb64">nUndoPos</a>));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// block hash</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// block header</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(this-&gt;nVersion);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">hashPrev</a>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a>);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a>);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a>(<a class="code" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">nNonce</a>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#acc607a9082c558d7301077631b66122b"> 328</a></span>&#160; <a class="code" href="classuint256.html">uint256</a> <a class="code" href="classCDiskBlockIndex.html#acc607a9082c558d7301077631b66122b">GetBlockHash</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a> != <a class="code" href="classuint256.html">uint256</a>()) <span class="keywordflow">return</span> <a class="code" href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">hash</a>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// should never really get here, keeping this as a fallback</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="classCBlockHeader.html">CBlockHeader</a> block;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; block.<a class="code" href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">nVersion</a> = <a class="code" href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">nVersion</a>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; block.<a class="code" href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">hashPrevBlock</a> = <a class="code" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">hashPrev</a>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; block.<a class="code" href="classCBlockHeader.html#ae9ef013abbcfbd9f8bc23dbcda0fd5af">hashMerkleRoot</a> = <a class="code" href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">hashMerkleRoot</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; block.<a class="code" href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">nTime</a> = <a class="code" href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">nTime</a>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; block.<a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a> = <a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; block.<a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a> = <a class="code" href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">nNonce</a>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> block.<a class="code" href="classCBlockHeader.html#af0239f86a13f622a826e9eea66b2d7f3">GetHash</a>();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classCDiskBlockIndex.html#a347eafa0667f8641f73062b48c217d61"> 343</a></span>&#160; std::string <a class="code" href="classCDiskBlockIndex.html#a347eafa0667f8641f73062b48c217d61">ToString</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; std::string str = <span class="stringliteral">&quot;CDiskBlockIndex(&quot;</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; str += <a class="code" href="classCBlockIndex.html#a18258e956a4bc77dcccdb0db8f91effe">CBlockIndex::ToString</a>();</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; str += <a class="code" href="tinyformat_8h.html#a56c674871a61baaad36ad52238c08857">strprintf</a>(<span class="stringliteral">&quot;\n hashBlock=%s, hashPrev=%s)&quot;</span>,</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="classCDiskBlockIndex.html#acc607a9082c558d7301077631b66122b">GetBlockHash</a>().<a class="code" href="classCDiskBlockIndex.html#a347eafa0667f8641f73062b48c217d61">ToString</a>(),</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">hashPrev</a>.<a class="code" href="classbase__blob.html#a7a0d25782830d8b087c4da839f3ccdeb">ToString</a>());</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> str;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;};</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classCChain.html"> 355</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCChain.html">CChain</a> {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708"> 357</a></span>&#160; std::vector&lt;CBlockIndex*&gt; <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classCChain.html#a0af94042e68f7dbc86260d3a54f08a3f"> 361</a></span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *<a class="code" href="classCChain.html#a0af94042e68f7dbc86260d3a54f08a3f">Genesis</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() &gt; 0 ? <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>[0] : NULL;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classCChain.html#a578545bde95163bee37b1be28e7b2755"> 366</a></span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *<a class="code" href="classCChain.html#a578545bde95163bee37b1be28e7b2755">Tip</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() &gt; 0 ? <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>[<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() - 1] : NULL;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classCChain.html#a13c4493c833ffb8d1725fde05e42b28a"> 371</a></span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *<a class="code" href="classCChain.html#a13c4493c833ffb8d1725fde05e42b28a">operator[]</a>(<span class="keywordtype">int</span> nHeight)<span class="keyword"> const </span>{</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (nHeight &lt; 0 || nHeight &gt;= (<span class="keywordtype">int</span>)<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size())</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>[nHeight];</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classCChain.html#a0e46ed4192afeafb8d420b2d6d9bb24c"> 378</a></span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classCChain.html#a0e46ed4192afeafb8d420b2d6d9bb24c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classCChain.html">CChain</a> &amp;a, <span class="keyword">const</span> <a class="code" href="classCChain.html">CChain</a> &amp;b) {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() == b.<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() &amp;&amp;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; a.<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>[a.<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() - 1] == b.<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>[b.<a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() - 1];</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classCChain.html#af1786dc229c215dea7f727c11df2c8dc"> 384</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classCChain.html#af1786dc229c215dea7f727c11df2c8dc">Contains</a>(<span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *pindex)<span class="keyword"> const </span>{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[pindex-&gt;<a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a>] == pindex;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classCChain.html#a3077e83c87e8a974765fa76a57fd040b"> 389</a></span>&#160; <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *<a class="code" href="classCChain.html#a3077e83c87e8a974765fa76a57fd040b">Next</a>(<span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *pindex)<span class="keyword"> const </span>{</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classCChain.html#af1786dc229c215dea7f727c11df2c8dc">Contains</a>(pindex))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[pindex-&gt;<a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a> + 1];</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classCChain.html#ad4758bc8872ce065a9579f77c3171d40"> 397</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classCChain.html#ad4758bc8872ce065a9579f77c3171d40">Height</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">vChain</a>.size() - 1;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCChain.html#aeb563751f7362d4308c7c2cb35b834a5">SetTip</a>(<a class="code" href="classCBlockIndex.html">CBlockIndex</a> *pindex);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="structCBlockLocator.html">CBlockLocator</a> <a class="code" href="classCChain.html#a03e98bebe804bfba219b4e6a2b858d9f">GetLocator</a>(<span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *pindex = NULL) <span class="keyword">const</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *<a class="code" href="classCChain.html#adb9ec01329511e869bba95e3c143da71">FindFork</a>(<span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a> *pindex) <span class="keyword">const</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;};</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#endif // BITCOIN_CHAIN_H</span></div><div class="ttc" id="classCBlockIndex_html_a31e65c1f491d438dfdcd8d92bdfa73a1"><div class="ttname"><a href="classCBlockIndex.html#a31e65c1f491d438dfdcd8d92bdfa73a1">CBlockIndex::nChainWork</a></div><div class="ttdeci">arith_uint256 nChainWork</div><div class="ttdoc">(memory only) Total amount of work (expected number of hashes) in the chain up to and including this ...</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00125">chain.h:125</a></div></div>
<div class="ttc" id="serialize_8h_html_a1383f2a4c22ffaeba9b2924d90459f76"><div class="ttname"><a href="serialize_8h.html#a1383f2a4c22ffaeba9b2924d90459f76">VARINT</a></div><div class="ttdeci">#define VARINT(obj)</div><div class="ttdef"><b>Definition:</b> <a href="serialize_8h_source.html#l00388">serialize.h:388</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a722a05d892a13ada5ffd4fcbbef837cd">BLOCK_HAVE_UNDO</a></div><div class="ttdoc">full block available in blk*.dat </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00087">chain.h:87</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a0a6ba113219a456472081ee6d6b20a72"><div class="ttname"><a href="structCDiskBlockPos.html#a0a6ba113219a456472081ee6d6b20a72">CDiskBlockPos::SetNull</a></div><div class="ttdeci">void SetNull()</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00047">chain.h:47</a></div></div>
<div class="ttc" id="classCChain_html_aeb563751f7362d4308c7c2cb35b834a5"><div class="ttname"><a href="classCChain.html#aeb563751f7362d4308c7c2cb35b834a5">CChain::SetTip</a></div><div class="ttdeci">void SetTip(CBlockIndex *pindex)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8cpp_source.html#l00013">chain.cpp:13</a></div></div>
<div class="ttc" id="serialize_8h_html_a4d7fc7040e01003a01f367b8d90324f1"><div class="ttname"><a href="serialize_8h.html#a4d7fc7040e01003a01f367b8d90324f1">READWRITE</a></div><div class="ttdeci">#define READWRITE(obj)</div><div class="ttdef"><b>Definition:</b> <a href="serialize_8h_source.html#l00175">serialize.h:175</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9">BlockStatus</a></div><div class="ttdeci">BlockStatus</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00057">chain.h:57</a></div></div>
<div class="ttc" id="structCBlockLocator_html"><div class="ttname"><a href="structCBlockLocator.html">CBlockLocator</a></div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00132">block.h:132</a></div></div>
<div class="ttc" id="classCBlockHeader_html_ae9ef013abbcfbd9f8bc23dbcda0fd5af"><div class="ttname"><a href="classCBlockHeader.html#ae9ef013abbcfbd9f8bc23dbcda0fd5af">CBlockHeader::hashMerkleRoot</a></div><div class="ttdeci">uint256 hashMerkleRoot</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00026">block.h:26</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a0c96947d09bb4aaf28ab2d7866d20918"><div class="ttname"><a href="structCDiskBlockPos.html#a0c96947d09bb4aaf28ab2d7866d20918">CDiskBlockPos::CDiskBlockPos</a></div><div class="ttdeci">CDiskBlockPos(int nFileIn, unsigned int nPosIn)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00034">chain.h:34</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_a3a1730201a8523fb947c4d4f632a4212"><div class="ttname"><a href="classCDiskBlockIndex.html#a3a1730201a8523fb947c4d4f632a4212">CDiskBlockIndex::hashPrev</a></div><div class="ttdeci">uint256 hashPrev</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00288">chain.h:288</a></div></div>
<div class="ttc" id="tinyformat_8h_html_a56c674871a61baaad36ad52238c08857"><div class="ttname"><a href="tinyformat_8h.html#a56c674871a61baaad36ad52238c08857">strprintf</a></div><div class="ttdeci">#define strprintf</div><div class="ttdef"><b>Definition:</b> <a href="tinyformat_8h_source.html#l01011">tinyformat.h:1011</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a076aff906933e9d75a37aa9b81c01384"><div class="ttname"><a href="classCBlockIndex.html#a076aff906933e9d75a37aa9b81c01384">CBlockIndex::RaiseValidity</a></div><div class="ttdeci">bool RaiseValidity(enum BlockStatus nUpTo)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00263">chain.h:263</a></div></div>
<div class="ttc" id="classCBlockIndex_html_ab6242bb77bc01617f5b402d14e6a3883"><div class="ttname"><a href="classCBlockIndex.html#ab6242bb77bc01617f5b402d14e6a3883">CBlockIndex::pskip</a></div><div class="ttdeci">CBlockIndex * pskip</div><div class="ttdoc">pointer to the index of some further predecessor of this block </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00110">chain.h:110</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a88df51e92f2f675baff60e0a5bd170ef"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a88df51e92f2f675baff60e0a5bd170ef">BLOCK_FAILED_MASK</a></div><div class="ttdoc">descends from failed block </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00092">chain.h:92</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a3324894e6af612d1bd76f89378435713"><div class="ttname"><a href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">CBlockIndex::nBits</a></div><div class="ttdeci">unsigned int nBits</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00143">chain.h:143</a></div></div>
<div class="ttc" id="classCBlockIndex_html_ad8b5a6560e7c0d4222066e2922178683"><div class="ttname"><a href="classCBlockIndex.html#ad8b5a6560e7c0d4222066e2922178683">CBlockIndex::IsValid</a></div><div class="ttdeci">bool IsValid(enum BlockStatus nUpTo=BLOCK_VALID_TRANSACTIONS) const</div><div class="ttdoc">Check whether this block index entry is valid up to the passed validity level. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00253">chain.h:253</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a29df6a3c3195ff87c650348a27959fa2"><div class="ttname"><a href="classCBlockIndex.html#a29df6a3c3195ff87c650348a27959fa2">CBlockIndex::GetBlockHeader</a></div><div class="ttdeci">CBlockHeader GetBlockHeader() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00205">chain.h:205</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_a8c460c63b799964ef55e2dbbb74b5ad6"><div class="ttname"><a href="classCDiskBlockIndex.html#a8c460c63b799964ef55e2dbbb74b5ad6">CDiskBlockIndex::CDiskBlockIndex</a></div><div class="ttdeci">CDiskBlockIndex()</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00290">chain.h:290</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a865ddd56406c23e98cdc61511a61eb64"><div class="ttname"><a href="classCBlockIndex.html#a865ddd56406c23e98cdc61511a61eb64">CBlockIndex::nUndoPos</a></div><div class="ttdeci">unsigned int nUndoPos</div><div class="ttdoc">Byte offset within rev?????.dat where this block&amp;#39;s undo data is stored. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00122">chain.h:122</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a5e0a648ed1df8da171eba636d5ebef01"><div class="ttname"><a href="classCBlockIndex.html#a5e0a648ed1df8da171eba636d5ebef01">CBlockIndex::nNonce</a></div><div class="ttdeci">unsigned int nNonce</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00144">chain.h:144</a></div></div>
<div class="ttc" id="classCBlockIndex_html_ad0d95bf8524a1e94bc6cfb92adea0c63"><div class="ttname"><a href="classCBlockIndex.html#ad0d95bf8524a1e94bc6cfb92adea0c63">CBlockIndex::GetBlockPos</a></div><div class="ttdeci">CDiskBlockPos GetBlockPos() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00187">chain.h:187</a></div></div>
<div class="ttc" id="pow_8h_html"><div class="ttname"><a href="pow_8h.html">pow.h</a></div></div>
<div class="ttc" id="classCBlockHeader_html_aa435a58a8f13a304681e797366e0d56d"><div class="ttname"><a href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">CBlockHeader::nTime</a></div><div class="ttdeci">uint32_t nTime</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00027">block.h:27</a></div></div>
<div class="ttc" id="classCBlockIndex_html_acaf83989071b40966072161c513a17a7"><div class="ttname"><a href="classCBlockIndex.html#acaf83989071b40966072161c513a17a7">CBlockIndex::CBlockIndex</a></div><div class="ttdeci">CBlockIndex(const CBlockHeader &amp;block)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00176">chain.h:176</a></div></div>
<div class="ttc" id="classCBlockIndex_html_ac8e219a377839d2f9133a4387f46e44e"><div class="ttname"><a href="classCBlockIndex.html#ac8e219a377839d2f9133a4387f46e44e">CBlockIndex::nTx</a></div><div class="ttdeci">unsigned int nTx</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00129">chain.h:129</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a3eef30f876594ac79b888b7d1ff6c66c"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a3eef30f876594ac79b888b7d1ff6c66c">BLOCK_VALID_TRANSACTIONS</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00073">chain.h:73</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a18258e956a4bc77dcccdb0db8f91effe"><div class="ttname"><a href="classCBlockIndex.html#a18258e956a4bc77dcccdb0db8f91effe">CBlockIndex::ToString</a></div><div class="ttdeci">std::string ToString() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00244">chain.h:244</a></div></div>
<div class="ttc" id="classCBlockIndex_html_aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4"><div class="ttname"><a href="classCBlockIndex.html#aa518b1ab90f8a0bb1df29da6063d886baa2b8ad73c4fe37a8de8748d949c334d4">CBlockIndex::nMedianTimeSpan</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00228">chain.h:228</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a77d49f747f3df764efac2d3f4522bb15">BLOCK_HAVE_DATA</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00086">chain.h:86</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a6139e9e2cfceaef3694631cb7c330ff0"><div class="ttname"><a href="classCBlockIndex.html#a6139e9e2cfceaef3694631cb7c330ff0">CBlockIndex::SetNull</a></div><div class="ttdeci">void SetNull()</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00149">chain.h:149</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html"><div class="ttname"><a href="structCDiskBlockPos.html">CDiskBlockPos</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00017">chain.h:17</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a1223c736f6157ad915dd31f6a1577846">BLOCK_VALID_MASK</a></div><div class="ttdoc">All validity bits. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00083">chain.h:83</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html"><div class="ttname"><a href="classCDiskBlockIndex.html">CDiskBlockIndex</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00284">chain.h:284</a></div></div>
<div class="ttc" id="classCChain_html_a13c4493c833ffb8d1725fde05e42b28a"><div class="ttname"><a href="classCChain.html#a13c4493c833ffb8d1725fde05e42b28a">CChain::operator[]</a></div><div class="ttdeci">CBlockIndex * operator[](int nHeight) const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00371">chain.h:371</a></div></div>
<div class="ttc" id="classCChain_html_af1786dc229c215dea7f727c11df2c8dc"><div class="ttname"><a href="classCChain.html#af1786dc229c215dea7f727c11df2c8dc">CChain::Contains</a></div><div class="ttdeci">bool Contains(const CBlockIndex *pindex) const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00384">chain.h:384</a></div></div>
<div class="ttc" id="classCChain_html_adc8fa3eb698fb5985c7b39daf6bbf708"><div class="ttname"><a href="classCChain.html#adc8fa3eb698fb5985c7b39daf6bbf708">CChain::vChain</a></div><div class="ttdeci">std::vector&lt; CBlockIndex * &gt; vChain</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00357">chain.h:357</a></div></div>
<div class="ttc" id="classCBlockHeader_html_ad9b904df502d648309342e5e5b0949a6"><div class="ttname"><a href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">CBlockHeader::hashPrevBlock</a></div><div class="ttdeci">uint256 hashPrevBlock</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00025">block.h:25</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9af5c7f1d4701444b3f7a0041c96bb4ab6"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9af5c7f1d4701444b3f7a0041c96bb4ab6">BLOCK_VALID_UNKNOWN</a></div><div class="ttdoc">Unused. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00059">chain.h:59</a></div></div>
<div class="ttc" id="classCBlockIndex_html_afac8099e03ffda463c7153ca82d37b66"><div class="ttname"><a href="classCBlockIndex.html#afac8099e03ffda463c7153ca82d37b66">CBlockIndex::phashBlock</a></div><div class="ttdeci">const uint256 * phashBlock</div><div class="ttdoc">pointer to the hash of the block, if any. Memory is owned by this CBlockIndex </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00104">chain.h:104</a></div></div>
<div class="ttc" id="classCBlockIndex_html_aa06679e5dd3f2425a1b667f6804b1a94"><div class="ttname"><a href="classCBlockIndex.html#aa06679e5dd3f2425a1b667f6804b1a94">CBlockIndex::GetUndoPos</a></div><div class="ttdeci">CDiskBlockPos GetUndoPos() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00196">chain.h:196</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a0601b6b2bd6eaedfbc283c00d045a21c"><div class="ttname"><a href="classCBlockIndex.html#a0601b6b2bd6eaedfbc283c00d045a21c">CBlockIndex::hashMerkleRoot</a></div><div class="ttdeci">uint256 hashMerkleRoot</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00141">chain.h:141</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a8653dc31c354a84e6fd0be105889262f"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a8653dc31c354a84e6fd0be105889262f">BLOCK_FAILED_CHILD</a></div><div class="ttdoc">stage after last reached validness failed </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00091">chain.h:91</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a7dd98fe3f5372d358df61db31899b0af"><div class="ttname"><a href="structCDiskBlockPos.html#a7dd98fe3f5372d358df61db31899b0af">CDiskBlockPos::IsNull</a></div><div class="ttdeci">bool IsNull() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00048">chain.h:48</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_a8d76af0058fa72d3d8ff688d27d2a5c9"><div class="ttname"><a href="classCDiskBlockIndex.html#a8d76af0058fa72d3d8ff688d27d2a5c9">CDiskBlockIndex::CDiskBlockIndex</a></div><div class="ttdeci">CDiskBlockIndex(const CBlockIndex *pindex)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00295">chain.h:295</a></div></div>
<div class="ttc" id="classCChain_html"><div class="ttname"><a href="classCChain.html">CChain</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00355">chain.h:355</a></div></div>
<div class="ttc" id="classCChain_html_adb9ec01329511e869bba95e3c143da71"><div class="ttname"><a href="classCChain.html#adb9ec01329511e869bba95e3c143da71">CChain::FindFork</a></div><div class="ttdeci">const CBlockIndex * FindFork(const CBlockIndex *pindex) const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8cpp_source.html#l00053">chain.cpp:53</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9aa3b88e970b4071e746c84191f049fac5"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9aa3b88e970b4071e746c84191f049fac5">BLOCK_VALID_HEADER</a></div><div class="ttdoc">Parsed, version ok, hash satisfies claimed PoW, 1 &lt;= vtx count &lt;= max, timestamp not in future...</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00062">chain.h:62</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a4a679af5f7924cc594b8131371b21e54"><div class="ttname"><a href="classCBlockIndex.html#a4a679af5f7924cc594b8131371b21e54">CBlockIndex::nSequenceId</a></div><div class="ttdeci">uint32_t nSequenceId</div><div class="ttdoc">(memory only) Sequential id assigned to distinguish order in which blocks are received. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00147">chain.h:147</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a0eff34cbfb4470885020734581dc1555"><div class="ttname"><a href="classCBlockIndex.html#a0eff34cbfb4470885020734581dc1555">CBlockIndex::CBlockIndex</a></div><div class="ttdeci">CBlockIndex()</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00171">chain.h:171</a></div></div>
<div class="ttc" id="classCChain_html_ad4758bc8872ce065a9579f77c3171d40"><div class="ttname"><a href="classCChain.html#ad4758bc8872ce065a9579f77c3171d40">CChain::Height</a></div><div class="ttdeci">int Height() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00397">chain.h:397</a></div></div>
<div class="ttc" id="classCChain_html_a0af94042e68f7dbc86260d3a54f08a3f"><div class="ttname"><a href="classCChain.html#a0af94042e68f7dbc86260d3a54f08a3f">CChain::Genesis</a></div><div class="ttdeci">CBlockIndex * Genesis() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00361">chain.h:361</a></div></div>
<div class="ttc" id="classCBlockHeader_html_a88d501b1da4d34d7dc80c65bd4837670"><div class="ttname"><a href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">CBlockHeader::nBits</a></div><div class="ttdeci">uint32_t nBits</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00028">block.h:28</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a4b687a226e9e166b0f91c1b616b543a6"><div class="ttname"><a href="classCBlockIndex.html#a4b687a226e9e166b0f91c1b616b543a6">CBlockIndex::nTime</a></div><div class="ttdeci">unsigned int nTime</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00142">chain.h:142</a></div></div>
<div class="ttc" id="tinyformat_8h_html"><div class="ttname"><a href="tinyformat_8h.html">tinyformat.h</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a3653cb1e1bc3fa3fcdf1ed50ff93b50a"><div class="ttname"><a href="classCBlockIndex.html#a3653cb1e1bc3fa3fcdf1ed50ff93b50a">CBlockIndex::nFile</a></div><div class="ttdeci">int nFile</div><div class="ttdoc">Which # file this block is stored in (blk?????.dat) </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00116">chain.h:116</a></div></div>
<div class="ttc" id="classbase__blob_html_a7a0d25782830d8b087c4da839f3ccdeb"><div class="ttname"><a href="classbase__blob.html#a7a0d25782830d8b087c4da839f3ccdeb">base_blob::ToString</a></div><div class="ttdeci">std::string ToString() const</div><div class="ttdef"><b>Definition:</b> <a href="uint256_8cpp_source.html#l00065">uint256.cpp:65</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_acc607a9082c558d7301077631b66122b"><div class="ttname"><a href="classCDiskBlockIndex.html#acc607a9082c558d7301077631b66122b">CDiskBlockIndex::GetBlockHash</a></div><div class="ttdeci">uint256 GetBlockHash() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00328">chain.h:328</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a09f30dab5c02fbdea8a17f9bcee5aac8"><div class="ttname"><a href="structCDiskBlockPos.html#a09f30dab5c02fbdea8a17f9bcee5aac8">CDiskBlockPos::nFile</a></div><div class="ttdeci">int nFile</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00019">chain.h:19</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_aec119689268c0dc9c2f1e3b25fd859ad"><div class="ttname"><a href="structCDiskBlockPos.html#aec119689268c0dc9c2f1e3b25fd859ad">CDiskBlockPos::ToString</a></div><div class="ttdeci">std::string ToString() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00050">chain.h:50</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_a1c4a32dec25c474353aa3286de318224"><div class="ttname"><a href="classCDiskBlockIndex.html#a1c4a32dec25c474353aa3286de318224">CDiskBlockIndex::hash</a></div><div class="ttdeci">uint256 hash</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00287">chain.h:287</a></div></div>
<div class="ttc" id="classarith__uint256_html"><div class="ttname"><a href="classarith__uint256.html">arith_uint256</a></div><div class="ttdef"><b>Definition:</b> <a href="arith__uint256_8h_source.html#l00253">arith_uint256.h:253</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a04787eb60da48b80e0f7fb402c6896fe"><div class="ttname"><a href="structCDiskBlockPos.html#a04787eb60da48b80e0f7fb402c6896fe">CDiskBlockPos::operator==</a></div><div class="ttdeci">friend bool operator==(const CDiskBlockPos &amp;a, const CDiskBlockPos &amp;b)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00039">chain.h:39</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a67f3a88eeb793cc62f427f87ae830573"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a67f3a88eeb793cc62f427f87ae830573">BLOCK_VALID_TREE</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00066">chain.h:66</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a9b4b5e149b655ac5c22d05883b5bca0e"><div class="ttname"><a href="structCDiskBlockPos.html#a9b4b5e149b655ac5c22d05883b5bca0e">CDiskBlockPos::nPos</a></div><div class="ttdeci">unsigned int nPos</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00020">chain.h:20</a></div></div>
<div class="ttc" id="classuint256_html"><div class="ttname"><a href="classuint256.html">uint256</a></div><div class="ttdef"><b>Definition:</b> <a href="uint256_8h_source.html#l00114">uint256.h:114</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a821bb4eebc99ae39c20133d80244325f"><div class="ttname"><a href="structCDiskBlockPos.html#a821bb4eebc99ae39c20133d80244325f">CDiskBlockPos::SerializationOp</a></div><div class="ttdeci">void SerializationOp(Stream &amp;s, Operation ser_action, int nType, int nVersion)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00025">chain.h:25</a></div></div>
<div class="ttc" id="classCBlockHeader_html"><div class="ttname"><a href="classCBlockHeader.html">CBlockHeader</a></div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00020">block.h:20</a></div></div>
<div class="ttc" id="classCBlockHeader_html_a3826d43cd36673027e17ecc674450e71"><div class="ttname"><a href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">CBlockHeader::nNonce</a></div><div class="ttdeci">uint32_t nNonce</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00029">block.h:29</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9acdae7e012d53f3bca66c098681f79d0c"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9acdae7e012d53f3bca66c098681f79d0c">BLOCK_HAVE_MASK</a></div><div class="ttdoc">undo data available in rev*.dat </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00088">chain.h:88</a></div></div>
<div class="ttc" id="classCChain_html_a0e46ed4192afeafb8d420b2d6d9bb24c"><div class="ttname"><a href="classCChain.html#a0e46ed4192afeafb8d420b2d6d9bb24c">CChain::operator==</a></div><div class="ttdeci">friend bool operator==(const CChain &amp;a, const CChain &amp;b)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00378">chain.h:378</a></div></div>
<div class="ttc" id="classCChain_html_a3077e83c87e8a974765fa76a57fd040b"><div class="ttname"><a href="classCChain.html#a3077e83c87e8a974765fa76a57fd040b">CChain::Next</a></div><div class="ttdeci">CBlockIndex * Next(const CBlockIndex *pindex) const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00389">chain.h:389</a></div></div>
<div class="ttc" id="uint256_8h_html"><div class="ttname"><a href="uint256_8h.html">uint256.h</a></div></div>
<div class="ttc" id="classCBlockIndex_html_ae1f702384690c6b8302e026a84172ef3"><div class="ttname"><a href="classCBlockIndex.html#ae1f702384690c6b8302e026a84172ef3">CBlockIndex::GetAncestor</a></div><div class="ttdeci">CBlockIndex * GetAncestor(int height)</div><div class="ttdoc">Efficiently find an ancestor of this block. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8cpp_source.html#l00078">chain.cpp:78</a></div></div>
<div class="ttc" id="classCBlockIndex_html_ac5a336b45ca70e3ed2fc090bf2ee3011"><div class="ttname"><a href="classCBlockIndex.html#ac5a336b45ca70e3ed2fc090bf2ee3011">CBlockIndex::nStatus</a></div><div class="ttdeci">unsigned int nStatus</div><div class="ttdoc">Verification status of this block. See enum BlockStatus. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00137">chain.h:137</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_af77481af6cf1d32788ba67c29cc061b5"><div class="ttname"><a href="structCDiskBlockPos.html#af77481af6cf1d32788ba67c29cc061b5">CDiskBlockPos::operator!=</a></div><div class="ttdeci">friend bool operator!=(const CDiskBlockPos &amp;a, const CDiskBlockPos &amp;b)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00043">chain.h:43</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a98490a2788c65cdd6ae9002b004dd74c"><div class="ttname"><a href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">CBlockIndex::GetBlockHash</a></div><div class="ttdeci">uint256 GetBlockHash() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00218">chain.h:218</a></div></div>
<div class="ttc" id="classCBlockHeader_html_ad64b7a76914741861f55f0f38ed66fb5"><div class="ttname"><a href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">CBlockHeader::nVersion</a></div><div class="ttdeci">int32_t nVersion</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00024">block.h:24</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_a958cd730b290bbb0153d514c56517590"><div class="ttname"><a href="structCDiskBlockPos.html#a958cd730b290bbb0153d514c56517590">CDiskBlockPos::ADD_SERIALIZE_METHODS</a></div><div class="ttdeci">ADD_SERIALIZE_METHODS</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00022">chain.h:22</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a47b28fca76b64d094ddca0a3aa8da230"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a47b28fca76b64d094ddca0a3aa8da230">BLOCK_VALID_SCRIPTS</a></div><div class="ttdoc">Scripts &amp; signatures ok. Implies all parents are also at least SCRIPTS. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00080">chain.h:80</a></div></div>
<div class="ttc" id="classCBlockIndex_html_af3c6d6dd8a7579e5ce516d94b98d2db5"><div class="ttname"><a href="classCBlockIndex.html#af3c6d6dd8a7579e5ce516d94b98d2db5">CBlockIndex::nChainTx</a></div><div class="ttdeci">unsigned int nChainTx</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00134">chain.h:134</a></div></div>
<div class="ttc" id="classCChain_html_a578545bde95163bee37b1be28e7b2755"><div class="ttname"><a href="classCChain.html#a578545bde95163bee37b1be28e7b2755">CChain::Tip</a></div><div class="ttdeci">CBlockIndex * Tip() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00366">chain.h:366</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_a2ef7b51f2777fcc1b9625a0ee000f9b5"><div class="ttname"><a href="classCDiskBlockIndex.html#a2ef7b51f2777fcc1b9625a0ee000f9b5">CDiskBlockIndex::SerializationOp</a></div><div class="ttdeci">void SerializationOp(Stream &amp;s, Operation ser_action, int nType, int nVersion)</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00303">chain.h:303</a></div></div>
<div class="ttc" id="classCBlockIndex_html"><div class="ttname"><a href="classCBlockIndex.html">CBlockIndex</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00100">chain.h:100</a></div></div>
<div class="ttc" id="classCBlockIndex_html_aa9bd0ab02cf8b9c866618cee3a5a0583"><div class="ttname"><a href="classCBlockIndex.html#aa9bd0ab02cf8b9c866618cee3a5a0583">CBlockIndex::GetMedianTimePast</a></div><div class="ttdeci">int64_t GetMedianTimePast() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00230">chain.h:230</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a9fe0d4463c07c466f66252e8eec25f5c"><div class="ttname"><a href="classCBlockIndex.html#a9fe0d4463c07c466f66252e8eec25f5c">CBlockIndex::GetBlockTime</a></div><div class="ttdeci">int64_t GetBlockTime() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00223">chain.h:223</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a1ef11137155df1dd5c81491630cece39"><div class="ttname"><a href="classCBlockIndex.html#a1ef11137155df1dd5c81491630cece39">CBlockIndex::pprev</a></div><div class="ttdeci">CBlockIndex * pprev</div><div class="ttdoc">pointer to the index of the predecessor of this block </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00107">chain.h:107</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9a00332fcf52dbd55990d8ff86b616bc65"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9a00332fcf52dbd55990d8ff86b616bc65">BLOCK_VALID_CHAIN</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00077">chain.h:77</a></div></div>
<div class="ttc" id="serialize_8h_html_ae4d5251432e1a9e6803c0240cc492e18aca6c7596d50ce42f28b5b97f39ba178a"><div class="ttname"><a href="serialize_8h.html#ae4d5251432e1a9e6803c0240cc492e18aca6c7596d50ce42f28b5b97f39ba178a">SER_GETHASH</a></div><div class="ttdef"><b>Definition:</b> <a href="serialize_8h_source.html#l00172">serialize.h:172</a></div></div>
<div class="ttc" id="classCChain_html_a03e98bebe804bfba219b4e6a2b858d9f"><div class="ttname"><a href="classCChain.html#a03e98bebe804bfba219b4e6a2b858d9f">CChain::GetLocator</a></div><div class="ttdeci">CBlockLocator GetLocator(const CBlockIndex *pindex=NULL) const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8cpp_source.html#l00025">chain.cpp:25</a></div></div>
<div class="ttc" id="classCBlockIndex_html_af164283dfb2d62ac44be8d10446bce4a"><div class="ttname"><a href="classCBlockIndex.html#af164283dfb2d62ac44be8d10446bce4a">CBlockIndex::nDataPos</a></div><div class="ttdeci">unsigned int nDataPos</div><div class="ttdoc">Byte offset within blk?????.dat where this block&amp;#39;s data is stored. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00119">chain.h:119</a></div></div>
<div class="ttc" id="arith__uint256_8h_html"><div class="ttname"><a href="arith__uint256_8h.html">arith_uint256.h</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a21209a71e50daf10e283bd4049e46f64"><div class="ttname"><a href="classCBlockIndex.html#a21209a71e50daf10e283bd4049e46f64">CBlockIndex::BuildSkip</a></div><div class="ttdeci">void BuildSkip()</div><div class="ttdoc">Build the skiplist pointer for this entry. </div><div class="ttdef"><b>Definition:</b> <a href="chain_8cpp_source.html#l00109">chain.cpp:109</a></div></div>
<div class="ttc" id="classCBlockHeader_html_af0239f86a13f622a826e9eea66b2d7f3"><div class="ttname"><a href="classCBlockHeader.html#af0239f86a13f622a826e9eea66b2d7f3">CBlockHeader::GetHash</a></div><div class="ttdeci">uint256 GetHash() const</div><div class="ttdef"><b>Definition:</b> <a href="block_8cpp_source.html#l00013">block.cpp:13</a></div></div>
<div class="ttc" id="chain_8h_html_a43adb063ba9e8b0f1143146d9c7929d9ab3f668fe41faf909922945b37b25ec2d"><div class="ttname"><a href="chain_8h.html#a43adb063ba9e8b0f1143146d9c7929d9ab3f668fe41faf909922945b37b25ec2d">BLOCK_FAILED_VALID</a></div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00090">chain.h:90</a></div></div>
<div class="ttc" id="classCBlockIndex_html_aebfc8d6b95852546760e742553d7bfd5"><div class="ttname"><a href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">CBlockIndex::nHeight</a></div><div class="ttdeci">int nHeight</div><div class="ttdoc">height of the entry in the chain. The genesis block has height 0 </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00113">chain.h:113</a></div></div>
<div class="ttc" id="classCBlockIndex_html_a45126301a0a6e26010527a7bbfc1ef58"><div class="ttname"><a href="classCBlockIndex.html#a45126301a0a6e26010527a7bbfc1ef58">CBlockIndex::nVersion</a></div><div class="ttdeci">int nVersion</div><div class="ttdoc">block header </div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00140">chain.h:140</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_adfa97e82f2e6db827fc6b8b5e351a1f9"><div class="ttname"><a href="classCDiskBlockIndex.html#adfa97e82f2e6db827fc6b8b5e351a1f9">CDiskBlockIndex::ADD_SERIALIZE_METHODS</a></div><div class="ttdeci">ADD_SERIALIZE_METHODS</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00300">chain.h:300</a></div></div>
<div class="ttc" id="block_8h_html"><div class="ttname"><a href="block_8h.html">block.h</a></div></div>
<div class="ttc" id="classCDiskBlockIndex_html_a347eafa0667f8641f73062b48c217d61"><div class="ttname"><a href="classCDiskBlockIndex.html#a347eafa0667f8641f73062b48c217d61">CDiskBlockIndex::ToString</a></div><div class="ttdeci">std::string ToString() const</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00343">chain.h:343</a></div></div>
<div class="ttc" id="structCDiskBlockPos_html_ac34e46c8bf3256b3eca09f54911cf8bd"><div class="ttname"><a href="structCDiskBlockPos.html#ac34e46c8bf3256b3eca09f54911cf8bd">CDiskBlockPos::CDiskBlockPos</a></div><div class="ttdeci">CDiskBlockPos()</div><div class="ttdef"><b>Definition:</b> <a href="chain_8h_source.html#l00030">chain.h:30</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="chain_8h.html">chain.h</a></li>
<li class="footer">Generated on Thu Dec 14 2017 13:15:02 for Dash Core by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>