mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
251 lines
146 KiB
HTML
251 lines
146 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/miner.cpp 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&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
|
|
 <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&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&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&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('miner_8cpp_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">miner.cpp</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="miner_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Copyright (c) 2009-2010 Satoshi Nakamoto</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment">// Copyright (c) 2014-2017 The Dash Core developers</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Distributed under the MIT software license, see the accompanying</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// file COPYING or http://www.opensource.org/licenses/mit-license.php.</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="miner_8h.html">miner.h</a>"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="amount_8h.html">amount.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="chain_8h.html">chain.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="chainparams_8h.html">chainparams.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="coins_8h.html">coins.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="consensus_8h.html">consensus/consensus.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="merkle_8h.html">consensus/merkle.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="consensus_2validation_8h.html">consensus/validation.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="hash_8h.html">hash.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="consensus_2validation_8h.html">validation.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="net_8h.html">net.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="policy_8h.html">policy/policy.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="pow_8h.html">pow.h</a>"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="transaction_8h.html">primitives/transaction.h</a>"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="standard_8h.html">script/standard.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="timedata_8h.html">timedata.h</a>"</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="txmempool_8h.html">txmempool.h</a>"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="util_8h.html">util.h</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="utilmoneystr_8h.html">utilmoneystr.h</a>"</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="masternode-payments_8h.html">masternode-payments.h</a>"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="masternode-sync_8h.html">masternode-sync.h</a>"</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="validationinterface_8h.html">validationinterface.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <boost/thread.hpp></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <boost/tuple/tuple.hpp></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">//</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// DashMiner</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">//</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">//</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Unconfirmed transactions in the memory pool often depend on other</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// transactions in the memory pool. When we select transactions from the</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// pool, we select by highest priority or fee rate, so we might consider</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// transactions that depend on transactions that aren't yet in the block.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="validation_8h.html#a31f8b0d3c96670151ba997019820e0f4"> 48</a></span> uint64_t <a class="code" href="miner_8cpp.html#a31f8b0d3c96670151ba997019820e0f4">nLastBlockTx</a> = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="validation_8h.html#af8945f7f19ea7e938baab1bd4c226c2f"> 49</a></span> uint64_t <a class="code" href="miner_8cpp.html#af8945f7f19ea7e938baab1bd4c226c2f">nLastBlockSize</a> = 0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classScoreCompare.html"> 51</a></span> <span class="keyword">class </span><a class="code" href="classScoreCompare.html">ScoreCompare</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classScoreCompare.html#a693165fcd7e8b5cb76f7a71b38c57df9"> 54</a></span>  <a class="code" href="classScoreCompare.html#a693165fcd7e8b5cb76f7a71b38c57df9">ScoreCompare</a>() {}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classScoreCompare.html#a34e572e801d371b3c4c22bc9fb72d95b"> 56</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classScoreCompare.html#a34e572e801d371b3c4c22bc9fb72d95b">operator()</a>(<span class="keyword">const</span> <a class="code" href="classCTxMemPool.html#aa3b42beec827c813a0c4b42e50615f5a">CTxMemPool::txiter</a> a, <span class="keyword">const</span> <a class="code" href="classCTxMemPool.html#aa3b42beec827c813a0c4b42e50615f5a">CTxMemPool::txiter</a> b)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> <a class="code" href="classCompareTxMemPoolEntryByScore.html">CompareTxMemPoolEntryByScore</a>()(*b,*a); <span class="comment">// Convert to less than</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="miner_8h.html#a9c09903c7d6401b5405db02af064179c"> 62</a></span> int64_t <a class="code" href="miner_8cpp.html#a9c09903c7d6401b5405db02af064179c">UpdateTime</a>(<a class="code" href="classCBlockHeader.html">CBlockHeader</a>* pblock, <span class="keyword">const</span> <a class="code" href="structConsensus_1_1Params.html">Consensus::Params</a>& consensusParams, <span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* pindexPrev)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  int64_t nOldTime = pblock-><a class="code" href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">nTime</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  int64_t nNewTime = std::max(pindexPrev-><a class="code" href="classCBlockIndex.html#aa9bd0ab02cf8b9c866618cee3a5a0583">GetMedianTimePast</a>()+1, <a class="code" href="timedata_8cpp.html#a09f81b9c7650f898cf3cf305b87547e6">GetAdjustedTime</a>());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (nOldTime < nNewTime)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  pblock-><a class="code" href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">nTime</a> = nNewTime;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// Updating time can change work required on testnet:</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (consensusParams.<a class="code" href="structConsensus_1_1Params.html#afd9757f632e52fc76d944bee2925f1f0">fPowAllowMinDifficultyBlocks</a>)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  pblock-><a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a> = <a class="code" href="pow_8cpp.html#a444323ddc75c2b90f484fa9b9da31dc8">GetNextWorkRequired</a>(pindexPrev, pblock, consensusParams);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> nNewTime - nOldTime;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="miner_8h.html#ac8f34678ed590db1325b261c708f2626"> 77</a></span> <a class="code" href="structCBlockTemplate.html">CBlockTemplate</a>* <a class="code" href="miner_8cpp.html#ac8f34678ed590db1325b261c708f2626">CreateNewBlock</a>(<span class="keyword">const</span> <a class="code" href="classCChainParams.html">CChainParams</a>& chainparams, <span class="keyword">const</span> <a class="code" href="classCScript.html">CScript</a>& scriptPubKeyIn)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Create new block</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  std::unique_ptr<CBlockTemplate> pblocktemplate(<span class="keyword">new</span> <a class="code" href="structCBlockTemplate.html">CBlockTemplate</a>());</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span>(!pblocktemplate.get())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classCBlock.html">CBlock</a> *pblock = &pblocktemplate->block; <span class="comment">// pointer for convenience</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// Create coinbase tx</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="structCMutableTransaction.html">CMutableTransaction</a> txNew;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  txNew.<a class="code" href="structCMutableTransaction.html#ad6b1a0a773293fd153a1d384923631da">vin</a>.resize(1);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  txNew.<a class="code" href="structCMutableTransaction.html#ad6b1a0a773293fd153a1d384923631da">vin</a>[0].prevout.SetNull();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  txNew.<a class="code" href="structCMutableTransaction.html#aca14a252c78e4af2dfe68d7ea67a77dc">vout</a>.resize(1);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  txNew.<a class="code" href="structCMutableTransaction.html#aca14a252c78e4af2dfe68d7ea67a77dc">vout</a>[0].scriptPubKey = scriptPubKeyIn;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// Largest block you're willing to create:</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBlockMaxSize = <a class="code" href="util_8cpp.html#a24f685720bf40370e5bd2a192ad50cd8">GetArg</a>(<span class="stringliteral">"-blockmaxsize"</span>, <a class="code" href="policy_8h.html#abab629176e0f22d84f3f9368364ba59f">DEFAULT_BLOCK_MAX_SIZE</a>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// Limit to between 1K and MAX_BLOCK_SIZE-1K for sanity:</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  nBlockMaxSize = std::max((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)1000, std::min((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)(<a class="code" href="consensus_8h.html#aa372df0d6494f4aaca5ecf5a5a9d4406">MaxBlockSize</a>(<a class="code" href="validation_8cpp.html#acc6a734ed0e106c8fcfd4f0ab6501d0a">fDIP0001ActiveAtTip</a>)-1000), nBlockMaxSize));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// How much of the block should be dedicated to high-priority transactions,</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// included regardless of the fees they pay</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBlockPrioritySize = <a class="code" href="util_8cpp.html#a24f685720bf40370e5bd2a192ad50cd8">GetArg</a>(<span class="stringliteral">"-blockprioritysize"</span>, <a class="code" href="policy_8h.html#aa301575eb37f7f95a7b67b064c73cdf8">DEFAULT_BLOCK_PRIORITY_SIZE</a>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  nBlockPrioritySize = std::min(nBlockMaxSize, nBlockPrioritySize);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Minimum block size you want to create; block will be filled with free transactions</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// until there are no more or the block reaches this size:</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBlockMinSize = <a class="code" href="util_8cpp.html#a24f685720bf40370e5bd2a192ad50cd8">GetArg</a>(<span class="stringliteral">"-blockminsize"</span>, <a class="code" href="policy_8h.html#ab4d3d6f7bce9b18fdb118d0fabd66b25">DEFAULT_BLOCK_MIN_SIZE</a>);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  nBlockMinSize = std::min(nBlockMaxSize, nBlockMinSize);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// Collect memory pool transactions into the block</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classCTxMemPool.html#a8da3f55d23d335261338753b22e0171d">CTxMemPool::setEntries</a> inBlock;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classCTxMemPool.html#a8da3f55d23d335261338753b22e0171d">CTxMemPool::setEntries</a> waitSet;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// This vector will be sorted into a priority queue:</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  vector<TxCoinAgePriority> vecPriority;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="structTxCoinAgePriorityCompare.html">TxCoinAgePriorityCompare</a> pricomparer;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  std::map<CTxMemPool::txiter, double, CTxMemPool::CompareIteratorByHash> waitPriMap;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">typedef</span> std::map<CTxMemPool::txiter, double, CTxMemPool::CompareIteratorByHash>::iterator waitPriIter;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordtype">double</span> actualPriority = -1;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  std::priority_queue<CTxMemPool::txiter, std::vector<CTxMemPool::txiter>, <a class="code" href="classScoreCompare.html">ScoreCompare</a>> clearedTxs;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">bool</span> fPrintPriority = <a class="code" href="util_8cpp.html#a64d956f1dda7f9a80ab5d594532b906d">GetBoolArg</a>(<span class="stringliteral">"-printpriority"</span>, <a class="code" href="miner_8h.html#a535d21266859aff68fa43e6f0092cb2e">DEFAULT_PRINTPRIORITY</a>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  uint64_t nBlockSize = 1000;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  uint64_t nBlockTx = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBlockSigOps = 100;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">int</span> lastFewTxs = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="amount_8h.html#a4eaf3a5239714d8c45b851527f7cb564">CAmount</a> nFees = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="sync_8h.html#a911fe23f057c2fe5aad629162d6c99d0">LOCK</a>(<a class="code" href="validation_8cpp.html#a1ed8285f0fe3c6799c53265ce72552c8">cs_main</a>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* pindexPrev = <a class="code" href="validation_8cpp.html#adb31995c443ae2aef1d2f1c350de0419">chainActive</a>.<a class="code" href="classCChain.html#a578545bde95163bee37b1be28e7b2755">Tip</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> nHeight = pindexPrev-><a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a> + 1;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  pblock-><a class="code" href="classCBlockHeader.html#aa435a58a8f13a304681e797366e0d56d">nTime</a> = <a class="code" href="timedata_8cpp.html#a09f81b9c7650f898cf3cf305b87547e6">GetAdjustedTime</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> int64_t nMedianTimePast = pindexPrev-><a class="code" href="classCBlockIndex.html#aa9bd0ab02cf8b9c866618cee3a5a0583">GetMedianTimePast</a>();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// Add our coinbase tx as first transaction</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>.push_back(txNew);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  pblocktemplate->vTxFees.push_back(-1); <span class="comment">// updated at end</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  pblocktemplate->vTxSigOps.push_back(-1); <span class="comment">// updated at end</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  pblock-><a class="code" href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">nVersion</a> = <a class="code" href="validation_8cpp.html#aee2a2da8f252a1ded3a52ff1e3e29043">ComputeBlockVersion</a>(pindexPrev, chainparams.<a class="code" href="classCChainParams.html#aa366d4f63c8d16d625336dca61ca65e5">GetConsensus</a>());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// -regtest only: allow overriding block.nVersion with</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// -blockversion=N to test forking scenarios</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (chainparams.<a class="code" href="classCChainParams.html#a96be31ff3d8525c9d5458b7d07ada6bb">MineBlocksOnDemand</a>())</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  pblock-><a class="code" href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">nVersion</a> = <a class="code" href="util_8cpp.html#a24f685720bf40370e5bd2a192ad50cd8">GetArg</a>(<span class="stringliteral">"-blockversion"</span>, pblock-><a class="code" href="classCBlockHeader.html#ad64b7a76914741861f55f0f38ed66fb5">nVersion</a>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  int64_t nLockTimeCutoff = (<a class="code" href="policy_8h.html#af6c9216dbcbc485a353c74a5b12a0a06">STANDARD_LOCKTIME_VERIFY_FLAGS</a> & <a class="code" href="consensus_8h.html#a99fb83031ce9923c84392b4e92f956b5a26240702e1a6536406f20c2f0305358d">LOCKTIME_MEDIAN_TIME_PAST</a>)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  ? nMedianTimePast</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  : pblock-><a class="code" href="classCBlockHeader.html#abad634d81d4c810390fa2080d79633e8">GetBlockTime</a>();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="sync_8h.html#a911fe23f057c2fe5aad629162d6c99d0">LOCK</a>(<a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#ac7ee8c06837c7d2688e2d7e3d071bdbb">cs</a>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">bool</span> fPriorityBlock = nBlockPrioritySize > 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (fPriorityBlock) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  vecPriority.reserve(<a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">mapTx</a>.size());</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">for</span> (CTxMemPool::indexed_transaction_set::iterator mi = <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">mapTx</a>.begin();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  mi != <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">mapTx</a>.end(); ++mi)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">double</span> dPriority = mi->GetPriority(nHeight);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="amount_8h.html#a4eaf3a5239714d8c45b851527f7cb564">CAmount</a> dummy;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#a8bf3b1d8436f9abc68f0c8391377df5d">ApplyDeltas</a>(mi->GetTx().GetHash(), dPriority, dummy);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  vecPriority.push_back(<a class="code" href="txmempool_8h.html#aeaaac2108576e7c8d4c8960abdd7f153">TxCoinAgePriority</a>(dPriority, mi));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  std::make_heap(vecPriority.begin(), vecPriority.end(), pricomparer);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  CTxMemPool::indexed_transaction_set::nth_index<3>::type::iterator mi = <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">mapTx</a>.get<3>().begin();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classCTxMemPool.html#aa3b42beec827c813a0c4b42e50615f5a">CTxMemPool::txiter</a> iter;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">while</span> (mi != <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">mapTx</a>.get<3>().end() || !clearedTxs.empty())</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">bool</span> priorityTx = <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (fPriorityBlock && !vecPriority.empty()) { <span class="comment">// add a tx from priority queue to fill the blockprioritysize</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  priorityTx = <span class="keyword">true</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  iter = vecPriority.front().second;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  actualPriority = vecPriority.front().first;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  std::pop_heap(vecPriority.begin(), vecPriority.end(), pricomparer);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  vecPriority.pop_back();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (clearedTxs.empty()) { <span class="comment">// add tx with next highest score</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  iter = <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">mapTx</a>.project<0>(mi);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  mi++;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">else</span> { <span class="comment">// try to add a previously postponed child tx</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  iter = clearedTxs.top();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  clearedTxs.pop();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">if</span> (inBlock.count(iter))</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">continue</span>; <span class="comment">// could have been added to the priorityBlock</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">const</span> <a class="code" href="classCTransaction.html">CTransaction</a>& tx = iter->GetTx();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">bool</span> fOrphan = <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  BOOST_FOREACH(<a class="code" href="classCTxMemPool.html#aa3b42beec827c813a0c4b42e50615f5a">CTxMemPool::txiter</a> parent, <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#ac3336a567bb5cd890057482170e5553d">GetMemPoolParents</a>(iter))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (!inBlock.count(parent)) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  fOrphan = <span class="keyword">true</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (fOrphan) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span> (priorityTx)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  waitPriMap.insert(std::make_pair(iter,actualPriority));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  waitSet.insert(iter);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTxSize = iter->GetTxSize();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (fPriorityBlock &&</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  (nBlockSize + nTxSize >= nBlockPrioritySize || !<a class="code" href="txmempool_8h.html#ae6c67bac023a01f1ae29b7f2f4505bba">AllowFree</a>(actualPriority))) {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  fPriorityBlock = <span class="keyword">false</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  waitPriMap.clear();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">if</span> (!priorityTx &&</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  (iter->GetModifiedFee() < <a class="code" href="validation_8cpp.html#a5925a10baeee7d4bdce1982bdcbd3bd0">::minRelayTxFee</a>.<a class="code" href="classCFeeRate.html#a6a3aef64120ef51ac921318282404b0e">GetFee</a>(nTxSize) && nBlockSize >= nBlockMinSize)) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (nBlockSize + nTxSize >= nBlockMaxSize) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span> (nBlockSize > nBlockMaxSize - 100 || lastFewTxs > 50) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// Once we're within 1000 bytes of a full block, only look at 50 more txs</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// to try to fill the remaining space.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (nBlockSize > nBlockMaxSize - 1000) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  lastFewTxs++;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> (!<a class="code" href="validation_8cpp.html#adc332cd7ac94e639bb4239618341be19">IsFinalTx</a>(tx, nHeight, nLockTimeCutoff))</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTxSigOps = iter->GetSigOpCount();</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nMaxBlockSigOps = <a class="code" href="consensus_8h.html#a584552e12f7fc517fbc554315d181d27">MaxBlockSigOps</a>(<a class="code" href="validation_8cpp.html#acc6a734ed0e106c8fcfd4f0ab6501d0a">fDIP0001ActiveAtTip</a>);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">if</span> (nBlockSigOps + nTxSigOps >= nMaxBlockSigOps) {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">if</span> (nBlockSigOps > nMaxBlockSigOps - 2) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="amount_8h.html#a4eaf3a5239714d8c45b851527f7cb564">CAmount</a> nTxFees = iter->GetFee();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// Added</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>.push_back(tx);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  pblocktemplate->vTxFees.push_back(nTxFees);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  pblocktemplate->vTxSigOps.push_back(nTxSigOps);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  nBlockSize += nTxSize;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  ++nBlockTx;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  nBlockSigOps += nTxSigOps;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  nFees += nTxFees;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">if</span> (fPrintPriority)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordtype">double</span> dPriority = iter->GetPriority(nHeight);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="amount_8h.html#a4eaf3a5239714d8c45b851527f7cb564">CAmount</a> dummy;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#a8bf3b1d8436f9abc68f0c8391377df5d">ApplyDeltas</a>(tx.<a class="code" href="classCTransaction.html#a7efd1379de830341417c0bfa23a149aa">GetHash</a>(), dPriority, dummy);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"priority %.1f fee %s txid %s\n"</span>,</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  dPriority , <a class="code" href="classCFeeRate.html">CFeeRate</a>(iter->GetModifiedFee(), nTxSize).ToString(), tx.<a class="code" href="classCTransaction.html#a7efd1379de830341417c0bfa23a149aa">GetHash</a>().<a class="code" href="classbase__blob.html#a7a0d25782830d8b087c4da839f3ccdeb">ToString</a>());</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  inBlock.insert(iter);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">// Add transactions that depend on this one to the priority queue</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  BOOST_FOREACH(<a class="code" href="classCTxMemPool.html#aa3b42beec827c813a0c4b42e50615f5a">CTxMemPool::txiter</a> <a class="code" href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">child</a>, <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#a0f163f91b8590b86acd43b26438d7ee1">GetMemPoolChildren</a>(iter))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">if</span> (fPriorityBlock) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  waitPriIter wpiter = waitPriMap.find(<a class="code" href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">child</a>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (wpiter != waitPriMap.end()) {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  vecPriority.push_back(<a class="code" href="txmempool_8h.html#aeaaac2108576e7c8d4c8960abdd7f153">TxCoinAgePriority</a>(wpiter->second,<a class="code" href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">child</a>));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  std::push_heap(vecPriority.begin(), vecPriority.end(), pricomparer);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  waitPriMap.erase(wpiter);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> (waitSet.count(<a class="code" href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">child</a>)) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  clearedTxs.push(<a class="code" href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">child</a>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  waitSet.erase(<a class="code" href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">child</a>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="comment">// NOTE: unlike in bitcoin, we need to pass PREVIOUS block height here</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="amount_8h.html#a4eaf3a5239714d8c45b851527f7cb564">CAmount</a> blockReward = nFees + <a class="code" href="validation_8cpp.html#a47d8dc5b8aeb19de7298a98fecce30d9">GetBlockSubsidy</a>(pindexPrev-><a class="code" href="classCBlockIndex.html#a3324894e6af612d1bd76f89378435713">nBits</a>, pindexPrev-><a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a>, <a class="code" href="chainparams_8cpp.html#ace5c5b706d71a324a417dd2db394fd4a">Params</a>().GetConsensus());</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// Compute regular coinbase transaction.</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  txNew.<a class="code" href="structCMutableTransaction.html#aca14a252c78e4af2dfe68d7ea67a77dc">vout</a>[0].nValue = blockReward;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  txNew.<a class="code" href="structCMutableTransaction.html#ad6b1a0a773293fd153a1d384923631da">vin</a>[0].scriptSig = <a class="code" href="classCScript.html">CScript</a>() << nHeight << <a class="code" href="script_8h.html#a63e349a6089a54da9fe09a3d858648bdaccd484dad2223fffdbdc2637c4f1e40e">OP_0</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// Update coinbase transaction with additional info about masternode and governance payments,</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// get some info back to pass to getblocktemplate</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="masternode-payments_8cpp.html#a1a60010ef73db581ad54a165770391c6">FillBlockPayments</a>(txNew, nHeight, blockReward, pblock-><a class="code" href="classCBlock.html#a1bc25c5482ab726f97b3cde842cad6d9">txoutMasternode</a>, pblock-><a class="code" href="classCBlock.html#a1fa319f8d0e2de9fdccf32b893ea27b2">voutSuperblock</a>);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// LogPrintf("CreateNewBlock -- nBlockHeight %d blockReward %lld txoutMasternode %s txNew %s",</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="comment">// nHeight, blockReward, pblock->txoutMasternode.ToString(), txNew.ToString());</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="miner_8cpp.html#a31f8b0d3c96670151ba997019820e0f4">nLastBlockTx</a> = nBlockTx;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="miner_8cpp.html#af8945f7f19ea7e938baab1bd4c226c2f">nLastBlockSize</a> = nBlockSize;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"CreateNewBlock(): total size %u txs: %u fees: %ld sigops %d\n"</span>, nBlockSize, nBlockTx, nFees, nBlockSigOps);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">// Update block coinbase</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>[0] = txNew;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  pblocktemplate->vTxFees[0] = -nFees;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// Fill in header</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  pblock-><a class="code" href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">hashPrevBlock</a> = pindexPrev-><a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="miner_8cpp.html#a9c09903c7d6401b5405db02af064179c">UpdateTime</a>(pblock, chainparams.<a class="code" href="classCChainParams.html#aa366d4f63c8d16d625336dca61ca65e5">GetConsensus</a>(), pindexPrev);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  pblock-><a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a> = <a class="code" href="pow_8cpp.html#a444323ddc75c2b90f484fa9b9da31dc8">GetNextWorkRequired</a>(pindexPrev, pblock, chainparams.<a class="code" href="classCChainParams.html#aa366d4f63c8d16d625336dca61ca65e5">GetConsensus</a>());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  pblock-><a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a> = 0;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  pblocktemplate->vTxSigOps[0] = <a class="code" href="validation_8cpp.html#ad2eaf4f8542c12ea9ee1183609cc6d1a">GetLegacySigOpCount</a>(pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>[0]);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classCValidationState.html">CValidationState</a> state;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">if</span> (!<a class="code" href="validation_8cpp.html#a6ba099900e367f3605b645b8055004e6">TestBlockValidity</a>(state, chainparams, *pblock, pindexPrev, <span class="keyword">false</span>, <span class="keyword">false</span>)) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">throw</span> std::runtime_error(<a class="code" href="tinyformat_8h.html#a56c674871a61baaad36ad52238c08857">strprintf</a>(<span class="stringliteral">"%s: TestBlockValidity failed: %s"</span>, __func__, <a class="code" href="validation_8cpp.html#a86ed1d2d0837b905d74c2e4192b6c06a">FormatStateMessage</a>(state)));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> pblocktemplate.release();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="miner_8h.html#a4873920d6e6dc589a2062dd3f17e2e52"> 322</a></span> <span class="keywordtype">void</span> <a class="code" href="miner_8cpp.html#a4873920d6e6dc589a2062dd3f17e2e52">IncrementExtraNonce</a>(<a class="code" href="classCBlock.html">CBlock</a>* pblock, <span class="keyword">const</span> <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* pindexPrev, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& nExtraNonce)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// Update nExtraNonce</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">static</span> <a class="code" href="classuint256.html">uint256</a> hashPrevBlock;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span> (hashPrevBlock != pblock-><a class="code" href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">hashPrevBlock</a>)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  nExtraNonce = 0;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  hashPrevBlock = pblock-><a class="code" href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">hashPrevBlock</a>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  ++nExtraNonce;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHeight = pindexPrev-><a class="code" href="classCBlockIndex.html#aebfc8d6b95852546760e742553d7bfd5">nHeight</a>+1; <span class="comment">// Height first in coinbase required for block.version=2</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="structCMutableTransaction.html">CMutableTransaction</a> txCoinbase(pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>[0]);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  txCoinbase.<a class="code" href="structCMutableTransaction.html#ad6b1a0a773293fd153a1d384923631da">vin</a>[0].scriptSig = (<a class="code" href="classCScript.html">CScript</a>() << nHeight << <a class="code" href="classCScriptNum.html">CScriptNum</a>(nExtraNonce)) + <a class="code" href="validation_8cpp.html#a5ed86cbbedb72d8fcec0524f2792ada8">COINBASE_FLAGS</a>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  assert(txCoinbase.<a class="code" href="structCMutableTransaction.html#ad6b1a0a773293fd153a1d384923631da">vin</a>[0].scriptSig.size() <= 100);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>[0] = txCoinbase;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  pblock-><a class="code" href="classCBlockHeader.html#ae9ef013abbcfbd9f8bc23dbcda0fd5af">hashMerkleRoot</a> = <a class="code" href="merkle_8cpp.html#aa6eda15268d7ec708195aed9b5d9eab3">BlockMerkleRoot</a>(*pblock);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment">//</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment">// Internal miner</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment">//</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment">// ***TODO*** ScanHash is not yet used in Dash</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment">//</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// ScanHash scans nonces looking for a hash with at least some zero bits.</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// The nonce is usually preserved between calls, but periodically or if the</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="comment">// nonce is 0xffff0000 or above, the block is rebuilt and nNonce starts over at</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="comment">// zero.</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">//</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment">//bool static ScanHash(const CBlockHeader *pblock, uint32_t& nNonce, uint256 *phash)</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="comment">//{</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="comment">// // Write the first 76 bytes of the block header to a double-SHA256 state.</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="comment">// CHash256 hasher;</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// CDataStream ss(SER_NETWORK, PROTOCOL_VERSION);</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment">// ss << *pblock;</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment">// assert(ss.size() == 80);</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment">// hasher.Write((unsigned char*)&ss[0], 76);</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="comment">// while (true) {</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// nNonce++;</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment">// // Write the last 4 bytes of the block header (the nonce) to a copy of</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment">// // the double-SHA256 state, and compute the result.</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment">// CHash256(hasher).Write((unsigned char*)&nNonce, 4).Finalize((unsigned char*)phash);</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="comment">// // Return the nonce if the hash has at least some zero bits,</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// // caller will check if it has enough to reach the target</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment">// if (((uint16_t*)phash)[15] == 0)</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// return true;</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// // If nothing found after trying for a while, return -1</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="comment">// if ((nNonce & 0xfff) == 0)</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// return false;</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="comment">// }</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="comment">//}</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="miner_8cpp.html#abfbc96f613381f93c13c00ebc2f25139"> 380</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="miner_8cpp.html#abfbc96f613381f93c13c00ebc2f25139">ProcessBlockFound</a>(<span class="keyword">const</span> <a class="code" href="classCBlock.html">CBlock</a>* pblock, <span class="keyword">const</span> <a class="code" href="classCChainParams.html">CChainParams</a>& chainparams)</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"%s\n"</span>, pblock-><a class="code" href="classCBlock.html#a0e8a98f10831c00ae76b3a831c4804e5">ToString</a>());</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"generated %s\n"</span>, <a class="code" href="utilmoneystr_8cpp.html#a0043c9abedcbce2d7d1d2cacaf595c9e">FormatMoney</a>(pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>[0].vout[0].nValue));</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="comment">// Found a solution</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="sync_8h.html#a911fe23f057c2fe5aad629162d6c99d0">LOCK</a>(<a class="code" href="validation_8cpp.html#a1ed8285f0fe3c6799c53265ce72552c8">cs_main</a>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">if</span> (pblock-><a class="code" href="classCBlockHeader.html#ad9b904df502d648309342e5e5b0949a6">hashPrevBlock</a> != <a class="code" href="validation_8cpp.html#adb31995c443ae2aef1d2f1c350de0419">chainActive</a>.<a class="code" href="classCChain.html#a578545bde95163bee37b1be28e7b2755">Tip</a>()-><a class="code" href="classCBlockIndex.html#a98490a2788c65cdd6ae9002b004dd74c">GetBlockHash</a>())</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> <a class="code" href="util_8h.html#af8985880cf4ef26df0a5aa2ffcb76662">error</a>(<span class="stringliteral">"ProcessBlockFound -- generated block is stale"</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="comment">// Inform about the new block</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="validationinterface_8cpp.html#a0aaad62c8654cb1868295e0682b05866">GetMainSignals</a>().<a class="code" href="structCMainSignals.html#a27cc5668c440a9d451f7f661370dbc61">BlockFound</a>(pblock-><a class="code" href="classCBlockHeader.html#af0239f86a13f622a826e9eea66b2d7f3">GetHash</a>());</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">// Process this block the same as if we had received it from another node</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">if</span> (!<a class="code" href="validation_8cpp.html#ac880446d7f8833dd498df914ccc816a9">ProcessNewBlock</a>(chainparams, pblock, <span class="keyword">true</span>, NULL, NULL))</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">return</span> <a class="code" href="util_8h.html#af8985880cf4ef26df0a5aa2ffcb76662">error</a>(<span class="stringliteral">"ProcessBlockFound -- ProcessNewBlock() failed, block not accepted"</span>);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="comment">// ***TODO*** that part changed in bitcoin, we are using a mix with old one here for now</span></div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="miner_8cpp.html#a17c61f964b27cc5060cd7f9b0efb3607"> 403</a></span> <span class="keywordtype">void</span> <span class="keyword">static</span> <a class="code" href="miner_8cpp.html#a17c61f964b27cc5060cd7f9b0efb3607">BitcoinMiner</a>(<span class="keyword">const</span> <a class="code" href="classCChainParams.html">CChainParams</a>& chainparams, <a class="code" href="classCConnman.html">CConnman</a>& connman)</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"DashMiner -- started\n"</span>);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="util_8cpp.html#a8d620b8c9865456b925cd0eea4b2ffc1">SetThreadPriority</a>(<a class="code" href="compat_8h.html#a59ca83deecce4e6c8b6139e7eb2870b4">THREAD_PRIORITY_LOWEST</a>);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="util_8cpp.html#a85fc1244e0bd3c91ee7a1c05ed10ebbb">RenameThread</a>(<span class="stringliteral">"dash-miner"</span>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nExtraNonce = 0;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  boost::shared_ptr<CReserveScript> coinbaseScript;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="validationinterface_8cpp.html#a0aaad62c8654cb1868295e0682b05866">GetMainSignals</a>().<a class="code" href="structCMainSignals.html#a459b58e6ee3b3c064439c665cfc8b28d">ScriptForMining</a>(coinbaseScript);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="comment">// Throw an error if no script was provided. This can happen</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="comment">// due to some internal error but also if the keypool is empty.</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="comment">// In the latter case, already the pointer is NULL.</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">if</span> (!coinbaseScript || coinbaseScript->reserveScript.empty())</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"No coinbase script available (mining requires a wallet)"</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> (chainparams.<a class="code" href="classCChainParams.html#a066ad4166984a31bdc0836193a6341ee">MiningRequiresPeers</a>()) {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">// Busy-wait for the network to come online so we don't waste time mining</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// on an obsolete chain. In regtest mode we expect to fly solo.</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">do</span> {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordtype">bool</span> fvNodesEmpty = connman.<a class="code" href="classCConnman.html#a255a163d4df189aa01faf219c97a2994">GetNodeCount</a>(<a class="code" href="classCConnman.html#a78c7481e9b2575bb1fb37078e28a1c6aa45b675928145678b43b3927be215c60f">CConnman::CONNECTIONS_ALL</a>) == 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span> (!fvNodesEmpty && !<a class="code" href="validation_8cpp.html#a5edcd96316574fd4a7f3ae0922a5cfd6">IsInitialBlockDownload</a>() && <a class="code" href="masternode-sync_8cpp.html#a9807e6586e8a7cb25799ea4150520448">masternodeSync</a>.<a class="code" href="classCMasternodeSync.html#ab1f58bda356a30a15ae1733e238f188f">IsSynced</a>())</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="utiltime_8cpp.html#ac635182d3e845eda4af4fa5ab31609da">MilliSleep</a>(1000);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">//</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="comment">// Create new block</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">//</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTransactionsUpdatedLast = <a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#afd2a709a0e6cb34a57ff2f9fd0774e6c">GetTransactionsUpdated</a>();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classCBlockIndex.html">CBlockIndex</a>* pindexPrev = <a class="code" href="validation_8cpp.html#adb31995c443ae2aef1d2f1c350de0419">chainActive</a>.<a class="code" href="classCChain.html#a578545bde95163bee37b1be28e7b2755">Tip</a>();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">if</span>(!pindexPrev) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  std::unique_ptr<CBlockTemplate> pblocktemplate(<a class="code" href="miner_8cpp.html#ac8f34678ed590db1325b261c708f2626">CreateNewBlock</a>(chainparams, coinbaseScript->reserveScript));</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">if</span> (!pblocktemplate.get())</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"DashMiner -- Keypool ran out, please call keypoolrefill before restarting the mining thread\n"</span>);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <a class="code" href="classCBlock.html">CBlock</a> *pblock = &pblocktemplate->block;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="miner_8cpp.html#a4873920d6e6dc589a2062dd3f17e2e52">IncrementExtraNonce</a>(pblock, pindexPrev, nExtraNonce);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"DashMiner -- Running miner with %u transactions in block (%u bytes)\n"</span>, pblock-><a class="code" href="classCBlock.html#a9b6508d662722775f3029b980b382b66">vtx</a>.size(),</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="serialize_8h.html#a48239e478ae730373d1984fe304ca025">::GetSerializeSize</a>(*pblock, <a class="code" href="serialize_8h.html#ae4d5251432e1a9e6803c0240cc492e18a652754eeaf79fba4fcf4c18597a6961c">SER_NETWORK</a>, <a class="code" href="version_8h.html#a4e2497f7c9c4319adcaf945159ec63f4">PROTOCOL_VERSION</a>));</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> </div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="comment">//</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="comment">// Search</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="comment">//</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  int64_t nStart = <a class="code" href="utiltime_8cpp.html#a46fac5fba8ba905b5f9acb364f5d8c6f">GetTime</a>();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="classarith__uint256.html">arith_uint256</a> hashTarget = <a class="code" href="classarith__uint256.html">arith_uint256</a>().<a class="code" href="classarith__uint256.html#a458133c9f123519646b07e6143f2164f">SetCompact</a>(pblock-><a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHashesDone = 0;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="classuint256.html">uint256</a> hash;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  hash = pblock-><a class="code" href="classCBlockHeader.html#af0239f86a13f622a826e9eea66b2d7f3">GetHash</a>();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">if</span> (<a class="code" href="arith__uint256_8cpp.html#a6a6e0e2e41ba7e31c4a741eb2426a516">UintToArith256</a>(hash) <= hashTarget)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="comment">// Found a solution</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <a class="code" href="util_8cpp.html#a8d620b8c9865456b925cd0eea4b2ffc1">SetThreadPriority</a>(<a class="code" href="compat_8h.html#af05a5c044382ba6895bcaad26325a693">THREAD_PRIORITY_NORMAL</a>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"DashMiner:\n proof-of-work found\n hash: %s\n target: %s\n"</span>, hash.<a class="code" href="classbase__blob.html#ad7263503f949fb3c6c520ebb1f28e378">GetHex</a>(), hashTarget.<a class="code" href="classbase__uint.html#ae5e7b7481de91ebead20eebd5d685441">GetHex</a>());</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="miner_8cpp.html#abfbc96f613381f93c13c00ebc2f25139">ProcessBlockFound</a>(pblock, chainparams);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="util_8cpp.html#a8d620b8c9865456b925cd0eea4b2ffc1">SetThreadPriority</a>(<a class="code" href="compat_8h.html#a59ca83deecce4e6c8b6139e7eb2870b4">THREAD_PRIORITY_LOWEST</a>);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  coinbaseScript->KeepScript();</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// In regression test mode, stop mining after a block is found. This</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">// allows developers to controllably generate a block on demand.</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">if</span> (chainparams.<a class="code" href="classCChainParams.html#a96be31ff3d8525c9d5458b7d07ada6bb">MineBlocksOnDemand</a>())</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">throw</span> boost::thread_interrupted();</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  pblock-><a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a> += 1;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  nHashesDone += 1;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">if</span> ((pblock-><a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a> & 0xFF) == 0)</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">// Check for stop or if block needs to be rebuilt</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  boost::this_thread::interruption_point();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="comment">// Regtest mode doesn't require peers</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">if</span> (connman.<a class="code" href="classCConnman.html#a255a163d4df189aa01faf219c97a2994">GetNodeCount</a>(<a class="code" href="classCConnman.html#a78c7481e9b2575bb1fb37078e28a1c6aa45b675928145678b43b3927be215c60f">CConnman::CONNECTIONS_ALL</a>) == 0 && chainparams.<a class="code" href="classCChainParams.html#a066ad4166984a31bdc0836193a6341ee">MiningRequiresPeers</a>())</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">if</span> (pblock-><a class="code" href="classCBlockHeader.html#a3826d43cd36673027e17ecc674450e71">nNonce</a> >= 0xffff0000)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">if</span> (<a class="code" href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a>.<a class="code" href="classCTxMemPool.html#afd2a709a0e6cb34a57ff2f9fd0774e6c">GetTransactionsUpdated</a>() != nTransactionsUpdatedLast && <a class="code" href="utiltime_8cpp.html#a46fac5fba8ba905b5f9acb364f5d8c6f">GetTime</a>() - nStart > 60)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">if</span> (pindexPrev != <a class="code" href="validation_8cpp.html#adb31995c443ae2aef1d2f1c350de0419">chainActive</a>.<a class="code" href="classCChain.html#a578545bde95163bee37b1be28e7b2755">Tip</a>())</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// Update nTime every few seconds</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (<a class="code" href="miner_8cpp.html#a9c09903c7d6401b5405db02af064179c">UpdateTime</a>(pblock, chainparams.<a class="code" href="classCChainParams.html#aa366d4f63c8d16d625336dca61ca65e5">GetConsensus</a>(), pindexPrev) < 0)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">break</span>; <span class="comment">// Recreate the block if the clock has run backwards,</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="comment">// so that we can use the correct time.</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">if</span> (chainparams.<a class="code" href="classCChainParams.html#aa366d4f63c8d16d625336dca61ca65e5">GetConsensus</a>().<a class="code" href="structConsensus_1_1Params.html#afd9757f632e52fc76d944bee2925f1f0">fPowAllowMinDifficultyBlocks</a>)</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// Changing pblock->nTime can change work required on testnet:</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  hashTarget.<a class="code" href="classarith__uint256.html#a458133c9f123519646b07e6143f2164f">SetCompact</a>(pblock-><a class="code" href="classCBlockHeader.html#a88d501b1da4d34d7dc80c65bd4837670">nBits</a>);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> boost::thread_interrupted&)</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  {</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"DashMiner -- terminated\n"</span>);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">throw</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::runtime_error &e)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a>(<span class="stringliteral">"DashMiner -- runtime error: %s\n"</span>, e.what());</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> }</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="miner_8h.html#a5dd1df3c97c260735ad08a808db2115c"> 524</a></span> <span class="keywordtype">void</span> <a class="code" href="miner_8cpp.html#a5dd1df3c97c260735ad08a808db2115c">GenerateBitcoins</a>(<span class="keywordtype">bool</span> fGenerate, <span class="keywordtype">int</span> nThreads, <span class="keyword">const</span> <a class="code" href="classCChainParams.html">CChainParams</a>& chainparams, <a class="code" href="classCConnman.html">CConnman</a>& connman)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keyword">static</span> boost::thread_group* minerThreads = NULL;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">if</span> (nThreads < 0)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  nThreads = <a class="code" href="util_8cpp.html#ae39f49506868759c202b588f7ae2c2d7">GetNumCores</a>();</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">if</span> (minerThreads != NULL)</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  minerThreads->interrupt_all();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">delete</span> minerThreads;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  minerThreads = NULL;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">if</span> (nThreads == 0 || !fGenerate)</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  minerThreads = <span class="keyword">new</span> boost::thread_group();</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < nThreads; i++)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  minerThreads->create_thread(boost::bind(&<a class="code" href="miner_8cpp.html#a17c61f964b27cc5060cd7f9b0efb3607">BitcoinMiner</a>, boost::cref(chainparams), boost::ref(connman)));</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> }</div><div class="ttc" id="structCMainSignals_html_a459b58e6ee3b3c064439c665cfc8b28d"><div class="ttname"><a href="structCMainSignals.html#a459b58e6ee3b3c064439c665cfc8b28d">CMainSignals::ScriptForMining</a></div><div class="ttdeci">boost::signals2::signal< void(boost::shared_ptr< CReserveScript > &)> ScriptForMining</div><div class="ttdef"><b>Definition:</b> <a href="validationinterface_8h_source.html#l00072">validationinterface.h:72</a></div></div>
|
|
<div class="ttc" id="serialize_8h_html_ae4d5251432e1a9e6803c0240cc492e18a652754eeaf79fba4fcf4c18597a6961c"><div class="ttname"><a href="serialize_8h.html#ae4d5251432e1a9e6803c0240cc492e18a652754eeaf79fba4fcf4c18597a6961c">SER_NETWORK</a></div><div class="ttdef"><b>Definition:</b> <a href="serialize_8h_source.html#l00170">serialize.h:170</a></div></div>
|
|
<div class="ttc" id="structCMutableTransaction_html"><div class="ttname"><a href="structCMutableTransaction.html">CMutableTransaction</a></div><div class="ttdef"><b>Definition:</b> <a href="transaction_8h_source.html#l00303">transaction.h:303</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_aee2a2da8f252a1ded3a52ff1e3e29043"><div class="ttname"><a href="validation_8cpp.html#aee2a2da8f252a1ded3a52ff1e3e29043">ComputeBlockVersion</a></div><div class="ttdeci">int32_t ComputeBlockVersion(const CBlockIndex *pindexPrev, const Consensus::Params &params, bool fAssumeMasternodeIsUpgraded)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l01878">validation.cpp:1878</a></div></div>
|
|
<div class="ttc" id="masternode-sync_8cpp_html_a9807e6586e8a7cb25799ea4150520448"><div class="ttname"><a href="masternode-sync_8cpp.html#a9807e6586e8a7cb25799ea4150520448">masternodeSync</a></div><div class="ttdeci">CMasternodeSync masternodeSync</div><div class="ttdef"><b>Definition:</b> <a href="masternode-sync_8cpp_source.html#l00017">masternode-sync.cpp:17</a></div></div>
|
|
<div class="ttc" id="classCScriptNum_html"><div class="ttname"><a href="classCScriptNum.html">CScriptNum</a></div><div class="ttdef"><b>Definition:</b> <a href="script_8h_source.html#l00195">script.h:195</a></div></div>
|
|
<div class="ttc" id="util_8cpp_html_a8d620b8c9865456b925cd0eea4b2ffc1"><div class="ttname"><a href="util_8cpp.html#a8d620b8c9865456b925cd0eea4b2ffc1">SetThreadPriority</a></div><div class="ttdeci">void SetThreadPriority(int nPriority)</div><div class="ttdef"><b>Definition:</b> <a href="util_8cpp_source.html#l00935">util.cpp:935</a></div></div>
|
|
<div class="ttc" id="utiltime_8cpp_html_ac635182d3e845eda4af4fa5ab31609da"><div class="ttname"><a href="utiltime_8cpp.html#ac635182d3e845eda4af4fa5ab31609da">MilliSleep</a></div><div class="ttdeci">void MilliSleep(int64_t n)</div><div class="ttdef"><b>Definition:</b> <a href="utiltime_8cpp_source.html#l00063">utiltime.cpp:63</a></div></div>
|
|
<div class="ttc" id="structTxCoinAgePriorityCompare_html"><div class="ttname"><a href="structTxCoinAgePriorityCompare.html">TxCoinAgePriorityCompare</a></div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00652">txmempool.h:652</a></div></div>
|
|
<div class="ttc" id="policy_8h_html_af6c9216dbcbc485a353c74a5b12a0a06"><div class="ttname"><a href="policy_8h.html#af6c9216dbcbc485a353c74a5b12a0a06">STANDARD_LOCKTIME_VERIFY_FLAGS</a></div><div class="ttdeci">static const unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS</div><div class="ttdef"><b>Definition:</b> <a href="policy_8h_source.html#l00050">policy.h:50</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_a9c09903c7d6401b5405db02af064179c"><div class="ttname"><a href="miner_8cpp.html#a9c09903c7d6401b5405db02af064179c">UpdateTime</a></div><div class="ttdeci">int64_t UpdateTime(CBlockHeader *pblock, const Consensus::Params &consensusParams, const CBlockIndex *pindexPrev)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00062">miner.cpp:62</a></div></div>
|
|
<div class="ttc" id="net_8h_html"><div class="ttname"><a href="net_8h.html">net.h</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_af8945f7f19ea7e938baab1bd4c226c2f"><div class="ttname"><a href="miner_8cpp.html#af8945f7f19ea7e938baab1bd4c226c2f">nLastBlockSize</a></div><div class="ttdeci">uint64_t nLastBlockSize</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00049">miner.cpp:49</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="classCBlock_html_a1bc25c5482ab726f97b3cde842cad6d9"><div class="ttname"><a href="classCBlock.html#a1bc25c5482ab726f97b3cde842cad6d9">CBlock::txoutMasternode</a></div><div class="ttdeci">CTxOut txoutMasternode</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00080">block.h:80</a></div></div>
|
|
<div class="ttc" id="consensus_8h_html_aa372df0d6494f4aaca5ecf5a5a9d4406"><div class="ttname"><a href="consensus_8h.html#aa372df0d6494f4aaca5ecf5a5a9d4406">MaxBlockSize</a></div><div class="ttdeci">unsigned int MaxBlockSize(bool fDIP0001Active)</div><div class="ttdef"><b>Definition:</b> <a href="consensus_8h_source.html#l00012">consensus.h:12</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_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="classCChainParams_html_aa366d4f63c8d16d625336dca61ca65e5"><div class="ttname"><a href="classCChainParams.html#aa366d4f63c8d16d625336dca61ca65e5">CChainParams::GetConsensus</a></div><div class="ttdeci">const Consensus::Params & GetConsensus() const</div><div class="ttdef"><b>Definition:</b> <a href="chainparams_8h_source.html#l00055">chainparams.h:55</a></div></div>
|
|
<div class="ttc" id="classScoreCompare_html"><div class="ttname"><a href="classScoreCompare.html">ScoreCompare</a></div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00051">miner.cpp:51</a></div></div>
|
|
<div class="ttc" id="classScoreCompare_html_a34e572e801d371b3c4c22bc9fb72d95b"><div class="ttname"><a href="classScoreCompare.html#a34e572e801d371b3c4c22bc9fb72d95b">ScoreCompare::operator()</a></div><div class="ttdeci">bool operator()(const CTxMemPool::txiter a, const CTxMemPool::txiter b)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00056">miner.cpp:56</a></div></div>
|
|
<div class="ttc" id="structConsensus_1_1Params_html_afd9757f632e52fc76d944bee2925f1f0"><div class="ttname"><a href="structConsensus_1_1Params.html#afd9757f632e52fc76d944bee2925f1f0">Consensus::Params::fPowAllowMinDifficultyBlocks</a></div><div class="ttdeci">bool fPowAllowMinDifficultyBlocks</div><div class="ttdef"><b>Definition:</b> <a href="params_8h_source.html#l00078">params.h:78</a></div></div>
|
|
<div class="ttc" id="classarith__uint256_html_a458133c9f123519646b07e6143f2164f"><div class="ttname"><a href="classarith__uint256.html#a458133c9f123519646b07e6143f2164f">arith_uint256::SetCompact</a></div><div class="ttdeci">arith_uint256 & SetCompact(uint32_t nCompact, bool *pfNegative=NULL, bool *pfOverflow=NULL)</div><div class="ttdef"><b>Definition:</b> <a href="arith__uint256_8cpp_source.html#l00204">arith_uint256.cpp:204</a></div></div>
|
|
<div class="ttc" id="consensus_8h_html_a99fb83031ce9923c84392b4e92f956b5a26240702e1a6536406f20c2f0305358d"><div class="ttname"><a href="consensus_8h.html#a99fb83031ce9923c84392b4e92f956b5a26240702e1a6536406f20c2f0305358d">LOCKTIME_MEDIAN_TIME_PAST</a></div><div class="ttdef"><b>Definition:</b> <a href="consensus_8h_source.html#l00031">consensus.h:31</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_a1ed8285f0fe3c6799c53265ce72552c8"><div class="ttname"><a href="validation_8cpp.html#a1ed8285f0fe3c6799c53265ce72552c8">cs_main</a></div><div class="ttdeci">CCriticalSection cs_main</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00062">validation.cpp:62</a></div></div>
|
|
<div class="ttc" id="classCBlockHeader_html_abad634d81d4c810390fa2080d79633e8"><div class="ttname"><a href="classCBlockHeader.html#abad634d81d4c810390fa2080d79633e8">CBlockHeader::GetBlockTime</a></div><div class="ttdeci">int64_t GetBlockTime() const</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00066">block.h:66</a></div></div>
|
|
<div class="ttc" id="chainparams_8h_html"><div class="ttname"><a href="chainparams_8h.html">chainparams.h</a></div></div>
|
|
<div class="ttc" id="classCConnman_html"><div class="ttname"><a href="classCConnman.html">CConnman</a></div><div class="ttdef"><b>Definition:</b> <a href="net_8h_source.html#l00108">net.h:108</a></div></div>
|
|
<div class="ttc" id="hash_8h_html"><div class="ttname"><a href="hash_8h.html">hash.h</a></div></div>
|
|
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
|
|
<div class="ttc" id="structConsensus_1_1Params_html"><div class="ttname"><a href="structConsensus_1_1Params.html">Consensus::Params</a></div><div class="ttdef"><b>Definition:</b> <a href="params_8h_source.html#l00043">params.h:43</a></div></div>
|
|
<div class="ttc" id="structCMutableTransaction_html_ad6b1a0a773293fd153a1d384923631da"><div class="ttname"><a href="structCMutableTransaction.html#ad6b1a0a773293fd153a1d384923631da">CMutableTransaction::vin</a></div><div class="ttdeci">std::vector< CTxIn > vin</div><div class="ttdef"><b>Definition:</b> <a href="transaction_8h_source.html#l00306">transaction.h:306</a></div></div>
|
|
<div class="ttc" id="classCFeeRate_html_a6a3aef64120ef51ac921318282404b0e"><div class="ttname"><a href="classCFeeRate.html#a6a3aef64120ef51ac921318282404b0e">CFeeRate::GetFee</a></div><div class="ttdeci">CAmount GetFee(size_t size) const</div><div class="ttdef"><b>Definition:</b> <a href="amount_8cpp_source.html#l00020">amount.cpp:20</a></div></div>
|
|
<div class="ttc" id="utilmoneystr_8h_html"><div class="ttname"><a href="utilmoneystr_8h.html">utilmoneystr.h</a></div></div>
|
|
<div class="ttc" id="classCBlock_html_a1fa319f8d0e2de9fdccf32b893ea27b2"><div class="ttname"><a href="classCBlock.html#a1fa319f8d0e2de9fdccf32b893ea27b2">CBlock::voutSuperblock</a></div><div class="ttdeci">std::vector< CTxOut > voutSuperblock</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00081">block.h:81</a></div></div>
|
|
<div class="ttc" id="classScoreCompare_html_a693165fcd7e8b5cb76f7a71b38c57df9"><div class="ttname"><a href="classScoreCompare.html#a693165fcd7e8b5cb76f7a71b38c57df9">ScoreCompare::ScoreCompare</a></div><div class="ttdeci">ScoreCompare()</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00054">miner.cpp:54</a></div></div>
|
|
<div class="ttc" id="classCValidationState_html"><div class="ttname"><a href="classCValidationState.html">CValidationState</a></div><div class="ttdef"><b>Definition:</b> <a href="consensus_2validation_8h_source.html#l00022">validation.h:22</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="classCTxMemPool_html_acd27558d400055a08b970bd2a0d9c953"><div class="ttname"><a href="classCTxMemPool.html#acd27558d400055a08b970bd2a0d9c953">CTxMemPool::mapTx</a></div><div class="ttdeci">indexed_transaction_set mapTx</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00403">txmempool.h:403</a></div></div>
|
|
<div class="ttc" id="txmempool_8h_html_aeaaac2108576e7c8d4c8960abdd7f153"><div class="ttname"><a href="txmempool_8h.html#aeaaac2108576e7c8d4c8960abdd7f153">TxCoinAgePriority</a></div><div class="ttdeci">std::pair< double, CTxMemPool::txiter > TxCoinAgePriority</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00650">txmempool.h:650</a></div></div>
|
|
<div class="ttc" id="structCMainSignals_html_a27cc5668c440a9d451f7f661370dbc61"><div class="ttname"><a href="structCMainSignals.html#a27cc5668c440a9d451f7f661370dbc61">CMainSignals::BlockFound</a></div><div class="ttdeci">boost::signals2::signal< void(const uint256 &)> BlockFound</div><div class="ttdef"><b>Definition:</b> <a href="validationinterface_8h_source.html#l00074">validationinterface.h:74</a></div></div>
|
|
<div class="ttc" id="util_8cpp_html_a85fc1244e0bd3c91ee7a1c05ed10ebbb"><div class="ttname"><a href="util_8cpp.html#a85fc1244e0bd3c91ee7a1c05ed10ebbb">RenameThread</a></div><div class="ttdeci">void RenameThread(const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="util_8cpp_source.html#l00873">util.cpp:873</a></div></div>
|
|
<div class="ttc" id="merkle_8h_html"><div class="ttname"><a href="merkle_8h.html">merkle.h</a></div></div>
|
|
<div class="ttc" id="miner_8h_html"><div class="ttname"><a href="miner_8h.html">miner.h</a></div></div>
|
|
<div class="ttc" id="arith__uint256_8cpp_html_a6a6e0e2e41ba7e31c4a741eb2426a516"><div class="ttname"><a href="arith__uint256_8cpp.html#a6a6e0e2e41ba7e31c4a741eb2426a516">UintToArith256</a></div><div class="ttdeci">arith_uint256 UintToArith256(const uint256 &a)</div><div class="ttdef"><b>Definition:</b> <a href="arith__uint256_8cpp_source.html#l00254">arith_uint256.cpp:254</a></div></div>
|
|
<div class="ttc" id="classCBlock_html_a9b6508d662722775f3029b980b382b66"><div class="ttname"><a href="classCBlock.html#a9b6508d662722775f3029b980b382b66">CBlock::vtx</a></div><div class="ttdeci">std::vector< CTransaction > vtx</div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00077">block.h:77</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_ac880446d7f8833dd498df914ccc816a9"><div class="ttname"><a href="validation_8cpp.html#ac880446d7f8833dd498df914ccc816a9">ProcessNewBlock</a></div><div class="ttdeci">bool ProcessNewBlock(const CChainParams &chainparams, const CBlock *pblock, bool fForceProcessing, const CDiskBlockPos *dbp, bool *fNewBlock)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l03484">validation.cpp:3484</a></div></div>
|
|
<div class="ttc" id="classCConnman_html_a255a163d4df189aa01faf219c97a2994"><div class="ttname"><a href="classCConnman.html#a255a163d4df189aa01faf219c97a2994">CConnman::GetNodeCount</a></div><div class="ttdeci">size_t GetNodeCount(NumConnections num)</div><div class="ttdef"><b>Definition:</b> <a href="net_8cpp_source.html#l02429">net.cpp:2429</a></div></div>
|
|
<div class="ttc" id="classCTxMemPool_html_a8bf3b1d8436f9abc68f0c8391377df5d"><div class="ttname"><a href="classCTxMemPool.html#a8bf3b1d8436f9abc68f0c8391377df5d">CTxMemPool::ApplyDeltas</a></div><div class="ttdeci">void ApplyDeltas(const uint256 hash, double &dPriorityDelta, CAmount &nFeeDelta) const</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8cpp_source.html#l00957">txmempool.cpp:957</a></div></div>
|
|
<div class="ttc" id="amount_8h_html_a4eaf3a5239714d8c45b851527f7cb564"><div class="ttname"><a href="amount_8h.html#a4eaf3a5239714d8c45b851527f7cb564">CAmount</a></div><div class="ttdeci">int64_t CAmount</div><div class="ttdef"><b>Definition:</b> <a href="amount_8h_source.html#l00014">amount.h:14</a></div></div>
|
|
<div class="ttc" id="classCFeeRate_html"><div class="ttname"><a href="classCFeeRate.html">CFeeRate</a></div><div class="ttdef"><b>Definition:</b> <a href="amount_8h_source.html#l00036">amount.h:36</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="compat_8h_html_af05a5c044382ba6895bcaad26325a693"><div class="ttname"><a href="compat_8h.html#af05a5c044382ba6895bcaad26325a693">THREAD_PRIORITY_NORMAL</a></div><div class="ttdeci">#define THREAD_PRIORITY_NORMAL</div><div class="ttdef"><b>Definition:</b> <a href="compat_8h_source.html#l00088">compat.h:88</a></div></div>
|
|
<div class="ttc" id="masternode-payments_8h_html"><div class="ttname"><a href="masternode-payments_8h.html">masternode-payments.h</a></div></div>
|
|
<div class="ttc" id="classCChainParams_html"><div class="ttname"><a href="classCChainParams.html">CChainParams</a></div><div class="ttdef"><b>Definition:</b> <a href="chainparams_8h_source.html#l00042">chainparams.h:42</a></div></div>
|
|
<div class="ttc" id="classCTxMemPool_html_ac7ee8c06837c7d2688e2d7e3d071bdbb"><div class="ttname"><a href="classCTxMemPool.html#ac7ee8c06837c7d2688e2d7e3d071bdbb">CTxMemPool::cs</a></div><div class="ttdeci">CCriticalSection cs</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00402">txmempool.h:402</a></div></div>
|
|
<div class="ttc" id="util_8cpp_html_a64d956f1dda7f9a80ab5d594532b906d"><div class="ttname"><a href="util_8cpp.html#a64d956f1dda7f9a80ab5d594532b906d">GetBoolArg</a></div><div class="ttdeci">bool GetBoolArg(const std::string &strArg, bool fDefault)</div><div class="ttdef"><b>Definition:</b> <a href="util_8cpp_source.html#l00455">util.cpp:455</a></div></div>
|
|
<div class="ttc" id="util_8h_html_afc02c0a4258fedfb316be612bb659ba8"><div class="ttname"><a href="util_8h.html#afc02c0a4258fedfb316be612bb659ba8">LogPrintf</a></div><div class="ttdeci">#define LogPrintf(...)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00098">util.h:98</a></div></div>
|
|
<div class="ttc" id="txmempool_8h_html"><div class="ttname"><a href="txmempool_8h.html">txmempool.h</a></div></div>
|
|
<div class="ttc" id="classCTxMemPool_html_aa3b42beec827c813a0c4b42e50615f5a"><div class="ttname"><a href="classCTxMemPool.html#aa3b42beec827c813a0c4b42e50615f5a">CTxMemPool::txiter</a></div><div class="ttdeci">indexed_transaction_set::nth_index< 0 >::type::iterator txiter</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00404">txmempool.h:404</a></div></div>
|
|
<div class="ttc" id="compat_8h_html_a59ca83deecce4e6c8b6139e7eb2870b4"><div class="ttname"><a href="compat_8h.html#a59ca83deecce4e6c8b6139e7eb2870b4">THREAD_PRIORITY_LOWEST</a></div><div class="ttdeci">#define THREAD_PRIORITY_LOWEST</div><div class="ttdef"><b>Definition:</b> <a href="compat_8h_source.html#l00086">compat.h:86</a></div></div>
|
|
<div class="ttc" id="classCTxMemPool_html_ac3336a567bb5cd890057482170e5553d"><div class="ttname"><a href="classCTxMemPool.html#ac3336a567bb5cd890057482170e5553d">CTxMemPool::GetMemPoolParents</a></div><div class="ttdeci">const setEntries & GetMemPoolParents(txiter entry) const</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8cpp_source.html#l01060">txmempool.cpp:1060</a></div></div>
|
|
<div class="ttc" id="serialize_8h_html_a48239e478ae730373d1984fe304ca025"><div class="ttname"><a href="serialize_8h.html#a48239e478ae730373d1984fe304ca025">GetSerializeSize</a></div><div class="ttdeci">unsigned int GetSerializeSize(char a, int, int=0)</div><div class="ttdef"><b>Definition:</b> <a href="serialize_8h_source.html#l00202">serialize.h:202</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_a5925a10baeee7d4bdce1982bdcbd3bd0"><div class="ttname"><a href="validation_8cpp.html#a5925a10baeee7d4bdce1982bdcbd3bd0">minRelayTxFee</a></div><div class="ttdeci">CFeeRate minRelayTxFee</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00094">validation.cpp:94</a></div></div>
|
|
<div class="ttc" id="classCTransaction_html"><div class="ttname"><a href="classCTransaction.html">CTransaction</a></div><div class="ttdef"><b>Definition:</b> <a href="transaction_8h_source.html#l00210">transaction.h:210</a></div></div>
|
|
<div class="ttc" id="sync_8h_html_a911fe23f057c2fe5aad629162d6c99d0"><div class="ttname"><a href="sync_8h.html#a911fe23f057c2fe5aad629162d6c99d0">LOCK</a></div><div class="ttdeci">#define LOCK(cs)</div><div class="ttdef"><b>Definition:</b> <a href="sync_8h_source.html#l00168">sync.h:168</a></div></div>
|
|
<div class="ttc" id="pow_8cpp_html_a444323ddc75c2b90f484fa9b9da31dc8"><div class="ttname"><a href="pow_8cpp.html#a444323ddc75c2b90f484fa9b9da31dc8">GetNextWorkRequired</a></div><div class="ttdeci">unsigned int GetNextWorkRequired(const CBlockIndex *pindexLast, const CBlockHeader *pblock, const Consensus::Params &params)</div><div class="ttdef"><b>Definition:</b> <a href="pow_8cpp_source.html#l00172">pow.cpp:172</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_a31f8b0d3c96670151ba997019820e0f4"><div class="ttname"><a href="miner_8cpp.html#a31f8b0d3c96670151ba997019820e0f4">nLastBlockTx</a></div><div class="ttdeci">uint64_t nLastBlockTx</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00048">miner.cpp:48</a></div></div>
|
|
<div class="ttc" id="consensus_8h_html_a584552e12f7fc517fbc554315d181d27"><div class="ttname"><a href="consensus_8h.html#a584552e12f7fc517fbc554315d181d27">MaxBlockSigOps</a></div><div class="ttdeci">unsigned int MaxBlockSigOps(bool fDIP0001Active)</div><div class="ttdef"><b>Definition:</b> <a href="consensus_8h_source.html#l00018">consensus.h:18</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_a17c61f964b27cc5060cd7f9b0efb3607"><div class="ttname"><a href="miner_8cpp.html#a17c61f964b27cc5060cd7f9b0efb3607">BitcoinMiner</a></div><div class="ttdeci">static void BitcoinMiner(const CChainParams &chainparams, CConnman &connman)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00403">miner.cpp:403</a></div></div>
|
|
<div class="ttc" id="policy_8h_html"><div class="ttname"><a href="policy_8h.html">policy.h</a></div></div>
|
|
<div class="ttc" id="consensus_2validation_8h_html"><div class="ttname"><a href="consensus_2validation_8h.html">validation.h</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_a5dd1df3c97c260735ad08a808db2115c"><div class="ttname"><a href="miner_8cpp.html#a5dd1df3c97c260735ad08a808db2115c">GenerateBitcoins</a></div><div class="ttdeci">void GenerateBitcoins(bool fGenerate, int nThreads, const CChainParams &chainparams, CConnman &connman)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00524">miner.cpp:524</a></div></div>
|
|
<div class="ttc" id="util_8h_html_af8985880cf4ef26df0a5aa2ffcb76662"><div class="ttname"><a href="util_8h.html#af8985880cf4ef26df0a5aa2ffcb76662">error</a></div><div class="ttdeci">static bool error(const char *format)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00131">util.h:131</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_a5edcd96316574fd4a7f3ae0922a5cfd6"><div class="ttname"><a href="validation_8cpp.html#a5edcd96316574fd4a7f3ae0922a5cfd6">IsInitialBlockDownload</a></div><div class="ttdeci">bool IsInitialBlockDownload()</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l01297">validation.cpp:1297</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="validation_8cpp_html_acc6a734ed0e106c8fcfd4f0ab6501d0a"><div class="ttname"><a href="validation_8cpp.html#acc6a734ed0e106c8fcfd4f0ab6501d0a">fDIP0001ActiveAtTip</a></div><div class="ttdeci">std::atomic< bool > fDIP0001ActiveAtTip</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00089">validation.cpp:89</a></div></div>
|
|
<div class="ttc" id="validationinterface_8cpp_html_a0aaad62c8654cb1868295e0682b05866"><div class="ttname"><a href="validationinterface_8cpp.html#a0aaad62c8654cb1868295e0682b05866">GetMainSignals</a></div><div class="ttdeci">CMainSignals & GetMainSignals()</div><div class="ttdef"><b>Definition:</b> <a href="validationinterface_8cpp_source.html#l00010">validationinterface.cpp:10</a></div></div>
|
|
<div class="ttc" id="coins_8h_html"><div class="ttname"><a href="coins_8h.html">coins.h</a></div></div>
|
|
<div class="ttc" id="txmempool_8h_html_ae6c67bac023a01f1ae29b7f2f4505bba"><div class="ttname"><a href="txmempool_8h.html#ae6c67bac023a01f1ae29b7f2f4505bba">AllowFree</a></div><div class="ttdeci">bool AllowFree(double dPriority)</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00031">txmempool.h:31</a></div></div>
|
|
<div class="ttc" id="util_8h_html"><div class="ttname"><a href="util_8h.html">util.h</a></div></div>
|
|
<div class="ttc" id="merkle_8cpp_html_aa6eda15268d7ec708195aed9b5d9eab3"><div class="ttname"><a href="merkle_8cpp.html#aa6eda15268d7ec708195aed9b5d9eab3">BlockMerkleRoot</a></div><div class="ttdeci">uint256 BlockMerkleRoot(const CBlock &block, bool *mutated)</div><div class="ttdef"><b>Definition:</b> <a href="merkle_8cpp_source.html#l00154">merkle.cpp:154</a></div></div>
|
|
<div class="ttc" id="policy_8h_html_abab629176e0f22d84f3f9368364ba59f"><div class="ttname"><a href="policy_8h.html#abab629176e0f22d84f3f9368364ba59f">DEFAULT_BLOCK_MAX_SIZE</a></div><div class="ttdeci">static const unsigned int DEFAULT_BLOCK_MAX_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="policy_8h_source.html#l00018">policy.h:18</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_adb31995c443ae2aef1d2f1c350de0419"><div class="ttname"><a href="validation_8cpp.html#adb31995c443ae2aef1d2f1c350de0419">chainActive</a></div><div class="ttdeci">CChain chainActive</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00065">validation.cpp:65</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="validation_8cpp_html_a5ed86cbbedb72d8fcec0524f2792ada8"><div class="ttname"><a href="validation_8cpp.html#a5ed86cbbedb72d8fcec0524f2792ada8">COINBASE_FLAGS</a></div><div class="ttdeci">CScript COINBASE_FLAGS</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00107">validation.cpp:107</a></div></div>
|
|
<div class="ttc" id="timedata_8h_html"><div class="ttname"><a href="timedata_8h.html">timedata.h</a></div></div>
|
|
<div class="ttc" id="utilmoneystr_8cpp_html_a0043c9abedcbce2d7d1d2cacaf595c9e"><div class="ttname"><a href="utilmoneystr_8cpp.html#a0043c9abedcbce2d7d1d2cacaf595c9e">FormatMoney</a></div><div class="ttdeci">std::string FormatMoney(const CAmount &n)</div><div class="ttdef"><b>Definition:</b> <a href="utilmoneystr_8cpp_source.html#l00014">utilmoneystr.cpp:14</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="classCTxMemPool_html_a8da3f55d23d335261338753b22e0171d"><div class="ttname"><a href="classCTxMemPool.html#a8da3f55d23d335261338753b22e0171d">CTxMemPool::setEntries</a></div><div class="ttdeci">std::set< txiter, CompareIteratorByHash > setEntries</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00410">txmempool.h:410</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_ad2eaf4f8542c12ea9ee1183609cc6d1a"><div class="ttname"><a href="validation_8cpp.html#ad2eaf4f8542c12ea9ee1183609cc6d1a">GetLegacySigOpCount</a></div><div class="ttdeci">unsigned int GetLegacySigOpCount(const CTransaction &tx)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00417">validation.cpp:417</a></div></div>
|
|
<div class="ttc" id="policy_8h_html_ab4d3d6f7bce9b18fdb118d0fabd66b25"><div class="ttname"><a href="policy_8h.html#ab4d3d6f7bce9b18fdb118d0fabd66b25">DEFAULT_BLOCK_MIN_SIZE</a></div><div class="ttdeci">static const unsigned int DEFAULT_BLOCK_MIN_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="policy_8h_source.html#l00019">policy.h:19</a></div></div>
|
|
<div class="ttc" id="policy_8h_html_aa301575eb37f7f95a7b67b064c73cdf8"><div class="ttname"><a href="policy_8h.html#aa301575eb37f7f95a7b67b064c73cdf8">DEFAULT_BLOCK_PRIORITY_SIZE</a></div><div class="ttdeci">static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="policy_8h_source.html#l00021">policy.h:21</a></div></div>
|
|
<div class="ttc" id="structCMutableTransaction_html_aca14a252c78e4af2dfe68d7ea67a77dc"><div class="ttname"><a href="structCMutableTransaction.html#aca14a252c78e4af2dfe68d7ea67a77dc">CMutableTransaction::vout</a></div><div class="ttdeci">std::vector< CTxOut > vout</div><div class="ttdef"><b>Definition:</b> <a href="transaction_8h_source.html#l00307">transaction.h:307</a></div></div>
|
|
<div class="ttc" id="chain_8h_html"><div class="ttname"><a href="chain_8h.html">chain.h</a></div></div>
|
|
<div class="ttc" id="classCBlock_html_a0e8a98f10831c00ae76b3a831c4804e5"><div class="ttname"><a href="classCBlock.html#a0e8a98f10831c00ae76b3a831c4804e5">CBlock::ToString</a></div><div class="ttdeci">std::string ToString() const</div><div class="ttdef"><b>Definition:</b> <a href="block_8cpp_source.html#l00018">block.cpp:18</a></div></div>
|
|
<div class="ttc" id="structCBlockTemplate_html"><div class="ttname"><a href="structCBlockTemplate.html">CBlockTemplate</a></div><div class="ttdef"><b>Definition:</b> <a href="miner_8h_source.html#l00026">miner.h:26</a></div></div>
|
|
<div class="ttc" id="classCConnman_html_a78c7481e9b2575bb1fb37078e28a1c6aa45b675928145678b43b3927be215c60f"><div class="ttname"><a href="classCConnman.html#a78c7481e9b2575bb1fb37078e28a1c6aa45b675928145678b43b3927be215c60f">CConnman::CONNECTIONS_ALL</a></div><div class="ttdef"><b>Definition:</b> <a href="net_8h_source.html#l00116">net.h:116</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_a4873920d6e6dc589a2062dd3f17e2e52"><div class="ttname"><a href="miner_8cpp.html#a4873920d6e6dc589a2062dd3f17e2e52">IncrementExtraNonce</a></div><div class="ttdeci">void IncrementExtraNonce(CBlock *pblock, const CBlockIndex *pindexPrev, unsigned int &nExtraNonce)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00322">miner.cpp:322</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="validation_8cpp_html_a86ed1d2d0837b905d74c2e4192b6c06a"><div class="ttname"><a href="validation_8cpp.html#a86ed1d2d0837b905d74c2e4192b6c06a">FormatStateMessage</a></div><div class="ttdeci">std::string FormatStateMessage(const CValidationState &state)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00541">validation.cpp:541</a></div></div>
|
|
<div class="ttc" id="instantx_8cpp_html_abc71256f703e47c9254093e32ed2994c"><div class="ttname"><a href="instantx_8cpp.html#abc71256f703e47c9254093e32ed2994c">mempool</a></div><div class="ttdeci">CTxMemPool mempool</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="classCTxMemPool_html_a0f163f91b8590b86acd43b26438d7ee1"><div class="ttname"><a href="classCTxMemPool.html#a0f163f91b8590b86acd43b26438d7ee1">CTxMemPool::GetMemPoolChildren</a></div><div class="ttdeci">const setEntries & GetMemPoolChildren(txiter entry) const</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8cpp_source.html#l01068">txmempool.cpp:1068</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_abfbc96f613381f93c13c00ebc2f25139"><div class="ttname"><a href="miner_8cpp.html#abfbc96f613381f93c13c00ebc2f25139">ProcessBlockFound</a></div><div class="ttdeci">static bool ProcessBlockFound(const CBlock *pblock, const CChainParams &chainparams)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00380">miner.cpp:380</a></div></div>
|
|
<div class="ttc" id="chainparams_8cpp_html_ace5c5b706d71a324a417dd2db394fd4a"><div class="ttname"><a href="chainparams_8cpp.html#ace5c5b706d71a324a417dd2db394fd4a">Params</a></div><div class="ttdeci">const CChainParams & Params()</div><div class="ttdef"><b>Definition:</b> <a href="chainparams_8cpp_source.html#l00424">chainparams.cpp:424</a></div></div>
|
|
<div class="ttc" id="version_8h_html_a4e2497f7c9c4319adcaf945159ec63f4"><div class="ttname"><a href="version_8h.html#a4e2497f7c9c4319adcaf945159ec63f4">PROTOCOL_VERSION</a></div><div class="ttdeci">static const int PROTOCOL_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="version_8h_source.html#l00013">version.h:13</a></div></div>
|
|
<div class="ttc" id="classCTransaction_html_a7efd1379de830341417c0bfa23a149aa"><div class="ttname"><a href="classCTransaction.html#a7efd1379de830341417c0bfa23a149aa">CTransaction::GetHash</a></div><div class="ttdeci">const uint256 & GetHash() const</div><div class="ttdef"><b>Definition:</b> <a href="transaction_8h_source.html#l00262">transaction.h:262</a></div></div>
|
|
<div class="ttc" id="classCScript_html"><div class="ttname"><a href="classCScript.html">CScript</a></div><div class="ttdef"><b>Definition:</b> <a href="script_8h_source.html#l00373">script.h:373</a></div></div>
|
|
<div class="ttc" id="timedata_8cpp_html_a09f81b9c7650f898cf3cf305b87547e6"><div class="ttname"><a href="timedata_8cpp.html#a09f81b9c7650f898cf3cf305b87547e6">GetAdjustedTime</a></div><div class="ttdeci">int64_t GetAdjustedTime()</div><div class="ttdef"><b>Definition:</b> <a href="timedata_8cpp_source.html#l00033">timedata.cpp:33</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_a6ba099900e367f3605b645b8055004e6"><div class="ttname"><a href="validation_8cpp.html#a6ba099900e367f3605b645b8055004e6">TestBlockValidity</a></div><div class="ttdeci">bool TestBlockValidity(CValidationState &state, const CChainParams &chainparams, const CBlock &block, CBlockIndex *pindexPrev, bool fCheckPOW, bool fCheckMerkleRoot)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l03511">validation.cpp:3511</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="validationinterface_8h_html"><div class="ttname"><a href="validationinterface_8h.html">validationinterface.h</a></div></div>
|
|
<div class="ttc" id="classbase__blob_html_ad7263503f949fb3c6c520ebb1f28e378"><div class="ttname"><a href="classbase__blob.html#ad7263503f949fb3c6c520ebb1f28e378">base_blob::GetHex</a></div><div class="ttdeci">std::string GetHex() const</div><div class="ttdef"><b>Definition:</b> <a href="uint256_8cpp_source.html#l00021">uint256.cpp:21</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="consensus_8h_html"><div class="ttname"><a href="consensus_8h.html">consensus.h</a></div></div>
|
|
<div class="ttc" id="classCompareTxMemPoolEntryByScore_html"><div class="ttname"><a href="classCompareTxMemPoolEntryByScore.html">CompareTxMemPoolEntryByScore</a></div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8h_source.html#l00241">txmempool.h:241</a></div></div>
|
|
<div class="ttc" id="amount_8h_html"><div class="ttname"><a href="amount_8h.html">amount.h</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="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="masternode-sync_8h_html"><div class="ttname"><a href="masternode-sync_8h.html">masternode-sync.h</a></div></div>
|
|
<div class="ttc" id="util_8cpp_html_a24f685720bf40370e5bd2a192ad50cd8"><div class="ttname"><a href="util_8cpp.html#a24f685720bf40370e5bd2a192ad50cd8">GetArg</a></div><div class="ttdeci">std::string GetArg(const std::string &strArg, const std::string &strDefault)</div><div class="ttdef"><b>Definition:</b> <a href="util_8cpp_source.html#l00441">util.cpp:441</a></div></div>
|
|
<div class="ttc" id="classbase__uint_html_ae5e7b7481de91ebead20eebd5d685441"><div class="ttname"><a href="classbase__uint.html#ae5e7b7481de91ebead20eebd5d685441">base_uint::GetHex</a></div><div class="ttdeci">std::string GetHex() const</div><div class="ttdef"><b>Definition:</b> <a href="arith__uint256_8cpp_source.html#l00148">arith_uint256.cpp:148</a></div></div>
|
|
<div class="ttc" id="utiltime_8cpp_html_a46fac5fba8ba905b5f9acb364f5d8c6f"><div class="ttname"><a href="utiltime_8cpp.html#a46fac5fba8ba905b5f9acb364f5d8c6f">GetTime</a></div><div class="ttdeci">int64_t GetTime()</div><div class="ttdoc">For unit testing. </div><div class="ttdef"><b>Definition:</b> <a href="utiltime_8cpp_source.html#l00020">utiltime.cpp:20</a></div></div>
|
|
<div class="ttc" id="util_8cpp_html_ae39f49506868759c202b588f7ae2c2d7"><div class="ttname"><a href="util_8cpp.html#ae39f49506868759c202b588f7ae2c2d7">GetNumCores</a></div><div class="ttdeci">int GetNumCores()</div><div class="ttdef"><b>Definition:</b> <a href="util_8cpp_source.html#l00948">util.cpp:948</a></div></div>
|
|
<div class="ttc" id="classCChainParams_html_a066ad4166984a31bdc0836193a6341ee"><div class="ttname"><a href="classCChainParams.html#a066ad4166984a31bdc0836193a6341ee">CChainParams::MiningRequiresPeers</a></div><div class="ttdeci">bool MiningRequiresPeers() const</div><div class="ttdef"><b>Definition:</b> <a href="chainparams_8h_source.html#l00062">chainparams.h:62</a></div></div>
|
|
<div class="ttc" id="miner_8h_html_a535d21266859aff68fa43e6f0092cb2e"><div class="ttname"><a href="miner_8h.html#a535d21266859aff68fa43e6f0092cb2e">DEFAULT_PRINTPRIORITY</a></div><div class="ttdeci">static const bool DEFAULT_PRINTPRIORITY</div><div class="ttdef"><b>Definition:</b> <a href="miner_8h_source.html#l00024">miner.h:24</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_a47d8dc5b8aeb19de7298a98fecce30d9"><div class="ttname"><a href="validation_8cpp.html#a47d8dc5b8aeb19de7298a98fecce30d9">GetBlockSubsidy</a></div><div class="ttdeci">CAmount GetBlockSubsidy(int nPrevBits, int nPrevHeight, const Consensus::Params &consensusParams, bool fSuperblockPartOnly)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l01230">validation.cpp:1230</a></div></div>
|
|
<div class="ttc" id="miner_8cpp_html_ac8f34678ed590db1325b261c708f2626"><div class="ttname"><a href="miner_8cpp.html#ac8f34678ed590db1325b261c708f2626">CreateNewBlock</a></div><div class="ttdeci">CBlockTemplate * CreateNewBlock(const CChainParams &chainparams, const CScript &scriptPubKeyIn)</div><div class="ttdef"><b>Definition:</b> <a href="miner_8cpp_source.html#l00077">miner.cpp:77</a></div></div>
|
|
<div class="ttc" id="classCBlock_html"><div class="ttname"><a href="classCBlock.html">CBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="block_8h_source.html#l00073">block.h:73</a></div></div>
|
|
<div class="ttc" id="classCMasternodeSync_html_ab1f58bda356a30a15ae1733e238f188f"><div class="ttname"><a href="classCMasternodeSync.html#ab1f58bda356a30a15ae1733e238f188f">CMasternodeSync::IsSynced</a></div><div class="ttdeci">bool IsSynced()</div><div class="ttdef"><b>Definition:</b> <a href="masternode-sync_8h_source.html#l00063">masternode-sync.h:63</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="script_8h_html_a63e349a6089a54da9fe09a3d858648bdaccd484dad2223fffdbdc2637c4f1e40e"><div class="ttname"><a href="script_8h.html#a63e349a6089a54da9fe09a3d858648bdaccd484dad2223fffdbdc2637c4f1e40e">OP_0</a></div><div class="ttdef"><b>Definition:</b> <a href="script_8h_source.html#l00044">script.h:44</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="transaction_8h_html"><div class="ttname"><a href="transaction_8h.html">transaction.h</a></div></div>
|
|
<div class="ttc" id="validation_8cpp_html_adc332cd7ac94e639bb4239618341be19"><div class="ttname"><a href="validation_8cpp.html#adc332cd7ac94e639bb4239618341be19">IsFinalTx</a></div><div class="ttdeci">bool IsFinalTx(const CTransaction &tx, int nBlockHeight, int64_t nBlockTime)</div><div class="ttdef"><b>Definition:</b> <a href="validation_8cpp_source.html#l00200">validation.cpp:200</a></div></div>
|
|
<div class="ttc" id="classCChainParams_html_a96be31ff3d8525c9d5458b7d07ada6bb"><div class="ttname"><a href="classCChainParams.html#a96be31ff3d8525c9d5458b7d07ada6bb">CChainParams::MineBlocksOnDemand</a></div><div class="ttdeci">bool MineBlocksOnDemand() const</div><div class="ttdef"><b>Definition:</b> <a href="chainparams_8h_source.html#l00071">chainparams.h:71</a></div></div>
|
|
<div class="ttc" id="masternode-payments_8cpp_html_a1a60010ef73db581ad54a165770391c6"><div class="ttname"><a href="masternode-payments_8cpp.html#a1a60010ef73db581ad54a165770391c6">FillBlockPayments</a></div><div class="ttdeci">void FillBlockPayments(CMutableTransaction &txNew, int nBlockHeight, CAmount blockReward, CTxOut &txoutMasternodeRet, std::vector< CTxOut > &voutSuperblockRet)</div><div class="ttdef"><b>Definition:</b> <a href="masternode-payments_8cpp_source.html#l00210">masternode-payments.cpp:210</a></div></div>
|
|
<div class="ttc" id="classCTxMemPool_html_afd2a709a0e6cb34a57ff2f9fd0774e6c"><div class="ttname"><a href="classCTxMemPool.html#afd2a709a0e6cb34a57ff2f9fd0774e6c">CTxMemPool::GetTransactionsUpdated</a></div><div class="ttdeci">unsigned int GetTransactionsUpdated() const</div><div class="ttdef"><b>Definition:</b> <a href="txmempool_8cpp_source.html#l00360">txmempool.cpp:360</a></div></div>
|
|
<div class="ttc" id="standard_8h_html"><div class="ttname"><a href="standard_8h.html">standard.h</a></div></div>
|
|
<div class="ttc" id="namespaceextract__strings__qt_html_ad0d16bc882e7eb961f7284eb6b3ec0a2"><div class="ttname"><a href="namespaceextract__strings__qt.html#ad0d16bc882e7eb961f7284eb6b3ec0a2">extract_strings_qt.child</a></div><div class="ttdeci">child</div><div class="ttdef"><b>Definition:</b> <a href="extract__strings__qt_8py_source.html#l00055">extract_strings_qt.py:55</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="miner_8cpp.html">miner.cpp</a></li>
|
|
<li class="footer">Generated on Thu Dec 14 2017 13:15:03 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>
|