Files
rippled/structripple_1_1ConsensusParms.html
2025-11-04 00:36:48 -08:00

606 lines
47 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<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.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::ConsensusParms Struct Reference</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="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 id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 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');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="structripple_1_1ConsensusParms.html">ConsensusParms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structripple_1_1ConsensusParms-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::ConsensusParms Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classripple_1_1Consensus.html" title="Generic implementation of consensus algorithm.">Consensus</a> algorithm parameters.
<a href="structripple_1_1ConsensusParms.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ripple::ConsensusParms:</div>
<div class="dyncontent">
<div class="center"><img src="structripple_1_1ConsensusParms__coll__graph.png" border="0" usemap="#aripple_1_1ConsensusParms_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1ConsensusParms_coll__map" id="aripple_1_1ConsensusParms_coll__map">
<area shape="rect" title="Consensus algorithm parameters." alt="" coords="1101,127,1279,153"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="679,59,834,85"/>
<area shape="poly" title=" " alt="" coords="848,73,958,83,1078,101,1156,125,1155,130,1077,107,958,88,847,79"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="5,138,93,163"/>
<area shape="poly" title=" " alt="" coords="107,140,117,139,399,126,677,124,921,127,1101,133,1101,139,921,133,677,129,399,131,118,144,107,145"/>
<area shape="rect" href="structripple_1_1ConsensusParms_1_1AvalancheCutoff.html" title=" " alt="" coords="235,161,412,201"/>
<area shape="poly" title=" " alt="" coords="107,154,235,169,234,174,107,160"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="665,278,849,303"/>
<area shape="poly" title=" " alt="" coords="826,303,883,310,947,312,1014,304,1046,296,1076,283,1096,270,1114,255,1145,218,1167,181,1181,152,1186,154,1172,183,1149,221,1118,258,1099,275,1079,288,1047,301,1015,310,947,318,882,316,825,308"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="657,161,856,215"/>
<area shape="poly" title=" " alt="" coords="870,175,1077,153,1103,150,1103,155,1078,159,870,181"/>
<area shape="poly" title=" " alt="" coords="426,180,657,184,657,189,426,186"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms_1_1AvalancheCutoff.html">AvalancheCutoff</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a57f6518dd29b3e8224b4ef9fe1692230" id="r_a57f6518dd29b3e8224b4ef9fe1692230"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230">AvalancheState</a> { <a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a907197a76ed91ac8d083b6ffe144db83">init</a>
, <a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028">mid</a>
, <a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076">late</a>
, <a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f">stuck</a>
}</td></tr>
<tr class="separator:a57f6518dd29b3e8224b4ef9fe1692230"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9ac9d2698f75ff667ac3a95d61bd1d7a" id="r_a9ac9d2698f75ff667ac3a95d61bd1d7a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a9ac9d2698f75ff667ac3a95d61bd1d7a">ConsensusParms</a> ()=default</td></tr>
<tr class="separator:a9ac9d2698f75ff667ac3a95d61bd1d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:af46f6719fa81b76f50a00f3a358da031" id="r_af46f6719fa81b76f50a00f3a358da031"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#af46f6719fa81b76f50a00f3a358da031">validationVALID_WALL</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::minutes</a>{5}</td></tr>
<tr class="memdesc:af46f6719fa81b76f50a00f3a358da031"><td class="mdescLeft">&#160;</td><td class="mdescRight">The duration a validation remains current after its ledger's close time. <br /></td></tr>
<tr class="separator:af46f6719fa81b76f50a00f3a358da031"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad12757c0ae7c8c18c900f390280e61d4" id="r_ad12757c0ae7c8c18c900f390280e61d4"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#ad12757c0ae7c8c18c900f390280e61d4">validationVALID_LOCAL</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::minutes</a>{3}</td></tr>
<tr class="memdesc:ad12757c0ae7c8c18c900f390280e61d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duration a validation remains current after first observed. <br /></td></tr>
<tr class="separator:ad12757c0ae7c8c18c900f390280e61d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43982f132566fd7dfdd43569c4a42c87" id="r_a43982f132566fd7dfdd43569c4a42c87"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a43982f132566fd7dfdd43569c4a42c87">validationVALID_EARLY</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::minutes</a>{3}</td></tr>
<tr class="memdesc:a43982f132566fd7dfdd43569c4a42c87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duration pre-close in which validations are acceptable. <br /></td></tr>
<tr class="separator:a43982f132566fd7dfdd43569c4a42c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad04895adffa45b3b605d3f30d7172ff8" id="r_ad04895adffa45b3b605d3f30d7172ff8"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#ad04895adffa45b3b605d3f30d7172ff8">proposeFRESHNESS</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{20}</td></tr>
<tr class="memdesc:ad04895adffa45b3b605d3f30d7172ff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">How long we consider a proposal fresh. <br /></td></tr>
<tr class="separator:ad04895adffa45b3b605d3f30d7172ff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a392f7d79814a23f396da7081deb41f9f" id="r_a392f7d79814a23f396da7081deb41f9f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a392f7d79814a23f396da7081deb41f9f">proposeINTERVAL</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{12}</td></tr>
<tr class="memdesc:a392f7d79814a23f396da7081deb41f9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">How often we force generating a new proposal to keep ours fresh. <br /></td></tr>
<tr class="separator:a392f7d79814a23f396da7081deb41f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f2c78f795fbefc6efcac714eafd82a" id="r_aa5f2c78f795fbefc6efcac714eafd82a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#aa5f2c78f795fbefc6efcac714eafd82a">minCONSENSUS_PCT</a> = 80</td></tr>
<tr class="memdesc:aa5f2c78f795fbefc6efcac714eafd82a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The percentage threshold above which we can declare consensus. <br /></td></tr>
<tr class="separator:aa5f2c78f795fbefc6efcac714eafd82a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629550655bbc39863563d5bb95b4d9e1" id="r_a629550655bbc39863563d5bb95b4d9e1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a629550655bbc39863563d5bb95b4d9e1">ledgerIDLE_INTERVAL</a></td></tr>
<tr class="memdesc:a629550655bbc39863563d5bb95b4d9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The duration a ledger may remain idle before closing. <br /></td></tr>
<tr class="separator:a629550655bbc39863563d5bb95b4d9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69ab92aaa5be4cdba15d367996db0555" id="r_a69ab92aaa5be4cdba15d367996db0555"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a69ab92aaa5be4cdba15d367996db0555">ledgerMIN_CONSENSUS</a></td></tr>
<tr class="memdesc:a69ab92aaa5be4cdba15d367996db0555"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of seconds we wait minimum to ensure participation. <br /></td></tr>
<tr class="separator:a69ab92aaa5be4cdba15d367996db0555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb14363fa9caf4cf957b9028392db7b6" id="r_aeb14363fa9caf4cf957b9028392db7b6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#aeb14363fa9caf4cf957b9028392db7b6">ledgerMAX_CONSENSUS</a></td></tr>
<tr class="memdesc:aeb14363fa9caf4cf957b9028392db7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum amount of time to spend pausing for laggards. <br /></td></tr>
<tr class="separator:aeb14363fa9caf4cf957b9028392db7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd59cb71be3e0076df2282c0b7dc8d88" id="r_abd59cb71be3e0076df2282c0b7dc8d88"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#abd59cb71be3e0076df2282c0b7dc8d88">ledgerMIN_CLOSE</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{2}</td></tr>
<tr class="memdesc:abd59cb71be3e0076df2282c0b7dc8d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum number of seconds to wait to ensure others have computed the LCL. <br /></td></tr>
<tr class="separator:abd59cb71be3e0076df2282c0b7dc8d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f51900eb407dde2619c639882d564e7" id="r_a0f51900eb407dde2619c639882d564e7"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a0f51900eb407dde2619c639882d564e7">ledgerGRANULARITY</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{1}</td></tr>
<tr class="memdesc:a0f51900eb407dde2619c639882d564e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">How often we check state or change positions. <br /></td></tr>
<tr class="separator:a0f51900eb407dde2619c639882d564e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdb49c849cdb9c00be47fb5bd68b9932" id="r_afdb49c849cdb9c00be47fb5bd68b9932"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#afdb49c849cdb9c00be47fb5bd68b9932">ledgerABANDON_CONSENSUS_FACTOR</a> = 10</td></tr>
<tr class="memdesc:afdb49c849cdb9c00be47fb5bd68b9932"><td class="mdescLeft">&#160;</td><td class="mdescRight">How long to wait before completely abandoning consensus. <br /></td></tr>
<tr class="separator:afdb49c849cdb9c00be47fb5bd68b9932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74632c7113c812ae6b021a7cabdda8ab" id="r_a74632c7113c812ae6b021a7cabdda8ab"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a74632c7113c812ae6b021a7cabdda8ab">ledgerABANDON_CONSENSUS</a></td></tr>
<tr class="memdesc:a74632c7113c812ae6b021a7cabdda8ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum amount of time to give a consensus round. <br /></td></tr>
<tr class="separator:a74632c7113c812ae6b021a7cabdda8ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4300146c39d22dcd8e84918a7674071c" id="r_a4300146c39d22dcd8e84918a7674071c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a4300146c39d22dcd8e84918a7674071c">avMIN_CONSENSUS_TIME</a></td></tr>
<tr class="memdesc:a4300146c39d22dcd8e84918a7674071c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum amount of time to consider the previous round to have taken. <br /></td></tr>
<tr class="separator:a4300146c39d22dcd8e84918a7674071c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf825acb654ae3666751f4c5c2e55e0e" id="r_aaf825acb654ae3666751f4c5c2e55e0e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230">AvalancheState</a>, <a class="el" href="structripple_1_1ConsensusParms_1_1AvalancheCutoff.html">AvalancheCutoff</a> &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#aaf825acb654ae3666751f4c5c2e55e0e">avalancheCutoffs</a></td></tr>
<tr class="memdesc:aaf825acb654ae3666751f4c5c2e55e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the consensus requirement avalanche state to the amount of time that must pass before moving to that state, the agreement percentage required at that state, and the next state. <br /></td></tr>
<tr class="separator:aaf825acb654ae3666751f4c5c2e55e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2be96ccac4dda56b1b1c4e041975c55f" id="r_a2be96ccac4dda56b1b1c4e041975c55f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a2be96ccac4dda56b1b1c4e041975c55f">avCT_CONSENSUS_PCT</a> = 75</td></tr>
<tr class="memdesc:a2be96ccac4dda56b1b1c4e041975c55f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Percentage of nodes required to reach agreement on ledger close time. <br /></td></tr>
<tr class="separator:a2be96ccac4dda56b1b1c4e041975c55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ce38535601e5bc5bb757b66458482e8" id="r_a3ce38535601e5bc5bb757b66458482e8"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a3ce38535601e5bc5bb757b66458482e8">avMIN_ROUNDS</a> = 2</td></tr>
<tr class="memdesc:a3ce38535601e5bc5bb757b66458482e8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classripple_1_1Number.html">Number</a> of rounds before certain actions can happen. <br /></td></tr>
<tr class="separator:a3ce38535601e5bc5bb757b66458482e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04c4f92ab68e9fa35863881e267e484c" id="r_a04c4f92ab68e9fa35863881e267e484c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ConsensusParms.html#a04c4f92ab68e9fa35863881e267e484c">avSTALLED_ROUNDS</a> = 4</td></tr>
<tr class="memdesc:a04c4f92ab68e9fa35863881e267e484c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classripple_1_1Number.html">Number</a> of rounds before a stuck vote is considered unlikely to change because voting stalled. <br /></td></tr>
<tr class="separator:a04c4f92ab68e9fa35863881e267e484c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classripple_1_1Consensus.html" title="Generic implementation of consensus algorithm.">Consensus</a> algorithm parameters. </p>
<p>Parameters which control the consensus algorithm. This are not meant to be changed arbitrarily. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00019">19</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a57f6518dd29b3e8224b4ef9fe1692230" name="a57f6518dd29b3e8224b4ef9fe1692230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57f6518dd29b3e8224b4ef9fe1692230">&#9670;&#160;</a></span>AvalancheState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230">ripple::ConsensusParms::AvalancheState</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a57f6518dd29b3e8224b4ef9fe1692230a907197a76ed91ac8d083b6ffe144db83" name="a57f6518dd29b3e8224b4ef9fe1692230a907197a76ed91ac8d083b6ffe144db83"></a>init&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028" name="a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028"></a>mid&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076" name="a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076"></a>late&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f" name="a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f"></a>stuck&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00115">115</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9ac9d2698f75ff667ac3a95d61bd1d7a" name="a9ac9d2698f75ff667ac3a95d61bd1d7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ac9d2698f75ff667ac3a95d61bd1d7a">&#9670;&#160;</a></span>ConsensusParms()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::ConsensusParms::ConsensusParms </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af46f6719fa81b76f50a00f3a358da031" name="af46f6719fa81b76f50a00f3a358da031"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af46f6719fa81b76f50a00f3a358da031">&#9670;&#160;</a></span>validationVALID_WALL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const ripple::ConsensusParms::validationVALID_WALL = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::minutes</a>{5}</td>
</tr>
</table>
</div><div class="memdoc">
<p>The duration a validation remains current after its ledger's close time. </p>
<p>This is a safety to protect against very old validations and the time it takes to adjust the close time accuracy window. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00032">32</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="ad12757c0ae7c8c18c900f390280e61d4" name="ad12757c0ae7c8c18c900f390280e61d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad12757c0ae7c8c18c900f390280e61d4">&#9670;&#160;</a></span>validationVALID_LOCAL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const ripple::ConsensusParms::validationVALID_LOCAL = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::minutes</a>{3}</td>
</tr>
</table>
</div><div class="memdoc">
<p>Duration a validation remains current after first observed. </p>
<p>The duration a validation remains current after the time we first saw it. This provides faster recovery in very rare cases where the number of validations produced by the network is lower than normal </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00040">40</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a43982f132566fd7dfdd43569c4a42c87" name="a43982f132566fd7dfdd43569c4a42c87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43982f132566fd7dfdd43569c4a42c87">&#9670;&#160;</a></span>validationVALID_EARLY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const ripple::ConsensusParms::validationVALID_EARLY = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::minutes</a>{3}</td>
</tr>
</table>
</div><div class="memdoc">
<p>Duration pre-close in which validations are acceptable. </p>
<p>The number of seconds before a close time that we consider a validation acceptable. This protects against extreme clock errors </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00047">47</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="ad04895adffa45b3b605d3f30d7172ff8" name="ad04895adffa45b3b605d3f30d7172ff8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad04895adffa45b3b605d3f30d7172ff8">&#9670;&#160;</a></span>proposeFRESHNESS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const ripple::ConsensusParms::proposeFRESHNESS = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{20}</td>
</tr>
</table>
</div><div class="memdoc">
<p>How long we consider a proposal fresh. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00050">50</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a392f7d79814a23f396da7081deb41f9f" name="a392f7d79814a23f396da7081deb41f9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a392f7d79814a23f396da7081deb41f9f">&#9670;&#160;</a></span>proposeINTERVAL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a> const ripple::ConsensusParms::proposeINTERVAL = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{12}</td>
</tr>
</table>
</div><div class="memdoc">
<p>How often we force generating a new proposal to keep ours fresh. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00053">53</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="aa5f2c78f795fbefc6efcac714eafd82a" name="aa5f2c78f795fbefc6efcac714eafd82a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5f2c78f795fbefc6efcac714eafd82a">&#9670;&#160;</a></span>minCONSENSUS_PCT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::ConsensusParms::minCONSENSUS_PCT = 80</td>
</tr>
</table>
</div><div class="memdoc">
<p>The percentage threshold above which we can declare consensus. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00060">60</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a629550655bbc39863563d5bb95b4d9e1" name="a629550655bbc39863563d5bb95b4d9e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a629550655bbc39863563d5bb95b4d9e1">&#9670;&#160;</a></span>ledgerIDLE_INTERVAL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::ledgerIDLE_INTERVAL</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{15}</div>
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a></div></div>
</div><!-- fragment -->
<p>The duration a ledger may remain idle before closing. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00063">63</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a69ab92aaa5be4cdba15d367996db0555" name="a69ab92aaa5be4cdba15d367996db0555"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69ab92aaa5be4cdba15d367996db0555">&#9670;&#160;</a></span>ledgerMIN_CONSENSUS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::ledgerMIN_CONSENSUS</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a>{1950}</div>
</div><!-- fragment -->
<p>The number of seconds we wait minimum to ensure participation. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00067">67</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="aeb14363fa9caf4cf957b9028392db7b6" name="aeb14363fa9caf4cf957b9028392db7b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb14363fa9caf4cf957b9028392db7b6">&#9670;&#160;</a></span>ledgerMAX_CONSENSUS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::ledgerMAX_CONSENSUS</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{15}</div>
</div><!-- fragment -->
<p>The maximum amount of time to spend pausing for laggards. </p>
<p>This should be sufficiently less than validationFRESHNESS so that validators don't appear to be offline that are merely waiting for laggards. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00076">76</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="abd59cb71be3e0076df2282c0b7dc8d88" name="abd59cb71be3e0076df2282c0b7dc8d88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd59cb71be3e0076df2282c0b7dc8d88">&#9670;&#160;</a></span>ledgerMIN_CLOSE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::ledgerMIN_CLOSE = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{2}</td>
</tr>
</table>
</div><div class="memdoc">
<p>Minimum number of seconds to wait to ensure others have computed the LCL. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00080">80</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a0f51900eb407dde2619c639882d564e7" name="a0f51900eb407dde2619c639882d564e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f51900eb407dde2619c639882d564e7">&#9670;&#160;</a></span>ledgerGRANULARITY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::ledgerGRANULARITY = <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{1}</td>
</tr>
</table>
</div><div class="memdoc">
<p>How often we check state or change positions. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00083">83</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="afdb49c849cdb9c00be47fb5bd68b9932" name="afdb49c849cdb9c00be47fb5bd68b9932"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdb49c849cdb9c00be47fb5bd68b9932">&#9670;&#160;</a></span>ledgerABANDON_CONSENSUS_FACTOR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::ConsensusParms::ledgerABANDON_CONSENSUS_FACTOR = 10</td>
</tr>
</table>
</div><div class="memdoc">
<p>How long to wait before completely abandoning consensus. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00086">86</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a74632c7113c812ae6b021a7cabdda8ab" name="a74632c7113c812ae6b021a7cabdda8ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74632c7113c812ae6b021a7cabdda8ab">&#9670;&#160;</a></span>ledgerABANDON_CONSENSUS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::ledgerABANDON_CONSENSUS</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{120}</div>
</div><!-- fragment -->
<p>Maximum amount of time to give a consensus round. </p>
<p>Does not include the time to build the LCL, so there is no reason for a round to go this long, regardless of how big the ledger is. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00094">94</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a4300146c39d22dcd8e84918a7674071c" name="a4300146c39d22dcd8e84918a7674071c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4300146c39d22dcd8e84918a7674071c">&#9670;&#160;</a></span>avMIN_CONSENSUS_TIME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> const ripple::ConsensusParms::avMIN_CONSENSUS_TIME</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>{5}</div>
</div><!-- fragment -->
<p>The minimum amount of time to consider the previous round to have taken. </p>
<p>The minimum amount of time to consider the previous round to have taken. This ensures that there is an opportunity for a round at each avalanche threshold even if the previous consensus was very fast. This should be at least twice the interval between proposals (0.7s) divided by the interval between mid and late consensus ([85-50]/100). </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00107">107</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="aaf825acb654ae3666751f4c5c2e55e0e" name="aaf825acb654ae3666751f4c5c2e55e0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf825acb654ae3666751f4c5c2e55e0e">&#9670;&#160;</a></span>avalancheCutoffs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt;<a class="el" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230">AvalancheState</a>, <a class="el" href="structripple_1_1ConsensusParms_1_1AvalancheCutoff.html">AvalancheCutoff</a>&gt; const ripple::ConsensusParms::avalancheCutoffs</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">{</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"> {<a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a907197a76ed91ac8d083b6ffe144db83">init</a>, {0, 50, <a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028">mid</a>}},</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"> {<a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028">mid</a>, {50, 65, <a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076">late</a>}},</div>
<div class="line"> </div>
<div class="line"> {<a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076">late</a>, {85, 70, <a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f">stuck</a>}},</div>
<div class="line"> </div>
<div class="line"> {<a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f">stuck</a>, {200, 95, <a class="code hl_enumvalue" href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f">stuck</a>}},</div>
<div class="line"> }</div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a1c440f383401d07e4b74381cc5f30028">ripple::ConsensusParms::mid</a></div><div class="ttdeci">@ mid</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00115">ConsensusParms.h:115</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a2445825cab6adf8a89376e71f7ac1f3f">ripple::ConsensusParms::stuck</a></div><div class="ttdeci">@ stuck</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00115">ConsensusParms.h:115</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a7efc64592308ed2a8e3f219f2c888076">ripple::ConsensusParms::late</a></div><div class="ttdeci">@ late</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00115">ConsensusParms.h:115</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusParms_html_a57f6518dd29b3e8224b4ef9fe1692230a907197a76ed91ac8d083b6ffe144db83"><div class="ttname"><a href="structripple_1_1ConsensusParms.html#a57f6518dd29b3e8224b4ef9fe1692230a907197a76ed91ac8d083b6ffe144db83">ripple::ConsensusParms::init</a></div><div class="ttdeci">@ init</div><div class="ttdef"><b>Definition</b> <a href="ConsensusParms_8h_source.html#l00115">ConsensusParms.h:115</a></div></div>
</div><!-- fragment -->
<p>Map the consensus requirement avalanche state to the amount of time that must pass before moving to that state, the agreement percentage required at that state, and the next state. </p>
<p>"stuck" loops back on itself because once we're stuck, we're stuck. This structure allows for "looping" of states if needed. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00127">127</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a2be96ccac4dda56b1b1c4e041975c55f" name="a2be96ccac4dda56b1b1c4e041975c55f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2be96ccac4dda56b1b1c4e041975c55f">&#9670;&#160;</a></span>avCT_CONSENSUS_PCT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::ConsensusParms::avCT_CONSENSUS_PCT = 75</td>
</tr>
</table>
</div><div class="memdoc">
<p>Percentage of nodes required to reach agreement on ledger close time. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00141">141</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a3ce38535601e5bc5bb757b66458482e8" name="a3ce38535601e5bc5bb757b66458482e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ce38535601e5bc5bb757b66458482e8">&#9670;&#160;</a></span>avMIN_ROUNDS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::ConsensusParms::avMIN_ROUNDS = 2</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classripple_1_1Number.html">Number</a> of rounds before certain actions can happen. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00146">146</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
<a id="a04c4f92ab68e9fa35863881e267e484c" name="a04c4f92ab68e9fa35863881e267e484c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04c4f92ab68e9fa35863881e267e484c">&#9670;&#160;</a></span>avSTALLED_ROUNDS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::ConsensusParms::avSTALLED_ROUNDS = 4</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classripple_1_1Number.html">Number</a> of rounds before a stuck vote is considered unlikely to change because voting stalled. </p>
<p class="definition">Definition at line <a class="el" href="ConsensusParms_8h_source.html#l00150">150</a> of file <a class="el" href="ConsensusParms_8h_source.html">ConsensusParms.h</a>.</p>
</div>
</div>
</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.8
</small></address>
</body>
</html>