mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-22 20:15:51 +00:00
deploy: e4b17d1cf2
This commit is contained in:
@@ -910,222 +910,223 @@ $(function() {
|
||||
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  if (ledger.<a class="code" href="classripple_1_1RCLCxLedger.html#a790fedb2406a5d248f2188da3c421dbc">ledger_</a>->isVotingLedger())</div>
|
||||
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  {</div>
|
||||
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="comment">// Fees:</span></div>
|
||||
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  feeVote_->doValidation(ledger.ledger_->fees(), v);</div>
|
||||
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  </div>
|
||||
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="comment">// Amendments</span></div>
|
||||
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="comment">// FIXME: pass `v` and have the function insert the array</span></div>
|
||||
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="comment">// directly?</span></div>
|
||||
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  auto const amendments = app_.getAmendmentTable().doValidation(</div>
|
||||
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  getEnabledAmendments(*ledger.ledger_));</div>
|
||||
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  </div>
|
||||
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  if (!amendments.empty())</div>
|
||||
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  v.setFieldV256(</div>
|
||||
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  sfAmendments, STVector256(sfAmendments, amendments));</div>
|
||||
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div>
|
||||
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  });</div>
|
||||
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  </div>
|
||||
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keyword">auto</span> <span class="keyword">const</span> serialized = v->getSerialized();</div>
|
||||
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  </div>
|
||||
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="comment">// suppress it if we receive it</span></div>
|
||||
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  app_.getHashRouter().addSuppression(<a class="code" href="namespaceripple.html#ae3f5bc352766a1a8dbf5270eb7dbc2e7">sha512Half</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(serialized)));</div>
|
||||
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  </div>
|
||||
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <a class="code" href="namespaceripple.html#a5be750120b2129bbf4ec4fccb592de4c">handleNewValidation</a>(app_, v, <span class="stringliteral">"local"</span>);</div>
|
||||
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  </div>
|
||||
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="comment">// Broadcast to all our peers:</span></div>
|
||||
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  protocol::TMValidation val;</div>
|
||||
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  val.set_validation(serialized.data(), serialized.size());</div>
|
||||
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  app_.overlay().broadcast(val);</div>
|
||||
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  </div>
|
||||
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="comment">// Publish to all our subscribers:</span></div>
|
||||
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  app_.getOPs().pubValidation(v);</div>
|
||||
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> }</div>
|
||||
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  </div>
|
||||
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a602cb9acaeb931bb5a7b5a74de5f5280"> 873</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a602cb9acaeb931bb5a7b5a74de5f5280">RCLConsensus::Adaptor::onModeChange</a>(<a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ConsensusMode</a> before, <a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ConsensusMode</a> <a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>)</div>
|
||||
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> {</div>
|
||||
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) << <span class="stringliteral">"Consensus mode change before="</span> << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(before)</div>
|
||||
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  << <span class="stringliteral">", after="</span> << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(<a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>);</div>
|
||||
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  </div>
|
||||
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="comment">// If we were proposing but aren't any longer, we need to reset the</span></div>
|
||||
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="comment">// censorship tracking to avoid bogus warnings.</span></div>
|
||||
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordflow">if</span> ((before == <a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44">ConsensusMode::proposing</a> ||</div>
|
||||
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  before == <a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce">ConsensusMode::observing</a>) &&</div>
|
||||
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  before != <a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>)</div>
|
||||
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  censorshipDetector_.reset();</div>
|
||||
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  </div>
|
||||
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  mode_ = <a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>;</div>
|
||||
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> }</div>
|
||||
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  </div>
|
||||
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <a class="code" href="classJson_1_1Value.html">Json::Value</a></div>
|
||||
<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#acdab4291925cbabf861b8019c76355ea"> 889</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#acdab4291925cbabf861b8019c76355ea">RCLConsensus::getJson</a>(<span class="keywordtype">bool</span> full)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> ret;</div>
|
||||
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  {</div>
|
||||
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  ret = <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.getJson(full);</div>
|
||||
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  }</div>
|
||||
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  ret[<span class="stringliteral">"validating"</span>] = <a class="code" href="classripple_1_1RCLConsensus.html#abc9a72a85632483bb04f03f00af63db3">adaptor_</a>.<a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a52d6c6005bc8066ec68d7e81038a6906">validating</a>();</div>
|
||||
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> }</div>
|
||||
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  </div>
|
||||
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a66f29b3d7bf4aedbc6b6af362572e91c"> 901</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a66f29b3d7bf4aedbc6b6af362572e91c">RCLConsensus::timerEntry</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now)</div>
|
||||
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> {</div>
|
||||
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  {</div>
|
||||
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.timerEntry(now);</div>
|
||||
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  }</div>
|
||||
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>& mn)</div>
|
||||
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  {</div>
|
||||
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="comment">// This should never happen</span></div>
|
||||
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"During consensus timerEntry: "</span> << mn.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
|
||||
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  }</div>
|
||||
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> }</div>
|
||||
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  </div>
|
||||
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00917"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a269eadc254a964bcd8d79876420c379b"> 917</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a269eadc254a964bcd8d79876420c379b">RCLConsensus::gotTxSet</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now, <a class="code" href="classripple_1_1RCLTxSet.html">RCLTxSet</a> <span class="keyword">const</span>& txSet)</div>
|
||||
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> {</div>
|
||||
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  {</div>
|
||||
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.gotTxSet(now, txSet);</div>
|
||||
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  }</div>
|
||||
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>& mn)</div>
|
||||
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  {</div>
|
||||
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="comment">// This should never happen</span></div>
|
||||
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"During consensus gotTxSet: "</span> << mn.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <a class="code" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
|
||||
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  }</div>
|
||||
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> }</div>
|
||||
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  </div>
|
||||
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  </div>
|
||||
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a41b5d07d847a52a3408b8e366b8ee53b"> 935</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a41b5d07d847a52a3408b8e366b8ee53b">RCLConsensus::simulate</a>(</div>
|
||||
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now,</div>
|
||||
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<std::chrono::milliseconds></a> consensusDelay)</div>
|
||||
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> {</div>
|
||||
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.simulate(now, consensusDelay);</div>
|
||||
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> }</div>
|
||||
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  </div>
|
||||
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#aa0e46b668adf5d791806adf85d852c11"> 944</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#aa0e46b668adf5d791806adf85d852c11">RCLConsensus::peerProposal</a>(</div>
|
||||
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now,</div>
|
||||
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <a class="code" href="classripple_1_1RCLCxPeerPos.html">RCLCxPeerPos</a> <span class="keyword">const</span>& newProposal)</div>
|
||||
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> {</div>
|
||||
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.peerProposal(now, newProposal);</div>
|
||||
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> }</div>
|
||||
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  </div>
|
||||
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd"> 953</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd">RCLConsensus::Adaptor::preStartRound</a>(</div>
|
||||
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classripple_1_1RCLCxLedger.html">RCLCxLedger</a> <span class="keyword">const</span>& prevLgr,</div>
|
||||
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& nowTrusted)</div>
|
||||
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> {</div>
|
||||
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="comment">// We have a key, we do not want out of sync validations after a restart</span></div>
|
||||
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="comment">// and are not amendment blocked.</span></div>
|
||||
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  validating_ = validatorKeys_.publicKey.size() != 0 &&</div>
|
||||
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a633355f2ccfe0511fe0ed6124476229a">seq</a>() >= app_.getMaxDisallowedLedger() &&</div>
|
||||
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  !app_.getOPs().isBlocked();</div>
|
||||
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  </div>
|
||||
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="comment">// If we are not running in standalone mode and there's a configured UNL,</span></div>
|
||||
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="comment">// check to make sure that it's not expired.</span></div>
|
||||
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">if</span> (validating_ && !app_.config().standalone() && app_.validators().count())</div>
|
||||
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div>
|
||||
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keyword">auto</span> <span class="keyword">const</span> when = app_.validators().expires();</div>
|
||||
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  </div>
|
||||
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">if</span> (!when || *when < app_.timeKeeper().now())</div>
|
||||
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  {</div>
|
||||
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"Voluntarily bowing out of consensus process "</span></div>
|
||||
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <span class="stringliteral">"because of an expired validator list."</span>;</div>
|
||||
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  validating_ = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  }</div>
|
||||
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  }</div>
|
||||
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  </div>
|
||||
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> synced = app_.getOPs().getOperatingMode() == <a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aba7de5bc6888294e5884b024a4c894f1">OperatingMode::FULL</a>;</div>
|
||||
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  </div>
|
||||
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">if</span> (validating_)</div>
|
||||
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div>
|
||||
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) << <span class="stringliteral">"Entering consensus process, validating, synced="</span></div>
|
||||
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  << (synced ? <span class="stringliteral">"yes"</span> : <span class="stringliteral">"no"</span>);</div>
|
||||
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  }</div>
|
||||
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  {</div>
|
||||
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="comment">// Otherwise we just want to monitor the validation process.</span></div>
|
||||
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) << <span class="stringliteral">"Entering consensus process, watching, synced="</span></div>
|
||||
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  << (synced ? <span class="stringliteral">"yes"</span> : <span class="stringliteral">"no"</span>);</div>
|
||||
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div>
|
||||
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  </div>
|
||||
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="comment">// Notify inbound ledgers that we are starting a new round</span></div>
|
||||
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  inboundTransactions_.newRound(prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a633355f2ccfe0511fe0ed6124476229a">seq</a>());</div>
|
||||
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  </div>
|
||||
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="comment">// Notify NegativeUNLVote that new validators are added</span></div>
|
||||
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">if</span> (prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a790fedb2406a5d248f2188da3c421dbc">ledger_</a>->rules().enabled(<a class="code" href="namespaceripple.html#afb8eb6b8a92d7cb7fe9e359677ab2532">featureNegativeUNL</a>) &&</div>
|
||||
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  !nowTrusted.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  nUnlVote_.newValidators(prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a633355f2ccfe0511fe0ed6124476229a">seq</a>() + 1, nowTrusted);</div>
|
||||
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  </div>
|
||||
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="comment">// propose only if we're in sync with the network (and validating)</span></div>
|
||||
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">return</span> validating_ && synced;</div>
|
||||
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> }</div>
|
||||
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  </div>
|
||||
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l01004"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#ad0aa2492ff95815e202bd5801b37e030"> 1004</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#ad0aa2492ff95815e202bd5801b37e030">RCLConsensus::Adaptor::haveValidated</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <span class="keywordflow">return</span> ledgerMaster_.haveValidated();</div>
|
||||
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> }</div>
|
||||
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  </div>
|
||||
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a></div>
|
||||
<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a9f9e5d015fc6b18e3726ce51658b257c"> 1010</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a9f9e5d015fc6b18e3726ce51658b257c">RCLConsensus::Adaptor::getValidLedgerIndex</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">return</span> ledgerMaster_.getValidLedgerIndex();</div>
|
||||
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> }</div>
|
||||
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  </div>
|
||||
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair<std::size_t, hash_set<RCLConsensus::Adaptor::NodeKey_t></a>></div>
|
||||
<div class="line"><a name="l01016"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af8d2a95620b4b70e89890757d9bfb528"> 1016</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af8d2a95620b4b70e89890757d9bfb528">RCLConsensus::Adaptor::getQuorumKeys</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keywordflow">return</span> app_.validators().getQuorumKeys();</div>
|
||||
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> }</div>
|
||||
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  </div>
|
||||
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a></div>
|
||||
<div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a64490ffd82ff2b75da2406bb52fcd7dd"> 1022</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a64490ffd82ff2b75da2406bb52fcd7dd">RCLConsensus::Adaptor::laggards</a>(</div>
|
||||
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">Ledger_t::Seq</a> <span class="keyword">const</span> seq,</div>
|
||||
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<RCLConsensus::Adaptor::NodeKey_t></a>& trustedKeys)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">return</span> app_.getValidations().laggards(seq, trustedKeys);</div>
|
||||
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> }</div>
|
||||
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  </div>
|
||||
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l01030"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a89732653d5e60191140d595d9192bc83"> 1030</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a89732653d5e60191140d595d9192bc83">RCLConsensus::Adaptor::validator</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <span class="keywordflow">return</span> !validatorKeys_.publicKey.empty();</div>
|
||||
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> }</div>
|
||||
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  </div>
|
||||
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01036"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af204a12bd25345da7fbdb8d267a1e23f"> 1036</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af204a12bd25345da7fbdb8d267a1e23f">RCLConsensus::Adaptor::updateOperatingMode</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <span class="keyword">const</span> positions)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  <span class="keywordflow">if</span> (!positions && app_.getOPs().isFull())</div>
|
||||
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  app_.getOPs().setMode(<a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aa5afd6edd5336d91316964e493936858">OperatingMode::CONNECTED</a>);</div>
|
||||
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> }</div>
|
||||
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  </div>
|
||||
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01043"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a250f08961ce3c3410f96824cfe385bd2"> 1043</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a250f08961ce3c3410f96824cfe385bd2">RCLConsensus::startRound</a>(</div>
|
||||
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now,</div>
|
||||
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <a class="code" href="classripple_1_1base__uint.html">RCLCxLedger::ID</a> <span class="keyword">const</span>& prevLgrId,</div>
|
||||
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <a class="code" href="classripple_1_1RCLCxLedger.html">RCLCxLedger</a> <span class="keyword">const</span>& prevLgr,</div>
|
||||
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& nowUntrusted,</div>
|
||||
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& nowTrusted)</div>
|
||||
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> {</div>
|
||||
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.startRound(</div>
|
||||
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  now,</div>
|
||||
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  prevLgrId,</div>
|
||||
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  prevLgr,</div>
|
||||
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  nowUntrusted,</div>
|
||||
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <a class="code" href="classripple_1_1RCLConsensus.html#abc9a72a85632483bb04f03f00af63db3">adaptor_</a>.<a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd">preStartRound</a>(prevLgr, nowTrusted));</div>
|
||||
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> }</div>
|
||||
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  feeVote_->doValidation(</div>
|
||||
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  ledger.ledger_->fees(), ledger.ledger_->rules(), v);</div>
|
||||
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  </div>
|
||||
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="comment">// Amendments</span></div>
|
||||
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="comment">// FIXME: pass `v` and have the function insert the array</span></div>
|
||||
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="comment">// directly?</span></div>
|
||||
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  auto const amendments = app_.getAmendmentTable().doValidation(</div>
|
||||
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  getEnabledAmendments(*ledger.ledger_));</div>
|
||||
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  </div>
|
||||
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  if (!amendments.empty())</div>
|
||||
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  v.setFieldV256(</div>
|
||||
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  sfAmendments, STVector256(sfAmendments, amendments));</div>
|
||||
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  }</div>
|
||||
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  });</div>
|
||||
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  </div>
|
||||
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keyword">auto</span> <span class="keyword">const</span> serialized = v->getSerialized();</div>
|
||||
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  </div>
|
||||
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="comment">// suppress it if we receive it</span></div>
|
||||
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  app_.getHashRouter().addSuppression(<a class="code" href="namespaceripple.html#ae3f5bc352766a1a8dbf5270eb7dbc2e7">sha512Half</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(serialized)));</div>
|
||||
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  </div>
|
||||
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <a class="code" href="namespaceripple.html#a5be750120b2129bbf4ec4fccb592de4c">handleNewValidation</a>(app_, v, <span class="stringliteral">"local"</span>);</div>
|
||||
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  </div>
|
||||
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="comment">// Broadcast to all our peers:</span></div>
|
||||
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  protocol::TMValidation val;</div>
|
||||
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  val.set_validation(serialized.data(), serialized.size());</div>
|
||||
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  app_.overlay().broadcast(val);</div>
|
||||
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
|
||||
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="comment">// Publish to all our subscribers:</span></div>
|
||||
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  app_.getOPs().pubValidation(v);</div>
|
||||
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> }</div>
|
||||
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  </div>
|
||||
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a602cb9acaeb931bb5a7b5a74de5f5280"> 874</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a602cb9acaeb931bb5a7b5a74de5f5280">RCLConsensus::Adaptor::onModeChange</a>(<a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ConsensusMode</a> before, <a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ConsensusMode</a> <a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>)</div>
|
||||
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> {</div>
|
||||
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) << <span class="stringliteral">"Consensus mode change before="</span> << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(before)</div>
|
||||
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  << <span class="stringliteral">", after="</span> << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(<a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>);</div>
|
||||
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  </div>
|
||||
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="comment">// If we were proposing but aren't any longer, we need to reset the</span></div>
|
||||
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="comment">// censorship tracking to avoid bogus warnings.</span></div>
|
||||
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">if</span> ((before == <a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44">ConsensusMode::proposing</a> ||</div>
|
||||
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  before == <a class="code" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce">ConsensusMode::observing</a>) &&</div>
|
||||
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  before != <a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>)</div>
|
||||
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  censorshipDetector_.reset();</div>
|
||||
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  </div>
|
||||
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  mode_ = <a class="code" href="namespaceripple.html#aebcc26ebe20ddcd3bcbfd5402e0acb89">after</a>;</div>
|
||||
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> }</div>
|
||||
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  </div>
|
||||
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <a class="code" href="classJson_1_1Value.html">Json::Value</a></div>
|
||||
<div class="line"><a name="l00890"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#acdab4291925cbabf861b8019c76355ea"> 890</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#acdab4291925cbabf861b8019c76355ea">RCLConsensus::getJson</a>(<span class="keywordtype">bool</span> full)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> ret;</div>
|
||||
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  {</div>
|
||||
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  ret = <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.getJson(full);</div>
|
||||
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  }</div>
|
||||
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  ret[<span class="stringliteral">"validating"</span>] = <a class="code" href="classripple_1_1RCLConsensus.html#abc9a72a85632483bb04f03f00af63db3">adaptor_</a>.<a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a52d6c6005bc8066ec68d7e81038a6906">validating</a>();</div>
|
||||
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> }</div>
|
||||
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  </div>
|
||||
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a66f29b3d7bf4aedbc6b6af362572e91c"> 902</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a66f29b3d7bf4aedbc6b6af362572e91c">RCLConsensus::timerEntry</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now)</div>
|
||||
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> {</div>
|
||||
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  {</div>
|
||||
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.timerEntry(now);</div>
|
||||
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div>
|
||||
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>& mn)</div>
|
||||
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  {</div>
|
||||
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="comment">// This should never happen</span></div>
|
||||
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"During consensus timerEntry: "</span> << mn.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <a class="code" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
|
||||
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  }</div>
|
||||
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> }</div>
|
||||
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  </div>
|
||||
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a269eadc254a964bcd8d79876420c379b"> 918</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a269eadc254a964bcd8d79876420c379b">RCLConsensus::gotTxSet</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now, <a class="code" href="classripple_1_1RCLTxSet.html">RCLTxSet</a> <span class="keyword">const</span>& txSet)</div>
|
||||
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> {</div>
|
||||
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  {</div>
|
||||
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.gotTxSet(now, txSet);</div>
|
||||
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  }</div>
|
||||
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>& mn)</div>
|
||||
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  {</div>
|
||||
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="comment">// This should never happen</span></div>
|
||||
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"During consensus gotTxSet: "</span> << mn.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <a class="code" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
|
||||
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  }</div>
|
||||
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> }</div>
|
||||
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  </div>
|
||||
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  </div>
|
||||
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a41b5d07d847a52a3408b8e366b8ee53b"> 936</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a41b5d07d847a52a3408b8e366b8ee53b">RCLConsensus::simulate</a>(</div>
|
||||
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now,</div>
|
||||
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<std::chrono::milliseconds></a> consensusDelay)</div>
|
||||
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> {</div>
|
||||
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.simulate(now, consensusDelay);</div>
|
||||
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> }</div>
|
||||
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  </div>
|
||||
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#aa0e46b668adf5d791806adf85d852c11"> 945</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#aa0e46b668adf5d791806adf85d852c11">RCLConsensus::peerProposal</a>(</div>
|
||||
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now,</div>
|
||||
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <a class="code" href="classripple_1_1RCLCxPeerPos.html">RCLCxPeerPos</a> <span class="keyword">const</span>& newProposal)</div>
|
||||
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> {</div>
|
||||
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.peerProposal(now, newProposal);</div>
|
||||
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> }</div>
|
||||
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  </div>
|
||||
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00954"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd"> 954</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd">RCLConsensus::Adaptor::preStartRound</a>(</div>
|
||||
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="code" href="classripple_1_1RCLCxLedger.html">RCLCxLedger</a> <span class="keyword">const</span>& prevLgr,</div>
|
||||
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& nowTrusted)</div>
|
||||
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> {</div>
|
||||
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="comment">// We have a key, we do not want out of sync validations after a restart</span></div>
|
||||
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="comment">// and are not amendment blocked.</span></div>
|
||||
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  validating_ = validatorKeys_.publicKey.size() != 0 &&</div>
|
||||
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a633355f2ccfe0511fe0ed6124476229a">seq</a>() >= app_.getMaxDisallowedLedger() &&</div>
|
||||
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  !app_.getOPs().isBlocked();</div>
|
||||
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  </div>
|
||||
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="comment">// If we are not running in standalone mode and there's a configured UNL,</span></div>
|
||||
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="comment">// check to make sure that it's not expired.</span></div>
|
||||
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <span class="keywordflow">if</span> (validating_ && !app_.config().standalone() && app_.validators().count())</div>
|
||||
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  {</div>
|
||||
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keyword">auto</span> <span class="keyword">const</span> when = app_.validators().expires();</div>
|
||||
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  </div>
|
||||
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  <span class="keywordflow">if</span> (!when || *when < app_.timeKeeper().now())</div>
|
||||
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  {</div>
|
||||
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"Voluntarily bowing out of consensus process "</span></div>
|
||||
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="stringliteral">"because of an expired validator list."</span>;</div>
|
||||
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  validating_ = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  }</div>
|
||||
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div>
|
||||
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  </div>
|
||||
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> synced = app_.getOPs().getOperatingMode() == <a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aba7de5bc6888294e5884b024a4c894f1">OperatingMode::FULL</a>;</div>
|
||||
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  </div>
|
||||
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <span class="keywordflow">if</span> (validating_)</div>
|
||||
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  {</div>
|
||||
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) << <span class="stringliteral">"Entering consensus process, validating, synced="</span></div>
|
||||
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  << (synced ? <span class="stringliteral">"yes"</span> : <span class="stringliteral">"no"</span>);</div>
|
||||
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  }</div>
|
||||
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  {</div>
|
||||
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="comment">// Otherwise we just want to monitor the validation process.</span></div>
|
||||
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  JLOG(<a class="code" href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) << <span class="stringliteral">"Entering consensus process, watching, synced="</span></div>
|
||||
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  << (synced ? <span class="stringliteral">"yes"</span> : <span class="stringliteral">"no"</span>);</div>
|
||||
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  }</div>
|
||||
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  </div>
|
||||
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="comment">// Notify inbound ledgers that we are starting a new round</span></div>
|
||||
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  inboundTransactions_.newRound(prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a633355f2ccfe0511fe0ed6124476229a">seq</a>());</div>
|
||||
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  </div>
|
||||
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="comment">// Notify NegativeUNLVote that new validators are added</span></div>
|
||||
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">if</span> (prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a790fedb2406a5d248f2188da3c421dbc">ledger_</a>->rules().enabled(<a class="code" href="namespaceripple.html#afb8eb6b8a92d7cb7fe9e359677ab2532">featureNegativeUNL</a>) &&</div>
|
||||
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  !nowTrusted.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/empty.html">empty</a>())</div>
|
||||
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  nUnlVote_.newValidators(prevLgr.<a class="code" href="classripple_1_1RCLCxLedger.html#a633355f2ccfe0511fe0ed6124476229a">seq</a>() + 1, nowTrusted);</div>
|
||||
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  </div>
|
||||
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="comment">// propose only if we're in sync with the network (and validating)</span></div>
|
||||
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">return</span> validating_ && synced;</div>
|
||||
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> }</div>
|
||||
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  </div>
|
||||
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#ad0aa2492ff95815e202bd5801b37e030"> 1005</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#ad0aa2492ff95815e202bd5801b37e030">RCLConsensus::Adaptor::haveValidated</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">return</span> ledgerMaster_.haveValidated();</div>
|
||||
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> }</div>
|
||||
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  </div>
|
||||
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a></div>
|
||||
<div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a9f9e5d015fc6b18e3726ce51658b257c"> 1011</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a9f9e5d015fc6b18e3726ce51658b257c">RCLConsensus::Adaptor::getValidLedgerIndex</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">return</span> ledgerMaster_.getValidLedgerIndex();</div>
|
||||
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> }</div>
|
||||
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  </div>
|
||||
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair<std::size_t, hash_set<RCLConsensus::Adaptor::NodeKey_t></a>></div>
|
||||
<div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af8d2a95620b4b70e89890757d9bfb528"> 1017</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af8d2a95620b4b70e89890757d9bfb528">RCLConsensus::Adaptor::getQuorumKeys</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="keywordflow">return</span> app_.validators().getQuorumKeys();</div>
|
||||
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> }</div>
|
||||
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  </div>
|
||||
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a></div>
|
||||
<div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a64490ffd82ff2b75da2406bb52fcd7dd"> 1023</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a64490ffd82ff2b75da2406bb52fcd7dd">RCLConsensus::Adaptor::laggards</a>(</div>
|
||||
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">Ledger_t::Seq</a> <span class="keyword">const</span> seq,</div>
|
||||
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<RCLConsensus::Adaptor::NodeKey_t></a>& trustedKeys)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="keywordflow">return</span> app_.getValidations().laggards(seq, trustedKeys);</div>
|
||||
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> }</div>
|
||||
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  </div>
|
||||
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l01031"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a89732653d5e60191140d595d9192bc83"> 1031</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#a89732653d5e60191140d595d9192bc83">RCLConsensus::Adaptor::validator</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">return</span> !validatorKeys_.publicKey.empty();</div>
|
||||
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> }</div>
|
||||
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  </div>
|
||||
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01037"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af204a12bd25345da7fbdb8d267a1e23f"> 1037</a></span> <a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#af204a12bd25345da7fbdb8d267a1e23f">RCLConsensus::Adaptor::updateOperatingMode</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <span class="keyword">const</span> positions)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="keywordflow">if</span> (!positions && app_.getOPs().isFull())</div>
|
||||
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  app_.getOPs().setMode(<a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aa5afd6edd5336d91316964e493936858">OperatingMode::CONNECTED</a>);</div>
|
||||
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> }</div>
|
||||
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  </div>
|
||||
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01044"></a><span class="lineno"><a class="line" href="classripple_1_1RCLConsensus.html#a250f08961ce3c3410f96824cfe385bd2"> 1044</a></span> <a class="code" href="classripple_1_1RCLConsensus.html#a250f08961ce3c3410f96824cfe385bd2">RCLConsensus::startRound</a>(</div>
|
||||
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>& now,</div>
|
||||
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <a class="code" href="classripple_1_1base__uint.html">RCLCxLedger::ID</a> <span class="keyword">const</span>& prevLgrId,</div>
|
||||
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <a class="code" href="classripple_1_1RCLCxLedger.html">RCLCxLedger</a> <span class="keyword">const</span>& prevLgr,</div>
|
||||
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& nowUntrusted,</div>
|
||||
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& nowTrusted)</div>
|
||||
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> {</div>
|
||||
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> _{<a class="code" href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">mutex_</a>};</div>
|
||||
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <a class="code" href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">consensus_</a>.startRound(</div>
|
||||
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  now,</div>
|
||||
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  prevLgrId,</div>
|
||||
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  prevLgr,</div>
|
||||
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  nowUntrusted,</div>
|
||||
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <a class="code" href="classripple_1_1RCLConsensus.html#abc9a72a85632483bb04f03f00af63db3">adaptor_</a>.<a class="code" href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd">preStartRound</a>(prevLgr, nowTrusted));</div>
|
||||
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> }</div>
|
||||
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassripple_1_1Application_html"><div class="ttname"><a href="classripple_1_1Application.html">ripple::Application</a></div><div class="ttdef"><b>Definition:</b> <a href="Application_8h_source.html#l00115">Application.h:115</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLCxPeerPos_html"><div class="ttname"><a href="classripple_1_1RCLCxPeerPos.html">ripple::RCLCxPeerPos</a></div><div class="ttdoc">A peer's signed, proposed position for use in RCLConsensus.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxPeerPos_8h_source.html#l00043">RCLCxPeerPos.h:43</a></div></div>
|
||||
@@ -1136,9 +1137,9 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1RCLCxPeerPos_html_af7dbd15db4bfc7852a84f0cc7dd27685"><div class="ttname"><a href="classripple_1_1RCLCxPeerPos.html#af7dbd15db4bfc7852a84f0cc7dd27685">ripple::RCLCxPeerPos::signature</a></div><div class="ttdeci">Slice signature() const</div><div class="ttdoc">Signature of the proposal (not necessarily verified)</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxPeerPos_8h_source.html#l00071">RCLCxPeerPos.h:71</a></div></div>
|
||||
<div class="ttc" id="ashared_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a></div><div class="ttdoc">STL class.</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="aclassripple_1_1RCLConsensus_html_acdab4291925cbabf861b8019c76355ea"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#acdab4291925cbabf861b8019c76355ea">ripple::RCLConsensus::getJson</a></div><div class="ttdeci">Json::Value getJson(bool full) const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00889">RCLConsensus.cpp:889</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_acdab4291925cbabf861b8019c76355ea"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#acdab4291925cbabf861b8019c76355ea">ripple::RCLConsensus::getJson</a></div><div class="ttdeci">Json::Value getJson(bool full) const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00890">RCLConsensus.cpp:890</a></div></div>
|
||||
<div class="ttc" id="aexception_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a250f08961ce3c3410f96824cfe385bd2"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a250f08961ce3c3410f96824cfe385bd2">ripple::RCLConsensus::startRound</a></div><div class="ttdeci">void startRound(NetClock::time_point const &now, RCLCxLedger::ID const &prevLgrId, RCLCxLedger const &prevLgr, hash_set< NodeID > const &nowUntrusted, hash_set< NodeID > const &nowTrusted)</div><div class="ttdoc">Adjust the set of trusted validators and kick-off the next round of consensus.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01043">RCLConsensus.cpp:1043</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a250f08961ce3c3410f96824cfe385bd2"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a250f08961ce3c3410f96824cfe385bd2">ripple::RCLConsensus::startRound</a></div><div class="ttdeci">void startRound(NetClock::time_point const &now, RCLCxLedger::ID const &prevLgrId, RCLCxLedger const &prevLgr, hash_set< NodeID > const &nowUntrusted, hash_set< NodeID > const &nowTrusted)</div><div class="ttdoc">Adjust the set of trusted validators and kick-off the next round of consensus.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01044">RCLConsensus.cpp:1044</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#l00309">Journal.h:309</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a93589fe1373e60df4313330b0ca40ecb"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a93589fe1373e60df4313330b0ca40ecb">ripple::RCLConsensus::Adaptor::acquireLedger</a></div><div class="ttdeci">std::optional< RCLCxLedger > acquireLedger(LedgerHash const &hash)</div><div class="ttdoc">Attempt to acquire a specific ledger.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00121">RCLConsensus.cpp:121</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a95eae2c34b7b917b097947ff42e9c94c"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a95eae2c34b7b917b097947ff42e9c94c">ripple::RCLConsensus::consensus_</a></div><div class="ttdeci">Consensus< Adaptor > consensus_</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8h_source.html#l00530">RCLConsensus.h:530</a></div></div>
|
||||
@@ -1146,7 +1147,7 @@ $(function() {
|
||||
<div class="ttc" id="aunordered_set_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_set.html">std::unordered_set</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5d9fe757c37a7602a883d30b14e1bf3cae6bed345f53943469741d7295552fcd4"><div class="ttname"><a href="namespaceripple.html#a5d9fe757c37a7602a883d30b14e1bf3cae6bed345f53943469741d7295552fcd4">ripple::SHAMapType::TRANSACTION</a></div><div class="ttdeci">@ TRANSACTION</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_aeabb611a96a6d3e34fbeba94fd462bcd"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd">ripple::RCLConsensus::Adaptor::preStartRound</a></div><div class="ttdeci">bool preStartRound(RCLCxLedger const &prevLedger, hash_set< NodeID > const &nowTrusted)</div><div class="ttdoc">Called before kicking off a new consensus round.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00953">RCLConsensus.cpp:953</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_aeabb611a96a6d3e34fbeba94fd462bcd"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#aeabb611a96a6d3e34fbeba94fd462bcd">ripple::RCLConsensus::Adaptor::preStartRound</a></div><div class="ttdeci">bool preStartRound(RCLCxLedger const &prevLedger, hash_set< NodeID > const &nowTrusted)</div><div class="ttdoc">Called before kicking off a new consensus round.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00954">RCLConsensus.cpp:954</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a84d76715067b0c309c57b9e19d0ed2bd"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a84d76715067b0c309c57b9e19d0ed2bd">ripple::RCLConsensus::mutex_</a></div><div class="ttdeci">std::recursive_mutex mutex_</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8h_source.html#l00527">RCLConsensus.h:527</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerMaster_html"><div class="ttname"><a href="classripple_1_1LedgerMaster.html">ripple::LedgerMaster</a></div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8h_source.html#l00070">LedgerMaster.h:70</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563ea1dde5f68261b60a2e4655f5ad1f13e0b"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea1dde5f68261b60a2e4655f5ad1f13e0b">ripple::ConsensusMode::wrongLedger</a></div><div class="ttdeci">@ wrongLedger</div><div class="ttdoc">We have the wrong ledger and are attempting to acquire it.</div></div>
|
||||
@@ -1154,7 +1155,7 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_ac97ef5d20d6f7ec91992dbc344f9d77a"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#ac97ef5d20d6f7ec91992dbc344f9d77a">ripple::RCLConsensus::Adaptor::hasOpenTransactions</a></div><div class="ttdeci">bool hasOpenTransactions() const</div><div class="ttdoc">Whether the open ledger has any transactions.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00253">RCLConsensus.cpp:253</a></div></div>
|
||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector< TxIDSeq ></a></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="aclassripple_1_1RCLConsensus_html_a269eadc254a964bcd8d79876420c379b"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a269eadc254a964bcd8d79876420c379b">ripple::RCLConsensus::gotTxSet</a></div><div class="ttdeci">void gotTxSet(NetClock::time_point const &now, RCLTxSet const &txSet)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00917">RCLConsensus.cpp:917</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a269eadc254a964bcd8d79876420c379b"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a269eadc254a964bcd8d79876420c379b">ripple::RCLConsensus::gotTxSet</a></div><div class="ttdeci">void gotTxSet(NetClock::time_point const &now, RCLTxSet const &txSet)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00918">RCLConsensus.cpp:918</a></div></div>
|
||||
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::duration</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a64faabbdff83da8b7fd7aaafbb937867"><div class="ttname"><a href="namespaceripple.html#a64faabbdff83da8b7fd7aaafbb937867">ripple::crypto_prng</a></div><div class="ttdeci">csprng_engine & crypto_prng()</div><div class="ttdoc">The default cryptographically secure PRNG.</div><div class="ttdef"><b>Definition:</b> <a href="csprng_8cpp_source.html#l00099">csprng.cpp:99</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a08a13b62b18272366f788632359e8793"><div class="ttname"><a href="namespaceripple.html#a08a13b62b18272366f788632359e8793">ripple::toBase58</a></div><div class="ttdeci">std::string toBase58(AccountID const &v)</div><div class="ttdoc">Convert AccountID to base58 checked string.</div><div class="ttdef"><b>Definition:</b> <a href="AccountID_8cpp_source.html#l00104">AccountID.cpp:104</a></div></div>
|
||||
@@ -1168,7 +1169,7 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_aec02fa9195e2a9f090c95b55711e2ec7"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#aec02fa9195e2a9f090c95b55711e2ec7">ripple::RCLConsensus::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8h_source.html#l00531">RCLConsensus.h:531</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1PublicKey_html_ae0bcc607176a440ec63a86bae5767036"><div class="ttname"><a href="classripple_1_1PublicKey.html#ae0bcc607176a440ec63a86bae5767036">ripple::PublicKey::slice</a></div><div class="ttdeci">Slice slice() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8h_source.html#l00123">PublicKey.h:123</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1ConsensusResult_html_ad1c8143d67980ac53ec5bd8ebf8b9ce3"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#ad1c8143d67980ac53ec5bd8ebf8b9ce3">ripple::ConsensusResult::roundTime</a></div><div class="ttdeci">ConsensusTimer roundTime</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusTypes_8h_source.html#l00233">ConsensusTypes.h:233</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a66f29b3d7bf4aedbc6b6af362572e91c"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a66f29b3d7bf4aedbc6b6af362572e91c">ripple::RCLConsensus::timerEntry</a></div><div class="ttdeci">void timerEntry(NetClock::time_point const &now)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00901">RCLConsensus.cpp:901</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a66f29b3d7bf4aedbc6b6af362572e91c"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a66f29b3d7bf4aedbc6b6af362572e91c">ripple::RCLConsensus::timerEntry</a></div><div class="ttdeci">void timerEntry(NetClock::time_point const &now)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00902">RCLConsensus.cpp:902</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLValidationsAdaptor_html_a0eebe32ebe8432114e6b1f32e0faf3ad"><div class="ttname"><a href="classripple_1_1RCLValidationsAdaptor.html#a0eebe32ebe8432114e6b1f32e0faf3ad">ripple::RCLValidationsAdaptor::journal</a></div><div class="ttdeci">beast::Journal journal() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLValidations_8h_source.html#l00225">RCLValidations.h:225</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a2f168067d1fbfbee91c628629cd5017a"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a2f168067d1fbfbee91c628629cd5017a">ripple::RCLConsensus::Adaptor::onClose</a></div><div class="ttdeci">Result onClose(RCLCxLedger const &ledger, NetClock::time_point const &closeTime, ConsensusMode mode)</div><div class="ttdoc">Close the open ledger and return initial consensus position.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00297">RCLConsensus.cpp:297</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLCxLedger_html_a8c31440ae6e0832e39f4acb30c3734dd"><div class="ttname"><a href="classripple_1_1RCLCxLedger.html#a8c31440ae6e0832e39f4acb30c3734dd">ripple::RCLCxLedger::closeTime</a></div><div class="ttdeci">NetClock::time_point closeTime() const</div><div class="ttdoc">The close time of this ledger.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxLedger_8h_source.html#l00096">RCLCxLedger.h:96</a></div></div>
|
||||
@@ -1187,14 +1188,14 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a44b703ba75ddf081e1d1e4f026137ebe"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a44b703ba75ddf081e1d1e4f026137ebe">ripple::RCLConsensus::Adaptor::doAccept</a></div><div class="ttdeci">void doAccept(Result const &result, RCLCxLedger const &prevLedger, NetClock::duration closeResolution, ConsensusCloseTimes const &rawCloseTimes, ConsensusMode const &mode, Json::Value &&consensusJson)</div><div class="ttdoc">Accept a new ledger based on the given transactions.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00441">RCLConsensus.cpp:441</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a644744c1ada1b4d9822c79a07934d852"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a644744c1ada1b4d9822c79a07934d852">ripple::RCLConsensus::RCLConsensus</a></div><div class="ttdeci">RCLConsensus(Application &app, std::unique_ptr< FeeVote > &&feeVote, LedgerMaster &ledgerMaster, LocalTxs &localTxs, InboundTransactions &inboundTransactions, Consensus< Adaptor >::clock_type const &clock, ValidatorKeys const &validatorKeys, beast::Journal journal)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00052">RCLConsensus.cpp:52</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapMissingNode_html"><div class="ttname"><a href="classripple_1_1SHAMapMissingNode.html">ripple::SHAMapMissingNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SHAMapMissingNode_8h_source.html#l00055">SHAMapMissingNode.h:55</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a41b5d07d847a52a3408b8e366b8ee53b"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a41b5d07d847a52a3408b8e366b8ee53b">ripple::RCLConsensus::simulate</a></div><div class="ttdeci">void simulate(NetClock::time_point const &now, std::optional< std::chrono::milliseconds > consensusDelay)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00935">RCLConsensus.cpp:935</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_a41b5d07d847a52a3408b8e366b8ee53b"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#a41b5d07d847a52a3408b8e366b8ee53b">ripple::RCLConsensus::simulate</a></div><div class="ttdeci">void simulate(NetClock::time_point const &now, std::optional< std::chrono::milliseconds > consensusDelay)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00936">RCLConsensus.cpp:936</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a8f02892ce5a6496090326e89b531a017"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a8f02892ce5a6496090326e89b531a017">ripple::RCLConsensus::Adaptor::onAccept</a></div><div class="ttdeci">void onAccept(Result const &result, RCLCxLedger const &prevLedger, NetClock::duration const &closeResolution, ConsensusCloseTimes const &rawCloseTimes, ConsensusMode const &mode, Json::Value &&consensusJson)</div><div class="ttdoc">Process the accepted ledger.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00412">RCLConsensus.cpp:412</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce">ripple::ConsensusMode::observing</a></div><div class="ttdeci">@ observing</div><div class="ttdoc">We are observing peer positions, but not proposing our position.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint< 256 ></a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_af204a12bd25345da7fbdb8d267a1e23f"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#af204a12bd25345da7fbdb8d267a1e23f">ripple::RCLConsensus::Adaptor::updateOperatingMode</a></div><div class="ttdeci">void updateOperatingMode(std::size_t const positions) const</div><div class="ttdoc">Update operating mode based on current peer positions.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01036">RCLConsensus.cpp:1036</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_af204a12bd25345da7fbdb8d267a1e23f"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#af204a12bd25345da7fbdb8d267a1e23f">ripple::RCLConsensus::Adaptor::updateOperatingMode</a></div><div class="ttdeci">void updateOperatingMode(std::size_t const positions) const</div><div class="ttdoc">Update operating mode based on current peer positions.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01037">RCLConsensus.cpp:1037</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a076d4f6f5b4dbe69103fb54a69b98324"><div class="ttname"><a href="namespaceripple.html#a076d4f6f5b4dbe69103fb54a69b98324">ripple::isPseudoTx</a></div><div class="ttdeci">bool isPseudoTx(STObject const &tx)</div><div class="ttdoc">Check whether a transaction is a pseudo-transaction.</div><div class="ttdef"><b>Definition:</b> <a href="STTx_8cpp_source.html#l00559">STTx.cpp:559</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_ad0aa2492ff95815e202bd5801b37e030"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#ad0aa2492ff95815e202bd5801b37e030">ripple::RCLConsensus::Adaptor::haveValidated</a></div><div class="ttdeci">bool haveValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01004">RCLConsensus.cpp:1004</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a64490ffd82ff2b75da2406bb52fcd7dd"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a64490ffd82ff2b75da2406bb52fcd7dd">ripple::RCLConsensus::Adaptor::laggards</a></div><div class="ttdeci">std::size_t laggards(Ledger_t::Seq const seq, hash_set< NodeKey_t > &trustedKeys) const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01022">RCLConsensus.cpp:1022</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_ad0aa2492ff95815e202bd5801b37e030"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#ad0aa2492ff95815e202bd5801b37e030">ripple::RCLConsensus::Adaptor::haveValidated</a></div><div class="ttdeci">bool haveValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01005">RCLConsensus.cpp:1005</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a64490ffd82ff2b75da2406bb52fcd7dd"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a64490ffd82ff2b75da2406bb52fcd7dd">ripple::RCLConsensus::Adaptor::laggards</a></div><div class="ttdeci">std::size_t laggards(Ledger_t::Seq const seq, hash_set< NodeKey_t > &trustedKeys) const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01023">RCLConsensus.cpp:1023</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a71a6227fec78db0b06595d62c06b25dc"><div class="ttname"><a href="namespaceripple.html#a71a6227fec78db0b06595d62c06b25dc">ripple::rand_int</a></div><div class="ttdeci">std::enable_if_t< std::is_integral< Integral >::value &&detail::is_engine< Engine >::value, Integral > rand_int(Engine &engine, Integral min, Integral max)</div><div class="ttdoc">Return a uniformly distributed random integer.</div><div class="ttdef"><b>Definition:</b> <a href="ripple_2basics_2random_8h_source.html#l00115">ripple/basics/random.h:115</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a3c19242b4c7feb5d9ce80c7f49f00646"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a3c19242b4c7feb5d9ce80c7f49f00646">ripple::RCLConsensus::Adaptor::share</a></div><div class="ttdeci">void share(RCLCxPeerPos const &peerPos)</div><div class="ttdoc">Share the given proposal with all peers.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00154">RCLConsensus.cpp:154</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a597325d7385ff9c19686e14e5bead510aa5afd6edd5336d91316964e493936858"><div class="ttname"><a href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aa5afd6edd5336d91316964e493936858">ripple::OperatingMode::CONNECTED</a></div><div class="ttdeci">@ CONNECTED</div><div class="ttdoc">convinced we are talking to the network</div></div>
|
||||
@@ -1202,7 +1203,7 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_a3c6486c5da8f92bc3d05c0a45be4f0d8"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#a3c6486c5da8f92bc3d05c0a45be4f0d8">ripple::ConsensusTimer::read</a></div><div class="ttdeci">std::chrono::milliseconds read() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusTypes_8h_source.html#l00142">ConsensusTypes.h:142</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapItem_html"><div class="ttname"><a href="classripple_1_1SHAMapItem.html">ripple::SHAMapItem</a></div><div class="ttdef"><b>Definition:</b> <a href="SHAMapItem_8h_source.html#l00031">SHAMapItem.h:31</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a0429dc3d934c2cebe43fb8a723cf9eb3"><div class="ttname"><a href="namespaceripple.html#a0429dc3d934c2cebe43fb8a723cf9eb3">ripple::signDigest</a></div><div class="ttdeci">Buffer signDigest(PublicKey const &pk, SecretKey const &sk, uint256 const &digest)</div><div class="ttdoc">Generate a signature for a message digest.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8cpp_source.html#l00212">SecretKey.cpp:212</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_aa0e46b668adf5d791806adf85d852c11"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#aa0e46b668adf5d791806adf85d852c11">ripple::RCLConsensus::peerProposal</a></div><div class="ttdeci">bool peerProposal(NetClock::time_point const &now, RCLCxPeerPos const &newProposal)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00944">RCLConsensus.cpp:944</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_html_aa0e46b668adf5d791806adf85d852c11"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#aa0e46b668adf5d791806adf85d852c11">ripple::RCLConsensus::peerProposal</a></div><div class="ttdeci">bool peerProposal(NetClock::time_point const &now, RCLCxPeerPos const &newProposal)</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00945">RCLConsensus.cpp:945</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ad99788f1aca6ce31a1fe8365eee1bba3"><div class="ttname"><a href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">ripple::Rethrow</a></div><div class="ttdeci">void Rethrow()</div><div class="ttdoc">Rethrow the exception currently being handled.</div><div class="ttdef"><b>Definition:</b> <a href="contract_8h_source.html#l00048">contract.h:48</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLTxSet_html"><div class="ttname"><a href="classripple_1_1RCLTxSet.html">ripple::RCLTxSet</a></div><div class="ttdoc">Represents a set of transactions in RCLConsensus.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxTx_8h_source.html#l00065">RCLCxTx.h:65</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_ae0bc8e2bb64629ac624fd6b106ec56cb"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#ae0bc8e2bb64629ac624fd6b106ec56cb">ripple::RCLConsensus::Adaptor::validate</a></div><div class="ttdeci">void validate(RCLCxLedger const &ledger, RCLTxSet const &txns, bool proposing)</div><div class="ttdoc">Validate the given ledger and share with peers as necessary.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00787">RCLConsensus.cpp:787</a></div></div>
|
||||
@@ -1227,14 +1228,14 @@ $(function() {
|
||||
<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="aclassripple_1_1RCLConsensus_html_abc9a72a85632483bb04f03f00af63db3"><div class="ttname"><a href="classripple_1_1RCLConsensus.html#abc9a72a85632483bb04f03f00af63db3">ripple::RCLConsensus::adaptor_</a></div><div class="ttdeci">Adaptor adaptor_</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8h_source.html#l00529">RCLConsensus.h:529</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapItem_html_a3f52867a7d3829faede60bf7dd5628ba"><div class="ttname"><a href="classripple_1_1SHAMapItem.html#a3f52867a7d3829faede60bf7dd5628ba">ripple::SHAMapItem::slice</a></div><div class="ttdeci">Slice slice() const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapItem_8h_source.html#l00051">SHAMapItem.h:51</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a89732653d5e60191140d595d9192bc83"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a89732653d5e60191140d595d9192bc83">ripple::RCLConsensus::Adaptor::validator</a></div><div class="ttdeci">bool validator() const</div><div class="ttdoc">Whether I am a validator.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01030">RCLConsensus.cpp:1030</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a89732653d5e60191140d595d9192bc83"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a89732653d5e60191140d595d9192bc83">ripple::RCLConsensus::Adaptor::validator</a></div><div class="ttdeci">bool validator() const</div><div class="ttdoc">Whether I am a validator.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01031">RCLConsensus.cpp:1031</a></div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1abstract__clock_html"><div class="ttname"><a href="classbeast_1_1abstract__clock.html">beast::abstract_clock< std::chrono::steady_clock ></a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a0f5de38ef7c5157e23527a0e6a720a22"><div class="ttname"><a href="namespaceripple.html#a0f5de38ef7c5157e23527a0e6a720a22">ripple::proposalUniqueId</a></div><div class="ttdeci">uint256 proposalUniqueId(uint256 const &proposeHash, uint256 const &previousLedger, std::uint32_t proposeSeq, NetClock::time_point closeTime, Slice const &publicKey, Slice const &signature)</div><div class="ttdoc">Calculate a unique identifier for a signed proposal.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxPeerPos_8cpp_source.html#l00066">RCLCxPeerPos.cpp:66</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_abd952b4943d59db7baeed2173c2abe8e"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#abd952b4943d59db7baeed2173c2abe8e">ripple::RCLConsensus::Adaptor::acquireTxSet</a></div><div class="ttdeci">std::optional< RCLTxSet > acquireTxSet(RCLTxSet::ID const &setId)</div><div class="ttdoc">Acquire the transaction set associated with a proposal.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00243">RCLConsensus.cpp:243</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a8ca18b539a9a017ac1210c8104ffcc74"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a8ca18b539a9a017ac1210c8104ffcc74">ripple::RCLConsensus::Adaptor::buildLCL</a></div><div class="ttdeci">RCLCxLedger buildLCL(RCLCxLedger const &previousLedger, CanonicalTXSet &retriableTxs, NetClock::time_point closeTime, bool closeTimeCorrect, NetClock::duration closeResolution, std::chrono::milliseconds roundTime, std::set< TxID > &failedTxs)</div><div class="ttdoc">Build the new last closed ledger.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00746">RCLConsensus.cpp:746</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLCxPeerPos_html_ae755e970550b6ffaf5d5d18468c40488"><div class="ttname"><a href="classripple_1_1RCLCxPeerPos.html#ae755e970550b6ffaf5d5d18468c40488">ripple::RCLCxPeerPos::publicKey</a></div><div class="ttdeci">PublicKey const & publicKey() const</div><div class="ttdoc">Public key of peer that sent the proposal.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxPeerPos_8h_source.html#l00078">RCLCxPeerPos.h:78</a></div></div>
|
||||
<div class="ttc" id="adecay_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/decay.html">std::decay_t</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a602cb9acaeb931bb5a7b5a74de5f5280"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a602cb9acaeb931bb5a7b5a74de5f5280">ripple::RCLConsensus::Adaptor::onModeChange</a></div><div class="ttdeci">void onModeChange(ConsensusMode before, ConsensusMode after)</div><div class="ttdoc">Notified of change in consensus mode.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00873">RCLConsensus.cpp:873</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a602cb9acaeb931bb5a7b5a74de5f5280"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a602cb9acaeb931bb5a7b5a74de5f5280">ripple::RCLConsensus::Adaptor::onModeChange</a></div><div class="ttdeci">void onModeChange(ConsensusMode before, ConsensusMode after)</div><div class="ttdoc">Notified of change in consensus mode.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00874">RCLConsensus.cpp:874</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a8a16d6f665a032453ec4cbfca01929b6a3e4d891a5df3d6d0d7dd9432a1bc6470"><div class="ttname"><a href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6a3e4d891a5df3d6d0d7dd9432a1bc6470">ripple::ManifestDisposition::accepted</a></div><div class="ttdeci">@ accepted</div><div class="ttdoc">Manifest is valid.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Serializer_html"><div class="ttname"><a href="classripple_1_1Serializer.html">ripple::Serializer</a></div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00039">Serializer.h:39</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLCxLedger_html"><div class="ttname"><a href="classripple_1_1RCLCxLedger.html">ripple::RCLCxLedger</a></div><div class="ttdoc">Represents a ledger in RCLConsensus.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxLedger_8h_source.html#l00035">RCLCxLedger.h:35</a></div></div>
|
||||
@@ -1242,7 +1243,7 @@ $(function() {
|
||||
<div class="ttc" id="aemplace_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">std::vector::emplace_back</a></div><div class="ttdeci">T emplace_back(T... args)</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="RCLCensorshipDetector_8h_source.html#l00029">RCLCensorshipDetector.h:29</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563e"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ripple::ConsensusMode</a></div><div class="ttdeci">ConsensusMode</div><div class="ttdoc">Represents how a node currently participates in Consensus.</div><div class="ttdef"><b>Definition:</b> <a href="ConsensusTypes_8h_source.html#l00055">ConsensusTypes.h:55</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a9f9e5d015fc6b18e3726ce51658b257c"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a9f9e5d015fc6b18e3726ce51658b257c">ripple::RCLConsensus::Adaptor::getValidLedgerIndex</a></div><div class="ttdeci">LedgerIndex getValidLedgerIndex() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01010">RCLConsensus.cpp:1010</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a9f9e5d015fc6b18e3726ce51658b257c"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a9f9e5d015fc6b18e3726ce51658b257c">ripple::RCLConsensus::Adaptor::getValidLedgerIndex</a></div><div class="ttdeci">LedgerIndex getValidLedgerIndex() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01011">RCLConsensus.cpp:1011</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a63a883cebf81b764433e67d90d4470d9a86a4fa105ff51b8c3be84734797d8144"><div class="ttname"><a href="namespaceripple.html#a63a883cebf81b764433e67d90d4470d9a86a4fa105ff51b8c3be84734797d8144">ripple::ShardState::acquire</a></div><div class="ttdeci">@ acquire</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1base__uint_html_a2ffd09234d574e5554c5d84199a9f287"><div class="ttname"><a href="classripple_1_1base__uint.html#a2ffd09234d574e5554c5d84199a9f287">ripple::base_uint::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00132">base_uint.h:132</a></div></div>
|
||||
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace.</div></div>
|
||||
@@ -1277,7 +1278,7 @@ $(function() {
|
||||
<div class="ttc" id="anumeric_limits_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a71558db36f2c6e246d00408955a8eb7f"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a71558db36f2c6e246d00408955a8eb7f">ripple::RCLConsensus::Adaptor::onForceAccept</a></div><div class="ttdeci">void onForceAccept(Result const &result, RCLCxLedger const &prevLedger, NetClock::duration const &closeResolution, ConsensusCloseTimes const &rawCloseTimes, ConsensusMode const &mode, Json::Value &&consensusJson)</div><div class="ttdoc">Process the accepted ledger that was a result of simulation/force accept.</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l00394">RCLConsensus.cpp:394</a></div></div>
|
||||
<div class="ttc" id="aset_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/set.html">std::set</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_af8d2a95620b4b70e89890757d9bfb528"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#af8d2a95620b4b70e89890757d9bfb528">ripple::RCLConsensus::Adaptor::getQuorumKeys</a></div><div class="ttdeci">std::pair< std::size_t, hash_set< NodeKey_t > > getQuorumKeys() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01016">RCLConsensus.cpp:1016</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_af8d2a95620b4b70e89890757d9bfb528"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#af8d2a95620b4b70e89890757d9bfb528">ripple::RCLConsensus::Adaptor::getQuorumKeys</a></div><div class="ttdeci">std::pair< std::size_t, hash_set< NodeKey_t > > getQuorumKeys() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8cpp_source.html#l01017">RCLConsensus.cpp:1017</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5be750120b2129bbf4ec4fccb592de4c"><div class="ttname"><a href="namespaceripple.html#a5be750120b2129bbf4ec4fccb592de4c">ripple::handleNewValidation</a></div><div class="ttdeci">void handleNewValidation(Application &app, std::shared_ptr< STValidation > const &val, std::string const &source)</div><div class="ttdoc">Handle a new validation.</div><div class="ttdef"><b>Definition:</b> <a href="RCLValidations_8cpp_source.html#l00152">RCLValidations.cpp:152</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RCLConsensus_1_1Adaptor_html_a52d6c6005bc8066ec68d7e81038a6906"><div class="ttname"><a href="classripple_1_1RCLConsensus_1_1Adaptor.html#a52d6c6005bc8066ec68d7e81038a6906">ripple::RCLConsensus::Adaptor::validating</a></div><div class="ttdeci">bool validating() const</div><div class="ttdef"><b>Definition:</b> <a href="RCLConsensus_8h_source.html#l00109">RCLConsensus.h:109</a></div></div>
|
||||
<div class="ttc" id="awhat_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/error/exception/what.html">std::runtime_error::what</a></div><div class="ttdeci">T what(T... args)</div></div>
|
||||
|
||||
Reference in New Issue
Block a user