This commit is contained in:
bthomee
2025-08-19 09:49:50 -07:00
parent bb5efdeec8
commit e7f4ae8bed
14888 changed files with 259444 additions and 168566 deletions

View File

@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.5"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: Consensus.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,7 +29,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.5 -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@@ -46,6 +46,11 @@ $(function() {
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -102,6 +107,7 @@ $(function() {
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keywordtype">bool</span></div>
<div class="foldopen" id="foldopen00027" data-start="{" data-end="}">
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="namespaceripple.html#ac61c1aa91487dffa1a13eeeea5931aad"> 27</a></span><a class="code hl_function" href="namespaceripple.html#ac61c1aa91487dffa1a13eeeea5931aad">shouldCloseLedger</a>(</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">bool</span> anyTransactions,</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> prevProposers,</div>
@@ -179,8 +185,10 @@ $(function() {
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> CLOG(clog) &lt;&lt; <span class="stringliteral">&quot;no reason to not close. &quot;</span>;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</div>
</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="keywordtype">bool</span></div>
<div class="foldopen" id="foldopen00106" data-start="{" data-end="}">
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="namespaceripple.html#a5ce354b7ded861ca27fa83033dad4253"> 106</a></span><a class="code hl_function" href="namespaceripple.html#a5ce354b7ded861ca27fa83033dad4253">checkConsensusReached</a>(</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> agreeing,</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> total,</div>
@@ -250,8 +258,10 @@ $(function() {
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> }</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span>}</div>
</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><a class="code hl_enumeration" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1">ConsensusState</a></div>
<div class="foldopen" id="foldopen00177" data-start="{" data-end="}">
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="namespaceripple.html#a3f77b20f5195322940dad13117249178"> 177</a></span><a class="code hl_function" href="namespaceripple.html#a3f77b20f5195322940dad13117249178">checkConsensus</a>(</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> prevProposers,</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> currentProposers,</div>
@@ -346,40 +356,41 @@ $(function() {
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> CLOG(clog) &lt;&lt; <span class="stringliteral">&quot;No consensus. &quot;</span>;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1abafd7322c6e97d25b6299b5d6fe8920b">ConsensusState::No</a>;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span>}</div>
</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="abasic_stringstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a></div></div>
<div class="ttc" id="aclamp_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/clamp.html">std::clamp</a></div><div class="ttdeci">T clamp(T... args)</div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00059">Journal.h:60</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a556228cb60bcf405c225d3f64b7b01ae"><div class="ttname"><a href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">beast::Journal::debug</a></div><div class="ttdeci">Stream debug() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00328">Journal.h:328</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_abbe082bd27ca0f1d1365af2824e4f85b"><div class="ttname"><a href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">beast::Journal::trace</a></div><div class="ttdeci">Stream trace() const</div><div class="ttdoc">Severity stream access functions.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00322">Journal.h:322</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00340">Journal.h:340</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00059">Journal.h:60</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a556228cb60bcf405c225d3f64b7b01ae"><div class="ttname"><a href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">beast::Journal::debug</a></div><div class="ttdeci">Stream debug() const</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00328">Journal.h:328</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_abbe082bd27ca0f1d1365af2824e4f85b"><div class="ttname"><a href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">beast::Journal::trace</a></div><div class="ttdeci">Stream trace() const</div><div class="ttdoc">Severity stream access functions.</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00322">Journal.h:322</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00340">Journal.h:340</a></div></div>
<div class="ttc" id="acount_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration/count.html">std::chrono::milliseconds::count</a></div><div class="ttdeci">T count(T... args)</div></div>
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="algorithm_8h_source.html#l00025">algorithm.h:25</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition</b> <a href="algorithm_8h_source.html#l00025">algorithm.h:25</a></div></div>
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44">ripple::ConsensusMode::proposing</a></div><div class="ttdeci">@ proposing</div><div class="ttdoc">We are normal participant in consensus and propose our position.</div></div>
<div class="ttc" id="anamespaceripple_html_a3f77b20f5195322940dad13117249178"><div class="ttname"><a href="namespaceripple.html#a3f77b20f5195322940dad13117249178">ripple::checkConsensus</a></div><div class="ttdeci">ConsensusState checkConsensus(std::size_t prevProposers, std::size_t currentProposers, std::size_t currentAgree, std::size_t currentFinished, std::chrono::milliseconds previousAgreeTime, std::chrono::milliseconds currentAgreeTime, bool stalled, ConsensusParms const &amp;parms, bool proposing, beast::Journal j, std::unique_ptr&lt; std::stringstream &gt; const &amp;clog)</div><div class="ttdoc">Determine whether the network reached consensus and whether we joined.</div><div class="ttdef"><b>Definition:</b> <a href="Consensus_8cpp_source.html#l00177">Consensus.cpp:177</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5ce354b7ded861ca27fa83033dad4253"><div class="ttname"><a href="namespaceripple.html#a5ce354b7ded861ca27fa83033dad4253">ripple::checkConsensusReached</a></div><div class="ttdeci">bool checkConsensusReached(std::size_t agreeing, std::size_t total, bool count_self, std::size_t minConsensusPct, bool reachedMax, bool stalled, std::unique_ptr&lt; std::stringstream &gt; const &amp;clog)</div><div class="ttdef"><b>Definition:</b> <a href="Consensus_8cpp_source.html#l00106">Consensus.cpp:106</a></div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1">ripple::ConsensusState</a></div><div class="ttdeci">ConsensusState</div><div class="ttdoc">Whether we have or don't have a consensus.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusTypes_8h_source.html#l00188">ConsensusTypes.h:188</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3f77b20f5195322940dad13117249178"><div class="ttname"><a href="namespaceripple.html#a3f77b20f5195322940dad13117249178">ripple::checkConsensus</a></div><div class="ttdeci">ConsensusState checkConsensus(std::size_t prevProposers, std::size_t currentProposers, std::size_t currentAgree, std::size_t currentFinished, std::chrono::milliseconds previousAgreeTime, std::chrono::milliseconds currentAgreeTime, bool stalled, ConsensusParms const &amp;parms, bool proposing, beast::Journal j, std::unique_ptr&lt; std::stringstream &gt; const &amp;clog)</div><div class="ttdoc">Determine whether the network reached consensus and whether we joined.</div><div class="ttdef"><b>Definition</b> <a href="Consensus_8cpp_source.html#l00177">Consensus.cpp:177</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5ce354b7ded861ca27fa83033dad4253"><div class="ttname"><a href="namespaceripple.html#a5ce354b7ded861ca27fa83033dad4253">ripple::checkConsensusReached</a></div><div class="ttdeci">bool checkConsensusReached(std::size_t agreeing, std::size_t total, bool count_self, std::size_t minConsensusPct, bool reachedMax, bool stalled, std::unique_ptr&lt; std::stringstream &gt; const &amp;clog)</div><div class="ttdef"><b>Definition</b> <a href="Consensus_8cpp_source.html#l00106">Consensus.cpp:106</a></div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1">ripple::ConsensusState</a></div><div class="ttdeci">ConsensusState</div><div class="ttdoc">Whether we have or don't have a consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00188">ConsensusTypes.h:188</a></div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1a24fe48030f7d3097d5882535b04c3fa8"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a24fe48030f7d3097d5882535b04c3fa8">ripple::ConsensusState::Expired</a></div><div class="ttdeci">@ Expired</div><div class="ttdoc">Consensus time limit has hard-expired.</div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1a6978081a12147518207c7512374c5c80"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a6978081a12147518207c7512374c5c80">ripple::ConsensusState::MovedOn</a></div><div class="ttdeci">@ MovedOn</div><div class="ttdoc">The network has consensus without us.</div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1a93cba07454f06a4a960172bbd6e2a435"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a93cba07454f06a4a960172bbd6e2a435">ripple::ConsensusState::Yes</a></div><div class="ttdeci">@ Yes</div><div class="ttdoc">We have consensus along with the network.</div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1abafd7322c6e97d25b6299b5d6fe8920b"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1abafd7322c6e97d25b6299b5d6fe8920b">ripple::ConsensusState::No</a></div><div class="ttdeci">@ No</div><div class="ttdoc">We do not have consensus.</div></div>
<div class="ttc" id="anamespaceripple_html_ac61c1aa91487dffa1a13eeeea5931aad"><div class="ttname"><a href="namespaceripple.html#ac61c1aa91487dffa1a13eeeea5931aad">ripple::shouldCloseLedger</a></div><div class="ttdeci">bool shouldCloseLedger(bool anyTransactions, std::size_t prevProposers, std::size_t proposersClosed, std::size_t proposersValidated, std::chrono::milliseconds prevRoundTime, std::chrono::milliseconds timeSincePrevClose, std::chrono::milliseconds openTime, std::chrono::milliseconds idleInterval, ConsensusParms const &amp;parms, beast::Journal j, std::unique_ptr&lt; std::stringstream &gt; const &amp;clog)</div><div class="ttdoc">Determines whether the current ledger should close at this time.</div><div class="ttdef"><b>Definition:</b> <a href="Consensus_8cpp_source.html#l00027">Consensus.cpp:27</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac61c1aa91487dffa1a13eeeea5931aad"><div class="ttname"><a href="namespaceripple.html#ac61c1aa91487dffa1a13eeeea5931aad">ripple::shouldCloseLedger</a></div><div class="ttdeci">bool shouldCloseLedger(bool anyTransactions, std::size_t prevProposers, std::size_t proposersClosed, std::size_t proposersValidated, std::chrono::milliseconds prevRoundTime, std::chrono::milliseconds timeSincePrevClose, std::chrono::milliseconds openTime, std::chrono::milliseconds idleInterval, ConsensusParms const &amp;parms, beast::Journal j, std::unique_ptr&lt; std::stringstream &gt; const &amp;clog)</div><div class="ttdoc">Determines whether the current ledger should close at this time.</div><div class="ttdef"><b>Definition</b> <a href="Consensus_8cpp_source.html#l00027">Consensus.cpp:27</a></div></div>
<div class="ttc" id="asize_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a></div></div>
<div class="ttc" id="astr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">std::stringstream::str</a></div><div class="ttdeci">T str(T... args)</div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html"><div class="ttname"><a href="structripple_1_1ConsensusParms.html">ripple::ConsensusParms</a></div><div class="ttdoc">Consensus algorithm parameters.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00038">ConsensusParms.h:39</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a69ab92aaa5be4cdba15d367996db0555"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a69ab92aaa5be4cdba15d367996db0555">ripple::ConsensusParms::ledgerMIN_CONSENSUS</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerMIN_CONSENSUS</div><div class="ttdoc">The number of seconds we wait minimum to ensure participation.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00086">ConsensusParms.h:86</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a74632c7113c812ae6b021a7cabdda8ab"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a74632c7113c812ae6b021a7cabdda8ab">ripple::ConsensusParms::ledgerABANDON_CONSENSUS</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerABANDON_CONSENSUS</div><div class="ttdoc">Maximum amount of time to give a consensus round.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00113">ConsensusParms.h:113</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_aa5f2c78f795fbefc6efcac714eafd82a"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#aa5f2c78f795fbefc6efcac714eafd82a">ripple::ConsensusParms::minCONSENSUS_PCT</a></div><div class="ttdeci">std::size_t const minCONSENSUS_PCT</div><div class="ttdoc">The percentage threshold above which we can declare consensus.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00079">ConsensusParms.h:79</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_abd59cb71be3e0076df2282c0b7dc8d88"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#abd59cb71be3e0076df2282c0b7dc8d88">ripple::ConsensusParms::ledgerMIN_CLOSE</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerMIN_CLOSE</div><div class="ttdoc">Minimum number of seconds to wait to ensure others have computed the LCL.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00099">ConsensusParms.h:99</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_aeb14363fa9caf4cf957b9028392db7b6"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#aeb14363fa9caf4cf957b9028392db7b6">ripple::ConsensusParms::ledgerMAX_CONSENSUS</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerMAX_CONSENSUS</div><div class="ttdoc">The maximum amount of time to spend pausing for laggards.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00095">ConsensusParms.h:95</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_afdb49c849cdb9c00be47fb5bd68b9932"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#afdb49c849cdb9c00be47fb5bd68b9932">ripple::ConsensusParms::ledgerABANDON_CONSENSUS_FACTOR</a></div><div class="ttdeci">std::size_t const ledgerABANDON_CONSENSUS_FACTOR</div><div class="ttdoc">How long to wait before completely abandoning consensus.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusParms_8h_source.html#l00105">ConsensusParms.h:105</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html"><div class="ttname"><a href="structripple_1_1ConsensusParms.html">ripple::ConsensusParms</a></div><div class="ttdoc">Consensus algorithm parameters.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00038">ConsensusParms.h:39</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a69ab92aaa5be4cdba15d367996db0555"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a69ab92aaa5be4cdba15d367996db0555">ripple::ConsensusParms::ledgerMIN_CONSENSUS</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerMIN_CONSENSUS</div><div class="ttdoc">The number of seconds we wait minimum to ensure participation.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00086">ConsensusParms.h:86</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a74632c7113c812ae6b021a7cabdda8ab"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a74632c7113c812ae6b021a7cabdda8ab">ripple::ConsensusParms::ledgerABANDON_CONSENSUS</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerABANDON_CONSENSUS</div><div class="ttdoc">Maximum amount of time to give a consensus round.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00113">ConsensusParms.h:113</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_aa5f2c78f795fbefc6efcac714eafd82a"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#aa5f2c78f795fbefc6efcac714eafd82a">ripple::ConsensusParms::minCONSENSUS_PCT</a></div><div class="ttdeci">std::size_t const minCONSENSUS_PCT</div><div class="ttdoc">The percentage threshold above which we can declare consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00079">ConsensusParms.h:79</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_abd59cb71be3e0076df2282c0b7dc8d88"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#abd59cb71be3e0076df2282c0b7dc8d88">ripple::ConsensusParms::ledgerMIN_CLOSE</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerMIN_CLOSE</div><div class="ttdoc">Minimum number of seconds to wait to ensure others have computed the LCL.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00099">ConsensusParms.h:99</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_aeb14363fa9caf4cf957b9028392db7b6"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#aeb14363fa9caf4cf957b9028392db7b6">ripple::ConsensusParms::ledgerMAX_CONSENSUS</a></div><div class="ttdeci">std::chrono::milliseconds const ledgerMAX_CONSENSUS</div><div class="ttdoc">The maximum amount of time to spend pausing for laggards.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00095">ConsensusParms.h:95</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_afdb49c849cdb9c00be47fb5bd68b9932"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#afdb49c849cdb9c00be47fb5bd68b9932">ripple::ConsensusParms::ledgerABANDON_CONSENSUS_FACTOR</a></div><div class="ttdeci">std::size_t const ledgerABANDON_CONSENSUS_FACTOR</div><div class="ttdoc">How long to wait before completely abandoning consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00105">ConsensusParms.h:105</a></div></div>
<div class="ttc" id="aunique_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>