mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-22 20:15:51 +00:00
deploy: c5003969de
This commit is contained in:
@@ -2554,7 +2554,7 @@ $(function() {
|
|||||||
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a1dd0f5cbae7e22dcd6832624f0a16e79"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a1dd0f5cbae7e22dcd6832624f0a16e79">ripple::LedgerMaster::getNeededValidations</a></div><div class="ttdeci">std::size_t getNeededValidations()</div><div class="ttdoc">Determines how many validations are needed to fully validate a ledger.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l01036">LedgerMaster.cpp:1036</a></div></div>
|
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a1dd0f5cbae7e22dcd6832624f0a16e79"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a1dd0f5cbae7e22dcd6832624f0a16e79">ripple::LedgerMaster::getNeededValidations</a></div><div class="ttdeci">std::size_t getNeededValidations()</div><div class="ttdoc">Determines how many validations are needed to fully validate a ledger.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l01036">LedgerMaster.cpp:1036</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="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="amemory_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/memory.html">memory</a></div></div>
|
<div class="ttc" id="amemory_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/memory.html">memory</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0937f06a5eddf696521deaef47192a32"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ripple::ValidatorList::negativeUNLFilter</a></div><div class="ttdeci">std::vector< std::shared_ptr< STValidation > > negativeUNLFilter(std::vector< std::shared_ptr< STValidation >> &&validations) const</div><div class="ttdoc">Remove validations that are from validators on the negative UNL.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01958">ValidatorList.cpp:1958</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0937f06a5eddf696521deaef47192a32"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ripple::ValidatorList::negativeUNLFilter</a></div><div class="ttdeci">std::vector< std::shared_ptr< STValidation > > negativeUNLFilter(std::vector< std::shared_ptr< STValidation >> &&validations) const</div><div class="ttdoc">Remove validations that are from validators on the negative UNL.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01954">ValidatorList.cpp:1954</a></div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_ae93a0ce909950194e6f9aaed7579ea74"><div class="ttname"><a href="namespaceripple.html#ae93a0ce909950194e6f9aaed7579ea74">ripple::areCompatible</a></div><div class="ttdeci">bool areCompatible(ReadView const &validLedger, ReadView const &testLedger, beast::Journal::Stream &s, const char *reason)</div><div class="ttdoc">Return false if the test ledger is provably incompatible with the valid ledger, that is,...</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00482">View.cpp:482</a></div></div>
|
<div class="ttc" id="anamespaceripple_html_ae93a0ce909950194e6f9aaed7579ea74"><div class="ttname"><a href="namespaceripple.html#ae93a0ce909950194e6f9aaed7579ea74">ripple::areCompatible</a></div><div class="ttdeci">bool areCompatible(ReadView const &validLedger, ReadView const &testLedger, beast::Journal::Stream &s, const char *reason)</div><div class="ttdoc">Return false if the test ledger is provably incompatible with the valid ledger, that is,...</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00482">View.cpp:482</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a472f0a396bcdde5d66d860d0d5642923"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a472f0a396bcdde5d66d860d0d5642923">ripple::LedgerMaster::mAdvanceThread</a></div><div class="ttdeci">bool mAdvanceThread</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8h_source.html#l00371">LedgerMaster.h:371</a></div></div>
|
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a472f0a396bcdde5d66d860d0d5642923"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a472f0a396bcdde5d66d860d0d5642923">ripple::LedgerMaster::mAdvanceThread</a></div><div class="ttdeci">bool mAdvanceThread</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8h_source.html#l00371">LedgerMaster.h:371</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a168ff9afab04a717a7dacbca1927566c"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a168ff9afab04a717a7dacbca1927566c">ripple::LedgerMaster::checkAccept</a></div><div class="ttdeci">void checkAccept(std::shared_ptr< Ledger const > const &ledger)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l01042">LedgerMaster.cpp:1042</a></div></div>
|
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a168ff9afab04a717a7dacbca1927566c"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a168ff9afab04a717a7dacbca1927566c">ripple::LedgerMaster::checkAccept</a></div><div class="ttdeci">void checkAccept(std::shared_ptr< Ledger const > const &ledger)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l01042">LedgerMaster.cpp:1042</a></div></div>
|
||||||
|
|||||||
@@ -1780,283 +1780,279 @@ $(function() {
|
|||||||
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> effectiveUnlSize,</div>
|
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> effectiveUnlSize,</div>
|
||||||
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> seenSize)</div>
|
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> seenSize)</div>
|
||||||
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> {</div>
|
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> {</div>
|
||||||
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  <span class="comment">// Do not use achievable quorum until lists from all configured</span></div>
|
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  <span class="comment">// Use quorum if specified via command line.</span></div>
|
||||||
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  <span class="comment">// publishers are available</span></div>
|
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a> > 0)</div>
|
||||||
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& list : <a class="code" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a>)</div>
|
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  {</div>
|
||||||
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  {</div>
|
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) << <span class="stringliteral">"Using potentially unsafe quorum of "</span></div>
|
||||||
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  <span class="keywordflow">if</span> (list.second.status != <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>)</div>
|
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  << *<a class="code" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a></div>
|
||||||
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  <span class="keywordflow">return</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits<std::size_t>::max</a>();</div>
|
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  << <span class="stringliteral">" as specified on the command line"</span>;</div>
|
||||||
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  }</div>
|
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  <span class="keywordflow">return</span> *<a class="code" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a>;</div>
|
||||||
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  </div>
|
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  }</div>
|
||||||
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  <span class="comment">// Use an 80% quorum to balance fork safety, liveness, and required UNL</span></div>
|
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  </div>
|
||||||
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>  <span class="comment">// overlap.</span></div>
|
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>  <span class="comment">// Do not use achievable quorum until lists from all configured</span></div>
|
||||||
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  <span class="comment">// publishers are available</span></div>
|
||||||
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  <span class="comment">// Theorem 8 of the Analysis of the XRP Ledger Consensus Protocol</span></div>
|
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& list : <a class="code" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a>)</div>
|
||||||
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  <span class="comment">// (https://arxiv.org/abs/1802.07242) says:</span></div>
|
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  {</div>
|
||||||
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  <span class="comment">// XRP LCP guarantees fork safety if Oi,j > nj/2 + ni − qi + ti,j</span></div>
|
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  <span class="keywordflow">if</span> (list.second.status != <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>)</div>
|
||||||
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="comment">// for every pair of nodes Pi, Pj.</span></div>
|
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="keywordflow">return</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits<std::size_t>::max</a>();</div>
|
||||||
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  }</div>
|
||||||
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  <span class="comment">// ni: size of Pi's UNL</span></div>
|
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  </div>
|
||||||
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  <span class="comment">// nj: size of Pj's UNL</span></div>
|
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  <span class="comment">// Use an 80% quorum to balance fork safety, liveness, and required UNL</span></div>
|
||||||
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <span class="comment">// Oi,j: number of validators in both UNLs</span></div>
|
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <span class="comment">// overlap.</span></div>
|
||||||
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  <span class="comment">// qi: validation quorum for Pi's UNL</span></div>
|
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  <span class="comment">// ti, tj: maximum number of allowed Byzantine faults in Pi and Pj's</span></div>
|
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  <span class="comment">// Theorem 8 of the Analysis of the XRP Ledger Consensus Protocol</span></div>
|
||||||
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  <span class="comment">// UNLs ti,j: min{ti, tj, Oi,j}</span></div>
|
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  <span class="comment">// (https://arxiv.org/abs/1802.07242) says:</span></div>
|
||||||
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  <span class="comment">// XRP LCP guarantees fork safety if Oi,j > nj/2 + ni − qi + ti,j</span></div>
|
||||||
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>  <span class="comment">// Assume ni < nj, meaning and ti,j = ti</span></div>
|
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>  <span class="comment">// for every pair of nodes Pi, Pj.</span></div>
|
||||||
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  <span class="comment">// For qi = .8*ni, we make ti <= .2*ni</span></div>
|
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  <span class="comment">// ni: size of Pi's UNL</span></div>
|
||||||
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  <span class="comment">// (We could make ti lower and tolerate less UNL overlap. However in</span></div>
|
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  <span class="comment">// nj: size of Pj's UNL</span></div>
|
||||||
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  <span class="comment">// order to prioritize safety over liveness, we need ti >= ni - qi)</span></div>
|
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  <span class="comment">// Oi,j: number of validators in both UNLs</span></div>
|
||||||
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  <span class="comment">// qi: validation quorum for Pi's UNL</span></div>
|
||||||
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  <span class="comment">// An 80% quorum allows two UNLs to safely have < .2*ni unique</span></div>
|
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  <span class="comment">// ti, tj: maximum number of allowed Byzantine faults in Pi and Pj's</span></div>
|
||||||
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  <span class="comment">// validators between them:</span></div>
|
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  <span class="comment">// UNLs ti,j: min{ti, tj, Oi,j}</span></div>
|
||||||
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <span class="comment">// pi = ni - Oi,j</span></div>
|
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <span class="comment">// Assume ni < nj, meaning and ti,j = ti</span></div>
|
||||||
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  <span class="comment">// pj = nj - Oi,j</span></div>
|
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  <span class="comment">// For qi = .8*ni, we make ti <= .2*ni</span></div>
|
||||||
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  <span class="comment">// Oi,j > nj/2 + ni − qi + ti,j</span></div>
|
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  <span class="comment">// (We could make ti lower and tolerate less UNL overlap. However in</span></div>
|
||||||
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  <span class="comment">// ni - pi > (ni - pi + pj)/2 + ni − .8*ni + .2*ni</span></div>
|
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  <span class="comment">// order to prioritize safety over liveness, we need ti >= ni - qi)</span></div>
|
||||||
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  <span class="comment">// pi + pj < .2*ni</span></div>
|
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  <span class="comment">//</span></div>
|
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  <span class="comment">// An 80% quorum allows two UNLs to safely have < .2*ni unique</span></div>
|
||||||
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>  <span class="comment">// Note that the negative UNL protocol introduced the</span></div>
|
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>  <span class="comment">// validators between them:</span></div>
|
||||||
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>  <span class="comment">// AbsoluteMinimumQuorum which is 60% of the original UNL size. The</span></div>
|
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>  <span class="comment">// effective quorum should not be lower than it.</span></div>
|
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>  <span class="comment">// pi = ni - Oi,j</span></div>
|
||||||
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>  <span class="keyword">auto</span> <a class="code" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a> = <span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a><span class="keyword">></span>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(</div>
|
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>  <span class="comment">// pj = nj - Oi,j</span></div>
|
||||||
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/numeric/math/ceil.html">std::ceil</a>(effectiveUnlSize * 0.8f), <a class="codeRef" href="http://en.cppreference.com/w/cpp/numeric/math/ceil.html">std::ceil</a>(unlSize * 0.6f)));</div>
|
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>  </div>
|
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>  <span class="comment">// Oi,j > nj/2 + ni − qi + ti,j</span></div>
|
||||||
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  <span class="comment">// Use lower quorum specified via command line if the normal quorum</span></div>
|
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  <span class="comment">// ni - pi > (ni - pi + pj)/2 + ni − .8*ni + .2*ni</span></div>
|
||||||
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>  <span class="comment">// appears unreachable based on the number of recently received</span></div>
|
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>  <span class="comment">// pi + pj < .2*ni</span></div>
|
||||||
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>  <span class="comment">// validations.</span></div>
|
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>  <span class="comment">//</span></div>
|
||||||
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a> && *<a class="code" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a> < <a class="code" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a> && seenSize < <a class="code" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a>)</div>
|
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>  <span class="comment">// Note that the negative UNL protocol introduced the</span></div>
|
||||||
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>  {</div>
|
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>  <span class="comment">// AbsoluteMinimumQuorum which is 60% of the original UNL size. The</span></div>
|
||||||
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>  <a class="code" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a> = *<a class="code" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a>;</div>
|
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>  <span class="comment">// effective quorum should not be lower than it.</span></div>
|
||||||
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>  </div>
|
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a><span class="keyword">></span>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(</div>
|
||||||
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) << <span class="stringliteral">"Using unsafe quorum of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a></div>
|
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/numeric/math/ceil.html">std::ceil</a>(effectiveUnlSize * 0.8f), <a class="codeRef" href="http://en.cppreference.com/w/cpp/numeric/math/ceil.html">std::ceil</a>(unlSize * 0.6f)));</div>
|
||||||
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>  << <span class="stringliteral">" as specified in the command line"</span>;</div>
|
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> }</div>
|
||||||
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>  }</div>
|
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>  </div>
|
||||||
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>  </div>
|
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <a class="code" href="structripple_1_1TrustChanges.html">TrustChanges</a></div>
|
||||||
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a>;</div>
|
<div class="line"><a name="l01769"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d"> 1769</a></span> <a class="code" href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">ValidatorList::updateTrusted</a>(</div>
|
||||||
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> }</div>
|
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& seenValidators,</div>
|
||||||
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>  </div>
|
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> closeTime,</div>
|
||||||
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <a class="code" href="structripple_1_1TrustChanges.html">TrustChanges</a></div>
|
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>  <a class="code" href="classripple_1_1NetworkOPs.html">NetworkOPs</a>& ops,</div>
|
||||||
<div class="line"><a name="l01773"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d"> 1773</a></span> <a class="code" href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">ValidatorList::updateTrusted</a>(</div>
|
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>  <a class="code" href="classripple_1_1Overlay.html">Overlay</a>& overlay,</div>
|
||||||
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> <span class="keyword">const</span>& seenValidators,</div>
|
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>  <a class="code" href="classripple_1_1HashRouter.html">HashRouter</a>& hashRouter)</div>
|
||||||
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> closeTime,</div>
|
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> {</div>
|
||||||
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  <a class="code" href="classripple_1_1NetworkOPs.html">NetworkOPs</a>& ops,</div>
|
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  <span class="keyword">using namespace </span>std::chrono_literals;</div>
|
||||||
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>  <a class="code" href="classripple_1_1Overlay.html">Overlay</a>& overlay,</div>
|
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#a390041ee5976df2e6b170a3c6eed5de5">timeKeeper_</a>.<a class="code" href="classripple_1_1TimeKeeper.html#af1b5d38f3ba1bcacfbb7a89979af70e4">now</a>() > closeTime + 30s)</div>
|
||||||
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>  <a class="code" href="classripple_1_1HashRouter.html">HashRouter</a>& hashRouter)</div>
|
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>  closeTime = <a class="code" href="classripple_1_1ValidatorList.html#a390041ee5976df2e6b170a3c6eed5de5">timeKeeper_</a>.<a class="code" href="classripple_1_1TimeKeeper.html#af1b5d38f3ba1bcacfbb7a89979af70e4">now</a>();</div>
|
||||||
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> {</div>
|
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>  </div>
|
||||||
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <span class="keyword">using namespace </span>std::chrono_literals;</div>
|
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
||||||
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#a390041ee5976df2e6b170a3c6eed5de5">timeKeeper_</a>.<a class="code" href="classripple_1_1TimeKeeper.html#af1b5d38f3ba1bcacfbb7a89979af70e4">now</a>() > closeTime + 30s)</div>
|
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  </div>
|
||||||
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>  closeTime = <a class="code" href="classripple_1_1ValidatorList.html#a390041ee5976df2e6b170a3c6eed5de5">timeKeeper_</a>.<a class="code" href="classripple_1_1TimeKeeper.html#af1b5d38f3ba1bcacfbb7a89979af70e4">now</a>();</div>
|
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>  <span class="comment">// Rotate pending and remove expired published lists</span></div>
|
||||||
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>  </div>
|
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>  <span class="keywordtype">bool</span> good = <span class="keyword">true</span>;</div>
|
||||||
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& [pubKey, collection] : <a class="code" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a>)</div>
|
||||||
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>  </div>
|
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>  {</div>
|
||||||
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  <span class="comment">// Rotate pending and remove expired published lists</span></div>
|
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  {</div>
|
||||||
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>  <span class="keywordtype">bool</span> good = <span class="keyword">true</span>;</div>
|
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>  <span class="keyword">auto</span>& remaining = collection.remaining;</div>
|
||||||
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& [pubKey, collection] : <a class="code" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a>)</div>
|
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>  <span class="keyword">auto</span> <span class="keyword">const</span> firstIter = remaining.begin();</div>
|
||||||
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>  {</div>
|
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>  <span class="keyword">auto</span> iter = firstIter;</div>
|
||||||
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>  {</div>
|
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>  <span class="keywordflow">if</span> (iter != remaining.end() && iter->second.validFrom <= closeTime)</div>
|
||||||
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>  <span class="keyword">auto</span>& remaining = collection.remaining;</div>
|
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>  {</div>
|
||||||
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>  <span class="keyword">auto</span> <span class="keyword">const</span> firstIter = remaining.begin();</div>
|
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>  <span class="comment">// Find the LAST candidate that is ready to go live.</span></div>
|
||||||
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>  <span class="keyword">auto</span> iter = firstIter;</div>
|
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> next = <a class="codeRef" href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a>(iter); next != remaining.end() &&</div>
|
||||||
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>  <span class="keywordflow">if</span> (iter != remaining.end() && iter->second.validFrom <= closeTime)</div>
|
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>  next->second.validFrom <= closeTime;</div>
|
||||||
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  {</div>
|
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  ++iter, ++next)</div>
|
||||||
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>  <span class="comment">// Find the LAST candidate that is ready to go live.</span></div>
|
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>  {</div>
|
||||||
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> next = <a class="codeRef" href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a>(iter); next != remaining.end() &&</div>
|
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>  assert(<a class="codeRef" href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a>(iter) == next);</div>
|
||||||
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  next->second.validFrom <= closeTime;</div>
|
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  }</div>
|
||||||
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>  ++iter, ++next)</div>
|
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>  assert(iter != remaining.end());</div>
|
||||||
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>  {</div>
|
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>  </div>
|
||||||
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>  assert(<a class="codeRef" href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a>(iter) == next);</div>
|
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>  <span class="comment">// Rotate the pending list in to current</span></div>
|
||||||
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>  }</div>
|
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>  <span class="keyword">auto</span> sequence = iter->first;</div>
|
||||||
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>  assert(iter != remaining.end());</div>
|
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>  <span class="keyword">auto</span>& candidate = iter->second;</div>
|
||||||
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  </div>
|
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  <span class="keyword">auto</span>& <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a> = collection.current;</div>
|
||||||
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>  <span class="comment">// Rotate the pending list in to current</span></div>
|
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>  assert(candidate.validFrom <= closeTime);</div>
|
||||||
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  <span class="keyword">auto</span> sequence = iter->first;</div>
|
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  </div>
|
||||||
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>  <span class="keyword">auto</span>& candidate = iter->second;</div>
|
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>  <span class="keyword">auto</span> <span class="keyword">const</span> oldList = <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.list;</div>
|
||||||
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>  <span class="keyword">auto</span>& <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a> = collection.current;</div>
|
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>  <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a> = std::move(candidate);</div>
|
||||||
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  assert(candidate.validFrom <= closeTime);</div>
|
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  <span class="keywordflow">if</span> (collection.status != <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>)</div>
|
||||||
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>  </div>
|
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>  collection.status = <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>;</div>
|
||||||
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>  <span class="keyword">auto</span> <span class="keyword">const</span> oldList = <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.list;</div>
|
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>  assert(<a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.sequence == sequence);</div>
|
||||||
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>  <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a> = std::move(candidate);</div>
|
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>  <span class="comment">// If the list is expired, remove the validators so they don't</span></div>
|
||||||
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>  <span class="keywordflow">if</span> (collection.status != <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>)</div>
|
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>  <span class="comment">// get processed in. The expiration check below will do the rest</span></div>
|
||||||
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  collection.status = <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>;</div>
|
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  <span class="comment">// of the work</span></div>
|
||||||
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>  assert(<a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.sequence == sequence);</div>
|
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.validUntil <= closeTime)</div>
|
||||||
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>  <span class="comment">// If the list is expired, remove the validators so they don't</span></div>
|
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>  <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.list.clear();</div>
|
||||||
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>  <span class="comment">// get processed in. The expiration check below will do the rest</span></div>
|
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>  </div>
|
||||||
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>  <span class="comment">// of the work</span></div>
|
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>  <a class="code" href="classripple_1_1ValidatorList.html#a3728d8811726a5ffb23bcd5c21d235a3">updatePublisherList</a>(pubKey, <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>, oldList, lock);</div>
|
||||||
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.validUntil <= closeTime)</div>
|
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>  </div>
|
||||||
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>  <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.list.clear();</div>
|
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>  <span class="comment">// Only broadcast the current, which will consequently only</span></div>
|
||||||
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>  </div>
|
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>  <span class="comment">// send to peers that don't understand v2, or which are</span></div>
|
||||||
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  <a class="code" href="classripple_1_1ValidatorList.html#a3728d8811726a5ffb23bcd5c21d235a3">updatePublisherList</a>(pubKey, <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>, oldList, lock);</div>
|
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  <span class="comment">// unknown (unlikely). Those that do understand v2 should</span></div>
|
||||||
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>  </div>
|
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>  <span class="comment">// already have this list and are in the process of</span></div>
|
||||||
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  <span class="comment">// Only broadcast the current, which will consequently only</span></div>
|
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  <span class="comment">// switching themselves.</span></div>
|
||||||
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>  <span class="comment">// send to peers that don't understand v2, or which are</span></div>
|
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>  <a class="code" href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">broadcastBlobs</a>(</div>
|
||||||
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  <span class="comment">// unknown (unlikely). Those that do understand v2 should</span></div>
|
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  pubKey,</div>
|
||||||
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>  <span class="comment">// already have this list and are in the process of</span></div>
|
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>  collection,</div>
|
||||||
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>  <span class="comment">// switching themselves.</span></div>
|
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>  sequence,</div>
|
||||||
<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>  <a class="code" href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">broadcastBlobs</a>(</div>
|
<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>  <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.hash,</div>
|
||||||
<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>  pubKey,</div>
|
<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>  overlay,</div>
|
||||||
<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>  collection,</div>
|
<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>  hashRouter,</div>
|
||||||
<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>  sequence,</div>
|
<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>  <a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>);</div>
|
||||||
<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>  <a class="code" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>.hash,</div>
|
<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>  </div>
|
||||||
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>  overlay,</div>
|
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>  <span class="comment">// Erase any candidates that we skipped over, plus this one</span></div>
|
||||||
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>  hashRouter,</div>
|
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>  remaining.erase(firstIter, <a class="codeRef" href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a>(iter));</div>
|
||||||
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>  <a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>);</div>
|
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>  }</div>
|
||||||
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>  </div>
|
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>  }</div>
|
||||||
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>  <span class="comment">// Erase any candidates that we skipped over, plus this one</span></div>
|
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>  <span class="comment">// Remove if expired</span></div>
|
||||||
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>  remaining.erase(firstIter, <a class="codeRef" href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a>(iter));</div>
|
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>  <span class="keywordflow">if</span> (collection.status == <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a> &&</div>
|
||||||
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>  }</div>
|
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>  collection.current.validUntil <= closeTime)</div>
|
||||||
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  }</div>
|
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  {</div>
|
||||||
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>  <span class="comment">// Remove if expired</span></div>
|
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>  <a class="code" href="classripple_1_1ValidatorList.html#a9d3a6dfa4f7ffe2717513369298e7268">removePublisherList</a>(lock, pubKey, <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ac4bfb2a0bab0e91bc7dcfbe3bbec246e">PublisherStatus::expired</a>);</div>
|
||||||
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>  <span class="keywordflow">if</span> (collection.status == <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a> &&</div>
|
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>  ops.<a class="code" href="classripple_1_1NetworkOPs.html#a3b837bd8b8633d45d7e5f26961fab856">setUNLBlocked</a>();</div>
|
||||||
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>  collection.current.validUntil <= closeTime)</div>
|
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>  }</div>
|
||||||
<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>  {</div>
|
<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>  <span class="keywordflow">if</span> (collection.status != <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>)</div>
|
||||||
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>  <a class="code" href="classripple_1_1ValidatorList.html#a9d3a6dfa4f7ffe2717513369298e7268">removePublisherList</a>(lock, pubKey, <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ac4bfb2a0bab0e91bc7dcfbe3bbec246e">PublisherStatus::expired</a>);</div>
|
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>  good = <span class="keyword">false</span>;</div>
|
||||||
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>  ops.<a class="code" href="classripple_1_1NetworkOPs.html#a3b837bd8b8633d45d7e5f26961fab856">setUNLBlocked</a>();</div>
|
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>  }</div>
|
||||||
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>  }</div>
|
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>  <span class="keywordflow">if</span> (good)</div>
|
||||||
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>  <span class="keywordflow">if</span> (collection.status != <a class="code" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4ae4894ca167b08880bfc35862f18575eb">PublisherStatus::available</a>)</div>
|
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>  ops.<a class="code" href="classripple_1_1NetworkOPs.html#ace637a61664a15f70bc362f2ad1101e9">clearUNLBlocked</a>();</div>
|
||||||
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>  good = <span class="keyword">false</span>;</div>
|
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>  </div>
|
||||||
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>  }</div>
|
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>  <a class="code" href="structripple_1_1TrustChanges.html">TrustChanges</a> trustChanges;</div>
|
||||||
<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>  <span class="keywordflow">if</span> (good)</div>
|
<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>  </div>
|
||||||
<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>  ops.<a class="code" href="classripple_1_1NetworkOPs.html#ace637a61664a15f70bc362f2ad1101e9">clearUNLBlocked</a>();</div>
|
<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>  <span class="keyword">auto</span> it = <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.cbegin();</div>
|
||||||
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>  </div>
|
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>  <span class="keywordflow">while</span> (it != <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.cend())</div>
|
||||||
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>  <a class="code" href="structripple_1_1TrustChanges.html">TrustChanges</a> trustChanges;</div>
|
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>  {</div>
|
||||||
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>  </div>
|
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a>.count(*it) || <a class="code" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a>.<a class="code" href="classripple_1_1ManifestCache.html#a6494e744b90cbecd735b460fcd7be82f">revoked</a>(*it))</div>
|
||||||
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  <span class="keyword">auto</span> it = <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.cbegin();</div>
|
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  {</div>
|
||||||
<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>  <span class="keywordflow">while</span> (it != <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.cend())</div>
|
<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>  trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">removed</a>.insert(<a class="code" href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">calcNodeID</a>(*it));</div>
|
||||||
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>  {</div>
|
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>  it = <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.erase(it);</div>
|
||||||
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a>.count(*it) || <a class="code" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a>.<a class="code" href="classripple_1_1ManifestCache.html#a6494e744b90cbecd735b460fcd7be82f">revoked</a>(*it))</div>
|
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>  }</div>
|
||||||
<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>  {</div>
|
<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>  <span class="keywordflow">else</span></div>
|
||||||
<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>  trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">removed</a>.insert(<a class="code" href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">calcNodeID</a>(*it));</div>
|
<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>  {</div>
|
||||||
<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>  it = <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.erase(it);</div>
|
<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>  ++it;</div>
|
||||||
<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>  }</div>
|
<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>  }</div>
|
||||||
<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>  <span class="keywordflow">else</span></div>
|
<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>  }</div>
|
||||||
<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>  {</div>
|
<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>  </div>
|
||||||
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>  ++it;</div>
|
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& val : <a class="code" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a>)</div>
|
||||||
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>  }</div>
|
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>  {</div>
|
||||||
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>  }</div>
|
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a>.<a class="code" href="classripple_1_1ManifestCache.html#a6494e744b90cbecd735b460fcd7be82f">revoked</a>(val.first) &&</div>
|
||||||
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>  </div>
|
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>  <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.emplace(val.first).second)</div>
|
||||||
<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& val : <a class="code" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a>)</div>
|
<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>  trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a0c0a50258cfb5466d79bcff91a8d5c00">added</a>.insert(<a class="code" href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">calcNodeID</a>(val.first));</div>
|
||||||
<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>  {</div>
|
<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>  }</div>
|
||||||
<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a>.<a class="code" href="classripple_1_1ManifestCache.html#a6494e744b90cbecd735b460fcd7be82f">revoked</a>(val.first) &&</div>
|
<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>  </div>
|
||||||
<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>  <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.emplace(val.first).second)</div>
|
<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>  <span class="comment">// If there were any changes, we need to update the ephemeral signing</span></div>
|
||||||
<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>  trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a0c0a50258cfb5466d79bcff91a8d5c00">added</a>.insert(<a class="code" href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">calcNodeID</a>(val.first));</div>
|
<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>  <span class="comment">// keys:</span></div>
|
||||||
<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>  }</div>
|
<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>  <span class="keywordflow">if</span> (!trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a0c0a50258cfb5466d79bcff91a8d5c00">added</a>.empty() || !trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">removed</a>.empty())</div>
|
||||||
<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  </div>
|
<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  {</div>
|
||||||
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>  <span class="comment">// If there were any changes, we need to update the ephemeral signing</span></div>
|
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>  <a class="code" href="classripple_1_1ValidatorList.html#ae06a469121f9f99ed9f3049e46d0206c">trustedSigningKeys_</a>.clear();</div>
|
||||||
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>  <span class="comment">// keys:</span></div>
|
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>  </div>
|
||||||
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>  <span class="keywordflow">if</span> (!trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a0c0a50258cfb5466d79bcff91a8d5c00">added</a>.empty() || !trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">removed</a>.empty())</div>
|
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& k : <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>)</div>
|
||||||
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  {</div>
|
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  <a class="code" href="classripple_1_1ValidatorList.html#ae06a469121f9f99ed9f3049e46d0206c">trustedSigningKeys_</a>.insert(<a class="code" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a>.<a class="code" href="classripple_1_1ManifestCache.html#a8409a7089c3e04f972f1513a54576133">getSigningKey</a>(k));</div>
|
||||||
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  <a class="code" href="classripple_1_1ValidatorList.html#ae06a469121f9f99ed9f3049e46d0206c">trustedSigningKeys_</a>.clear();</div>
|
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  }</div>
|
||||||
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>  </div>
|
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>  </div>
|
||||||
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& k : <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>)</div>
|
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>())</div>
|
||||||
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>  <a class="code" href="classripple_1_1ValidatorList.html#ae06a469121f9f99ed9f3049e46d0206c">trustedSigningKeys_</a>.insert(<a class="code" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a>.<a class="code" href="classripple_1_1ManifestCache.html#a8409a7089c3e04f972f1513a54576133">getSigningKey</a>(k));</div>
|
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>  << <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.size() << <span class="stringliteral">" of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a>.size()</div>
|
||||||
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>  }</div>
|
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>  << <span class="stringliteral">" listed validators eligible for inclusion in the trusted set"</span>;</div>
|
||||||
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>  </div>
|
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>  </div>
|
||||||
<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>())</div>
|
<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>  <span class="keyword">auto</span> <span class="keyword">const</span> unlSize = <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.size();</div>
|
||||||
<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>  << <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.size() << <span class="stringliteral">" of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a>.size()</div>
|
<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>  <span class="keyword">auto</span> effectiveUnlSize = unlSize;</div>
|
||||||
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  << <span class="stringliteral">" listed validators eligible for inclusion in the trusted set"</span>;</div>
|
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  <span class="keyword">auto</span> seenSize = seenValidators.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/size.html">size</a>();</div>
|
||||||
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>  </div>
|
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>.empty())</div>
|
||||||
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>  <span class="keyword">auto</span> <span class="keyword">const</span> unlSize = <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>.size();</div>
|
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>  {</div>
|
||||||
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>  <span class="keyword">auto</span> effectiveUnlSize = unlSize;</div>
|
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& k : <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>)</div>
|
||||||
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>  <span class="keyword">auto</span> seenSize = seenValidators.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/size.html">size</a>();</div>
|
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>  {</div>
|
||||||
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>.empty())</div>
|
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>.count(k))</div>
|
||||||
<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>  {</div>
|
<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>  --effectiveUnlSize;</div>
|
||||||
<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& k : <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>)</div>
|
<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>  }</div>
|
||||||
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  {</div>
|
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> negUnlNodeIDs;</div>
|
||||||
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>.count(k))</div>
|
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& k : <a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>)</div>
|
||||||
<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>  --effectiveUnlSize;</div>
|
<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>  {</div>
|
||||||
<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>  }</div>
|
<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>  negUnlNodeIDs.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/emplace.html">emplace</a>(<a class="code" href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">calcNodeID</a>(k));</div>
|
||||||
<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<NodeID></a> negUnlNodeIDs;</div>
|
<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>  }</div>
|
||||||
<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& k : <a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>)</div>
|
<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& nid : seenValidators)</div>
|
||||||
<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>  {</div>
|
<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>  {</div>
|
||||||
<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>  negUnlNodeIDs.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/emplace.html">emplace</a>(<a class="code" href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">calcNodeID</a>(k));</div>
|
<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>  <span class="keywordflow">if</span> (negUnlNodeIDs.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/count.html">count</a>(nid))</div>
|
||||||
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>  }</div>
|
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>  --seenSize;</div>
|
||||||
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& nid : seenValidators)</div>
|
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>  }</div>
|
||||||
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>  {</div>
|
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>  }</div>
|
||||||
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>  <span class="keywordflow">if</span> (negUnlNodeIDs.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set/count.html">count</a>(nid))</div>
|
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>  <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a> = <a class="code" href="classripple_1_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">calculateQuorum</a>(unlSize, effectiveUnlSize, seenSize);</div>
|
||||||
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>  --seenSize;</div>
|
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>  </div>
|
||||||
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>  }</div>
|
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"Using quorum of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a> << <span class="stringliteral">" for new set of "</span></div>
|
||||||
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>  }</div>
|
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>  << unlSize << <span class="stringliteral">" trusted validators ("</span></div>
|
||||||
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>  <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a> = <a class="code" href="classripple_1_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">calculateQuorum</a>(unlSize, effectiveUnlSize, seenSize);</div>
|
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>  << trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a0c0a50258cfb5466d79bcff91a8d5c00">added</a>.size() << <span class="stringliteral">" added, "</span></div>
|
||||||
<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  </div>
|
<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  << trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">removed</a>.size() << <span class="stringliteral">" removed)"</span>;</div>
|
||||||
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"Using quorum of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a> << <span class="stringliteral">" for new set of "</span></div>
|
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>  </div>
|
||||||
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>  << unlSize << <span class="stringliteral">" trusted validators ("</span></div>
|
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>  <span class="keywordflow">if</span> (unlSize < <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a>)</div>
|
||||||
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>  << trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a0c0a50258cfb5466d79bcff91a8d5c00">added</a>.size() << <span class="stringliteral">" added, "</span></div>
|
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>  {</div>
|
||||||
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>  << trustChanges.<a class="code" href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">removed</a>.size() << <span class="stringliteral">" removed)"</span>;</div>
|
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) << <span class="stringliteral">"New quorum of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a></div>
|
||||||
<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>  </div>
|
<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>  << <span class="stringliteral">" exceeds the number of trusted validators ("</span></div>
|
||||||
<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>  <span class="keywordflow">if</span> (unlSize < <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a>)</div>
|
<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>  << unlSize << <span class="stringliteral">")"</span>;</div>
|
||||||
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>  {</div>
|
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>  }</div>
|
||||||
<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>  JLOG(<a class="code" href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">j_</a>.<a class="code" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) << <span class="stringliteral">"New quorum of "</span> << <a class="code" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a></div>
|
<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>  </div>
|
||||||
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>  << <span class="stringliteral">" exceeds the number of trusted validators ("</span></div>
|
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a>.size() && unlSize == 0)</div>
|
||||||
<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>  << unlSize << <span class="stringliteral">")"</span>;</div>
|
<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>  {</div>
|
||||||
<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>  }</div>
|
<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>  <span class="comment">// No validators. Lock down.</span></div>
|
||||||
<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>  </div>
|
<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>  ops.<a class="code" href="classripple_1_1NetworkOPs.html#a3b837bd8b8633d45d7e5f26961fab856">setUNLBlocked</a>();</div>
|
||||||
<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a>.size() && unlSize == 0)</div>
|
<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>  }</div>
|
||||||
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>  {</div>
|
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>  </div>
|
||||||
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  <span class="comment">// No validators. Lock down.</span></div>
|
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  <span class="keywordflow">return</span> trustChanges;</div>
|
||||||
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>  ops.<a class="code" href="classripple_1_1NetworkOPs.html#a3b837bd8b8633d45d7e5f26961fab856">setUNLBlocked</a>();</div>
|
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> }</div>
|
||||||
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>  }</div>
|
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>  </div>
|
||||||
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>  </div>
|
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<PublicKey></a></div>
|
||||||
<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>  <span class="keywordflow">return</span> trustChanges;</div>
|
<div class="line"><a name="l01933"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3"> 1933</a></span> <a class="code" href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">ValidatorList::getTrustedMasterKeys</a>()<span class="keyword"> const</span></div>
|
||||||
<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> }</div>
|
<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="keyword"></span>{</div>
|
||||||
<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>  </div>
|
<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a> read_lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
||||||
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<PublicKey></a></div>
|
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>;</div>
|
||||||
<div class="line"><a name="l01937"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3"> 1937</a></span> <a class="code" href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">ValidatorList::getTrustedMasterKeys</a>()<span class="keyword"> const</span></div>
|
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> }</div>
|
||||||
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="keyword"></span>{</div>
|
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>  </div>
|
||||||
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a> read_lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<PublicKey></a></div>
|
||||||
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a>;</div>
|
<div class="line"><a name="l01940"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5"> 1940</a></span> <a class="code" href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">ValidatorList::getNegativeUNL</a>()<span class="keyword"> const</span></div>
|
||||||
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> }</div>
|
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="keyword"></span>{</div>
|
||||||
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>  </div>
|
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a> read_lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
||||||
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<PublicKey></a></div>
|
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>;</div>
|
||||||
<div class="line"><a name="l01944"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5"> 1944</a></span> <a class="code" href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">ValidatorList::getNegativeUNL</a>()<span class="keyword"> const</span></div>
|
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> }</div>
|
||||||
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="keyword"></span>{</div>
|
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>  </div>
|
||||||
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a> read_lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="keywordtype">void</span></div>
|
||||||
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>;</div>
|
<div class="line"><a name="l01947"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2"> 1947</a></span> <a class="code" href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">ValidatorList::setNegativeUNL</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<PublicKey></a> <span class="keyword">const</span>& negUnl)</div>
|
||||||
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> }</div>
|
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> {</div>
|
||||||
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>  </div>
|
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
||||||
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="keywordtype">void</span></div>
|
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>  <a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a> = negUnl;</div>
|
||||||
<div class="line"><a name="l01951"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2"> 1951</a></span> <a class="code" href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">ValidatorList::setNegativeUNL</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set<PublicKey></a> <span class="keyword">const</span>& negUnl)</div>
|
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> }</div>
|
||||||
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> {</div>
|
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>  </div>
|
||||||
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::shared_ptr<STValidation></a>></div>
|
||||||
<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>  <a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a> = negUnl;</div>
|
<div class="line"><a name="l01954"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32"> 1954</a></span> <a class="code" href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ValidatorList::negativeUNLFilter</a>(</div>
|
||||||
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> }</div>
|
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<STValidation></a>>&& validations)<span class="keyword"> const</span></div>
|
||||||
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>  </div>
|
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="keyword"></span>{</div>
|
||||||
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::shared_ptr<STValidation></a>></div>
|
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>  <span class="comment">// Remove validations that are from validators on the negative UNL.</span></div>
|
||||||
<div class="line"><a name="l01958"></a><span class="lineno"><a class="line" href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32"> 1958</a></span> <a class="code" href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ValidatorList::negativeUNLFilter</a>(</div>
|
<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>  <span class="keyword">auto</span> ret = std::move(validations);</div>
|
||||||
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<STValidation></a>>&& validations)<span class="keyword"> const</span></div>
|
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>  </div>
|
||||||
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="keyword"></span>{</div>
|
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a> read_lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
||||||
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>  <span class="comment">// Remove validations that are from validators on the negative UNL.</span></div>
|
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>.empty())</div>
|
||||||
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>  <span class="keyword">auto</span> ret = std::move(validations);</div>
|
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>  {</div>
|
||||||
<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>  </div>
|
<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>  ret.erase(</div>
|
||||||
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a> read_lock{<a class="code" href="classripple_1_1ValidatorList.html#a94f8763278cc8e85a241cfccaed69183">mutex_</a>};</div>
|
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/remove.html">std::remove_if</a>(</div>
|
||||||
<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a>.empty())</div>
|
<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>  ret.begin(),</div>
|
||||||
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>  {</div>
|
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>  ret.end(),</div>
|
||||||
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  ret.erase(</div>
|
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  [&](<span class="keyword">auto</span> <span class="keyword">const</span>& v) -> <span class="keywordtype">bool</span> {</div>
|
||||||
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/remove.html">std::remove_if</a>(</div>
|
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>  if (auto const masterKey =</div>
|
||||||
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  ret.begin(),</div>
|
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  getTrustedKey(read_lock, v->getSignerPublic());</div>
|
||||||
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>  ret.end(),</div>
|
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>  masterKey)</div>
|
||||||
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  [&](<span class="keyword">auto</span> <span class="keyword">const</span>& v) -> <span class="keywordtype">bool</span> {</div>
|
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  {</div>
|
||||||
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>  if (auto const masterKey =</div>
|
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>  return negativeUNL_.count(*masterKey);</div>
|
||||||
<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>  getTrustedKey(read_lock, v->getSignerPublic());</div>
|
<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>  }</div>
|
||||||
<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>  masterKey)</div>
|
<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>  <span class="keywordflow">else</span></div>
|
||||||
<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>  {</div>
|
<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>  {</div>
|
||||||
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>  return negativeUNL_.count(*masterKey);</div>
|
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>  return false;</div>
|
||||||
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>  }</div>
|
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>  }</div>
|
||||||
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>  <span class="keywordflow">else</span></div>
|
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>  }),</div>
|
||||||
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>  {</div>
|
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>  ret.end());</div>
|
||||||
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>  return false;</div>
|
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>  }</div>
|
||||||
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>  }</div>
|
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>  </div>
|
||||||
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  }),</div>
|
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  <span class="keywordflow">return</span> ret;</div>
|
||||||
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>  ret.end());</div>
|
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> }</div>
|
||||||
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>  }</div>
|
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>  </div>
|
||||||
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>  </div>
|
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> } <span class="comment">// namespace ripple</span></div>
|
||||||
<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>  <span class="keywordflow">return</span> ret;</div>
|
|
||||||
<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> }</div>
|
|
||||||
<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>  </div>
|
|
||||||
<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> } <span class="comment">// namespace ripple</span></div>
|
|
||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<div class="ttc" id="aclassJson_1_1Value_html_aff51d8b52979ca06cf9d909accd5f695"><div class="ttname"><a href="classJson_1_1Value.html#aff51d8b52979ca06cf9d909accd5f695">Json::Value::isInt</a></div><div class="ttdeci">bool isInt() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00979">json_value.cpp:979</a></div></div>
|
<div class="ttc" id="aclassJson_1_1Value_html_aff51d8b52979ca06cf9d909accd5f695"><div class="ttname"><a href="classJson_1_1Value.html#aff51d8b52979ca06cf9d909accd5f695">Json::Value::isInt</a></div><div class="ttdeci">bool isInt() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00979">json_value.cpp:979</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1NetworkOPs_html"><div class="ttname"><a href="classripple_1_1NetworkOPs.html">ripple::NetworkOPs</a></div><div class="ttdoc">Provides server functionality for clients.</div><div class="ttdef"><b>Definition:</b> <a href="NetworkOPs_8h_source.html#l00086">NetworkOPs.h:86</a></div></div>
|
<div class="ttc" id="aclassripple_1_1NetworkOPs_html"><div class="ttname"><a href="classripple_1_1NetworkOPs.html">ripple::NetworkOPs</a></div><div class="ttdoc">Provides server functionality for clients.</div><div class="ttdef"><b>Definition:</b> <a href="NetworkOPs_8h_source.html#l00086">NetworkOPs.h:86</a></div></div>
|
||||||
@@ -2096,14 +2092,14 @@ $(function() {
|
|||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a7bdc06d223ec320799b7b09fe38fb16a"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a7bdc06d223ec320799b7b09fe38fb16a">ripple::ValidatorList::applyListsAndBroadcast</a></div><div class="ttdeci">PublisherListStats applyListsAndBroadcast(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, NetworkOPs &networkOPs)</div><div class="ttdoc">Apply multiple published lists of public keys, then broadcast it to all peers that have not seen it o...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00869">ValidatorList.cpp:869</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a7bdc06d223ec320799b7b09fe38fb16a"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a7bdc06d223ec320799b7b09fe38fb16a">ripple::ValidatorList::applyListsAndBroadcast</a></div><div class="ttdeci">PublisherListStats applyListsAndBroadcast(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, NetworkOPs &networkOPs)</div><div class="ttdoc">Apply multiple published lists of public keys, then broadcast it to all peers that have not seen it o...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00869">ValidatorList.cpp:869</a></div></div>
|
||||||
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a90d8cf623e6011f148956964d0e09b9c"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a90d8cf623e6011f148956964d0e09b9c">ripple::ValidatorList::trustedPublisher</a></div><div class="ttdeci">bool trustedPublisher(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is a trusted publisher.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01404">ValidatorList.cpp:1404</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a90d8cf623e6011f148956964d0e09b9c"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a90d8cf623e6011f148956964d0e09b9c">ripple::ValidatorList::trustedPublisher</a></div><div class="ttdeci">bool trustedPublisher(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is a trusted publisher.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01404">ValidatorList.cpp:1404</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a3749eaabef35e6178bc74fc8dfe6f4a2"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">ripple::ValidatorList::setNegativeUNL</a></div><div class="ttdeci">void setNegativeUNL(hash_set< PublicKey > const &negUnl)</div><div class="ttdoc">set the Negative UNL with validators' master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01951">ValidatorList.cpp:1951</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a3749eaabef35e6178bc74fc8dfe6f4a2"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">ripple::ValidatorList::setNegativeUNL</a></div><div class="ttdeci">void setNegativeUNL(hash_set< PublicKey > const &negUnl)</div><div class="ttdoc">set the Negative UNL with validators' master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01947">ValidatorList.cpp:1947</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListStats_html"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ripple::ValidatorList::PublisherListStats</a></div><div class="ttdoc">Describes the result of processing a Validator List (UNL), including some of the information from the...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00278">ValidatorList.h:278</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListStats_html"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ripple::ValidatorList::PublisherListStats</a></div><div class="ttdoc">Describes the result of processing a Validator List (UNL), including some of the information from the...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00278">ValidatorList.h:278</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a6aed606d8af8e7d638308232efd15f11"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">ripple::ValidatorList::negativeUNL_</a></div><div class="ttdeci">hash_set< PublicKey > negativeUNL_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00253">ValidatorList.h:253</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a6aed606d8af8e7d638308232efd15f11"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">ripple::ValidatorList::negativeUNL_</a></div><div class="ttdeci">hash_set< PublicKey > negativeUNL_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00253">ValidatorList.h:253</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af3c12788fe36cb6f48201d3c5a688d06"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af3c12788fe36cb6f48201d3c5a688d06">ripple::ValidatorList::filePrefix_</a></div><div class="ttdeci">static const std::string filePrefix_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00261">ValidatorList.h:261</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af3c12788fe36cb6f48201d3c5a688d06"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af3c12788fe36cb6f48201d3c5a688d06">ripple::ValidatorList::filePrefix_</a></div><div class="ttdeci">static const std::string filePrefix_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00261">ValidatorList.h:261</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>
|
<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>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_acedaeedad936d4e850ade479e3de91cf"><div class="ttname"><a href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">ripple::ValidatorList::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00228">ValidatorList.h:228</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_acedaeedad936d4e850ade479e3de91cf"><div class="ttname"><a href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">ripple::ValidatorList::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00228">ValidatorList.h:228</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html_ab1eaafc17bdc547f85f4898d5535c6e5"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html#ab1eaafc17bdc547f85f4898d5535c6e5">ripple::ValidatorList::PublisherList::validUntil</a></div><div class="ttdeci">TimeKeeper::time_point validUntil</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00182">ValidatorList.h:182</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html_ab1eaafc17bdc547f85f4898d5535c6e5"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html#ab1eaafc17bdc547f85f4898d5535c6e5">ripple::ValidatorList::PublisherList::validUntil</a></div><div class="ttdeci">TimeKeeper::time_point validUntil</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00182">ValidatorList.h:182</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a22bb356f3dff23879344acd8121abbe3"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">ripple::ValidatorList::getTrustedMasterKeys</a></div><div class="ttdeci">hash_set< PublicKey > getTrustedMasterKeys() const</div><div class="ttdoc">get the trusted master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01937">ValidatorList.cpp:1937</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a22bb356f3dff23879344acd8121abbe3"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">ripple::ValidatorList::getTrustedMasterKeys</a></div><div class="ttdeci">hash_set< PublicKey > getTrustedMasterKeys() const</div><div class="ttdoc">get the trusted master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01933">ValidatorList.cpp:1933</a></div></div>
|
||||||
<div class="ttc" id="aemplace_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/optional/emplace.html">std::optional::emplace</a></div><div class="ttdeci">T emplace(T... args)</div></div>
|
<div class="ttc" id="aemplace_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/optional/emplace.html">std::optional::emplace</a></div><div class="ttdeci">T emplace(T... args)</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af2dde165e04bd3a99a397fe3541f341e"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af2dde165e04bd3a99a397fe3541f341e">ripple::ValidatorList::buildValidatorListMessages</a></div><div class="ttdeci">static std::pair< std::size_t, std::size_t > buildValidatorListMessages(std::size_t messageVersion, std::uint64_t peerSequence, std::size_t maxSequence, std::uint32_t rawVersion, std::string const &rawManifest, std::map< std::size_t, ValidatorBlobInfo > const &blobInfos, std::vector< MessageWithHash > &messages, std::size_t maxSize=maximiumMessageSize)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00612">ValidatorList.cpp:612</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af2dde165e04bd3a99a397fe3541f341e"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af2dde165e04bd3a99a397fe3541f341e">ripple::ValidatorList::buildValidatorListMessages</a></div><div class="ttdeci">static std::pair< std::size_t, std::size_t > buildValidatorListMessages(std::size_t messageVersion, std::uint64_t peerSequence, std::size_t maxSequence, std::uint32_t rawVersion, std::string const &rawManifest, std::map< std::size_t, ValidatorBlobInfo > const &blobInfos, std::vector< MessageWithHash > &messages, std::size_t maxSize=maximiumMessageSize)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00612">ValidatorList.cpp:612</a></div></div>
|
||||||
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00327">Journal.h:327</a></div></div>
|
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00327">Journal.h:327</a></div></div>
|
||||||
@@ -2148,7 +2144,7 @@ $(function() {
|
|||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a923f3aa3898a824b4b6947abd88502c5"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a923f3aa3898a824b4b6947abd88502c5">ripple::ValidatorList::getListedKey</a></div><div class="ttdeci">std::optional< PublicKey > getListedKey(PublicKey const &identity) const</div><div class="ttdoc">Returns listed master public if public key is included on any lists.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01374">ValidatorList.cpp:1374</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a923f3aa3898a824b4b6947abd88502c5"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a923f3aa3898a824b4b6947abd88502c5">ripple::ValidatorList::getListedKey</a></div><div class="ttdeci">std::optional< PublicKey > getListedKey(PublicKey const &identity) const</div><div class="ttdoc">Returns listed master public if public key is included on any lists.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01374">ValidatorList.cpp:1374</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorBlobInfo_html"><div class="ttname"><a href="structripple_1_1ValidatorBlobInfo.html">ripple::ValidatorBlobInfo</a></div><div class="ttdoc">Used to represent the information stored in the blobs_v2 Json array.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00116">ValidatorList.h:116</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorBlobInfo_html"><div class="ttname"><a href="structripple_1_1ValidatorBlobInfo.html">ripple::ValidatorBlobInfo</a></div><div class="ttdoc">Used to represent the information stored in the blobs_v2 Json array.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00116">ValidatorList.h:116</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1TrustChanges_html_a968f2c3bdc3420ca645ad54a5be5c6d9"><div class="ttname"><a href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">ripple::TrustChanges::removed</a></div><div class="ttdeci">hash_set< NodeID > removed</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00112">ValidatorList.h:112</a></div></div>
|
<div class="ttc" id="astructripple_1_1TrustChanges_html_a968f2c3bdc3420ca645ad54a5be5c6d9"><div class="ttname"><a href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">ripple::TrustChanges::removed</a></div><div class="ttdeci">hash_set< NodeID > removed</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00112">ValidatorList.h:112</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aa4813b41483e2df542ce2731fb7b5f5d"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">ripple::ValidatorList::updateTrusted</a></div><div class="ttdeci">TrustChanges updateTrusted(hash_set< NodeID > const &seenValidators, NetClock::time_point closeTime, NetworkOPs &ops, Overlay &overlay, HashRouter &hashRouter)</div><div class="ttdoc">Update trusted nodes.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01773">ValidatorList.cpp:1773</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aa4813b41483e2df542ce2731fb7b5f5d"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">ripple::ValidatorList::updateTrusted</a></div><div class="ttdeci">TrustChanges updateTrusted(hash_set< NodeID > const &seenValidators, NetClock::time_point closeTime, NetworkOPs &ops, Overlay &overlay, HashRouter &hashRouter)</div><div class="ttdoc">Update trusted nodes.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01769">ValidatorList.cpp:1769</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListCollection_html_a4efb18d223a1910d123c99e09c1a524c"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListCollection.html#a4efb18d223a1910d123c99e09c1a524c">ripple::ValidatorList::PublisherListCollection::remaining</a></div><div class="ttdeci">std::map< std::size_t, PublisherList > remaining</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00216">ValidatorList.h:216</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListCollection_html_a4efb18d223a1910d123c99e09c1a524c"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListCollection.html#a4efb18d223a1910d123c99e09c1a524c">ripple::ValidatorList::PublisherListCollection::remaining</a></div><div class="ttdeci">std::map< std::size_t, PublisherList > remaining</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00216">ValidatorList.h:216</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af8fe24acb044cf9b928d14a1e84b63ac"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af8fe24acb044cf9b928d14a1e84b63ac">ripple::ValidatorList::publisherManifests_</a></div><div class="ttdeci">ManifestCache & publisherManifests_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00225">ValidatorList.h:225</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af8fe24acb044cf9b928d14a1e84b63ac"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af8fe24acb044cf9b928d14a1e84b63ac">ripple::ValidatorList::publisherManifests_</a></div><div class="ttdeci">ManifestCache & publisherManifests_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00225">ValidatorList.h:225</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0db3ac667949c8002894beb011f7f139"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">ripple::ValidatorList::broadcastBlobs</a></div><div class="ttdeci">static void broadcastBlobs(PublicKey const &publisherKey, PublisherListCollection const &lists, std::size_t maxSequence, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00802">ValidatorList.cpp:802</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0db3ac667949c8002894beb011f7f139"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">ripple::ValidatorList::broadcastBlobs</a></div><div class="ttdeci">static void broadcastBlobs(PublicKey const &publisherKey, PublisherListCollection const &lists, std::size_t maxSequence, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00802">ValidatorList.cpp:802</a></div></div>
|
||||||
@@ -2184,7 +2180,7 @@ $(function() {
|
|||||||
<div class="ttc" id="aceil_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/ceil.html">std::ceil</a></div><div class="ttdeci">T ceil(T... args)</div></div>
|
<div class="ttc" id="aceil_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/ceil.html">std::ceil</a></div><div class="ttdeci">T ceil(T... args)</div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_a8a16d6f665a032453ec4cbfca01929b6afedb2d84cafe20862cb4399751a8a7e3"><div class="ttname"><a href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6afedb2d84cafe20862cb4399751a8a7e3">ripple::ManifestDisposition::invalid</a></div><div class="ttdeci">@ invalid</div><div class="ttdoc">Timely, but invalid signature.</div></div>
|
<div class="ttc" id="anamespaceripple_html_a8a16d6f665a032453ec4cbfca01929b6afedb2d84cafe20862cb4399751a8a7e3"><div class="ttname"><a href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6afedb2d84cafe20862cb4399751a8a7e3">ripple::ManifestDisposition::invalid</a></div><div class="ttdeci">@ invalid</div><div class="ttdoc">Timely, but invalid signature.</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1Peer_html_a35b25d5a662db9a534ac4a972a8ba6b3"><div class="ttname"><a href="classripple_1_1Peer.html#a35b25d5a662db9a534ac4a972a8ba6b3">ripple::Peer::getRemoteAddress</a></div><div class="ttdeci">virtual beast::IP::Endpoint getRemoteAddress() const =0</div></div>
|
<div class="ttc" id="aclassripple_1_1Peer_html_a35b25d5a662db9a534ac4a972a8ba6b3"><div class="ttname"><a href="classripple_1_1Peer.html#a35b25d5a662db9a534ac4a972a8ba6b3">ripple::Peer::getRemoteAddress</a></div><div class="ttdeci">virtual beast::IP::Endpoint getRemoteAddress() const =0</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0937f06a5eddf696521deaef47192a32"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ripple::ValidatorList::negativeUNLFilter</a></div><div class="ttdeci">std::vector< std::shared_ptr< STValidation > > negativeUNLFilter(std::vector< std::shared_ptr< STValidation >> &&validations) const</div><div class="ttdoc">Remove validations that are from validators on the negative UNL.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01958">ValidatorList.cpp:1958</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0937f06a5eddf696521deaef47192a32"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ripple::ValidatorList::negativeUNLFilter</a></div><div class="ttdeci">std::vector< std::shared_ptr< STValidation > > negativeUNLFilter(std::vector< std::shared_ptr< STValidation >> &&validations) const</div><div class="ttdoc">Remove validations that are from validators on the negative UNL.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01954">ValidatorList.cpp:1954</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a74578a60966c12996799fd9784d66741"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a74578a60966c12996799fd9784d66741">ripple::ValidatorList::expires</a></div><div class="ttdeci">std::optional< TimeKeeper::time_point > expires() const</div><div class="ttdoc">Return the time when the validator list will expire.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01500">ValidatorList.cpp:1500</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a74578a60966c12996799fd9784d66741"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a74578a60966c12996799fd9784d66741">ripple::ValidatorList::expires</a></div><div class="ttdeci">std::optional< TimeKeeper::time_point > expires() const</div><div class="ttdoc">Return the time when the validator list will expire.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01500">ValidatorList.cpp:1500</a></div></div>
|
||||||
<div class="ttc" id="aclassJson_1_1Value_html_a1627eb9d6568d6d0252fa8bb711c0a59"><div class="ttname"><a href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">Json::Value::isArray</a></div><div class="ttdeci">bool isArray() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01015">json_value.cpp:1015</a></div></div>
|
<div class="ttc" id="aclassJson_1_1Value_html_a1627eb9d6568d6d0252fa8bb711c0a59"><div class="ttname"><a href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">Json::Value::isArray</a></div><div class="ttdeci">bool isArray() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01015">json_value.cpp:1015</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a79545d89d7c7c5bfef7f15ce0510577b"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">ripple::ValidatorList::calculateQuorum</a></div><div class="ttdeci">std::size_t calculateQuorum(std::size_t unlSize, std::size_t effectiveUnlSize, std::size_t seenSize)</div><div class="ttdoc">Return quorum for trusted validator set.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01708">ValidatorList.cpp:1708</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a79545d89d7c7c5bfef7f15ce0510577b"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">ripple::ValidatorList::calculateQuorum</a></div><div class="ttdeci">std::size_t calculateQuorum(std::size_t unlSize, std::size_t effectiveUnlSize, std::size_t seenSize)</div><div class="ttdoc">Return quorum for trusted validator set.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01708">ValidatorList.cpp:1708</a></div></div>
|
||||||
@@ -2237,7 +2233,7 @@ $(function() {
|
|||||||
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
|
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a9de7a870beb3104dc8320d6367b7f7e8"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a9de7a870beb3104dc8320d6367b7f7e8">ripple::ValidatorList::trusted</a></div><div class="ttdeci">bool trusted(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is trusted.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01367">ValidatorList.cpp:1367</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a9de7a870beb3104dc8320d6367b7f7e8"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a9de7a870beb3104dc8320d6367b7f7e8">ripple::ValidatorList::trusted</a></div><div class="ttdeci">bool trusted(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is trusted.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01367">ValidatorList.cpp:1367</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a623a1124f621b9ee5745bd22094b4acb"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">ripple::ValidatorList::trustedMasterKeys_</a></div><div class="ttdeci">hash_set< PublicKey > trustedMasterKeys_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00243">ValidatorList.h:243</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a623a1124f621b9ee5745bd22094b4acb"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">ripple::ValidatorList::trustedMasterKeys_</a></div><div class="ttdeci">hash_set< PublicKey > trustedMasterKeys_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00243">ValidatorList.h:243</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_afef3dd7af8c40b51da43a945f632b4c5"><div class="ttname"><a href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">ripple::ValidatorList::getNegativeUNL</a></div><div class="ttdeci">hash_set< PublicKey > getNegativeUNL() const</div><div class="ttdoc">get the master public keys of Negative UNL validators</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01944">ValidatorList.cpp:1944</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_afef3dd7af8c40b51da43a945f632b4c5"><div class="ttname"><a href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">ripple::ValidatorList::getNegativeUNL</a></div><div class="ttdeci">hash_set< PublicKey > getNegativeUNL() const</div><div class="ttdoc">get the master public keys of Negative UNL validators</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01940">ValidatorList.cpp:1940</a></div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_aaf9d6587e02c610e84a029ad5b5e17b4"><div class="ttname"><a href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4">ripple::PublisherStatus</a></div><div class="ttdeci">PublisherStatus</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00087">ValidatorList.h:87</a></div></div>
|
<div class="ttc" id="anamespaceripple_html_aaf9d6587e02c610e84a029ad5b5e17b4"><div class="ttname"><a href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4">ripple::PublisherStatus</a></div><div class="ttdeci">PublisherStatus</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00087">ValidatorList.h:87</a></div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_a4c908de9e211941a49282147bdc6f076"><div class="ttname"><a href="namespaceripple.html#a4c908de9e211941a49282147bdc6f076">ripple::splitMessage</a></div><div class="ttdeci">std::size_t splitMessage(std::vector< ValidatorList::MessageWithHash > &messages, protocol::TMValidatorListCollection const &largeMsg, std::size_t maxSize, std::size_t begin=0, std::size_t end=0)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00456">ValidatorList.cpp:456</a></div></div>
|
<div class="ttc" id="anamespaceripple_html_a4c908de9e211941a49282147bdc6f076"><div class="ttname"><a href="namespaceripple.html#a4c908de9e211941a49282147bdc6f076">ripple::splitMessage</a></div><div class="ttdeci">std::size_t splitMessage(std::vector< ValidatorList::MessageWithHash > &messages, protocol::TMValidatorListCollection const &largeMsg, std::size_t maxSize, std::size_t begin=0, std::size_t end=0)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00456">ValidatorList.cpp:456</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aed9fb899a5dbc48018f3bdeedb55a110"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aed9fb899a5dbc48018f3bdeedb55a110">ripple::ValidatorList::applyLists</a></div><div class="ttdeci">PublisherListStats applyLists(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, std::optional< uint256 > const &hash={})</div><div class="ttdoc">Apply multiple published lists of public keys.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00922">ValidatorList.cpp:922</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aed9fb899a5dbc48018f3bdeedb55a110"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aed9fb899a5dbc48018f3bdeedb55a110">ripple::ValidatorList::applyLists</a></div><div class="ttdeci">PublisherListStats applyLists(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, std::optional< uint256 > const &hash={})</div><div class="ttdoc">Apply multiple published lists of public keys.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00922">ValidatorList.cpp:922</a></div></div>
|
||||||
@@ -2260,7 +2256,6 @@ $(function() {
|
|||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1MessageWithHash_html_a94fb76dabc20085db29771b4a2d5d952"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1MessageWithHash.html#a94fb76dabc20085db29771b4a2d5d952">ripple::ValidatorList::MessageWithHash::numVLs</a></div><div class="ttdeci">std::size_t numVLs</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00312">ValidatorList.h:312</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1MessageWithHash_html_a94fb76dabc20085db29771b4a2d5d952"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1MessageWithHash.html#a94fb76dabc20085db29771b4a2d5d952">ripple::ValidatorList::MessageWithHash::numVLs</a></div><div class="ttdeci">std::size_t numVLs</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00312">ValidatorList.h:312</a></div></div>
|
||||||
<div class="ttc" id="ashared_lock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a></div><div class="ttdoc">STL class.</div></div>
|
<div class="ttc" id="ashared_lock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a></div><div class="ttdoc">STL class.</div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html">ripple::ValidatorList::PublisherList</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00174">ValidatorList.h:174</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html">ripple::ValidatorList::PublisherList</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00174">ValidatorList.h:174</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_ad28f57783826e0b090713c89265c81e4"><div class="ttname"><a href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">ripple::ValidatorList::quorum</a></div><div class="ttdeci">std::size_t quorum() const</div><div class="ttdoc">Get quorum value for current trusted key set.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00492">ValidatorList.h:492</a></div></div>
|
|
||||||
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00145">json_value.h:145</a></div></div>
|
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00145">json_value.h:145</a></div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_afa0aa10894e600bbb27be9b3be16a4a0"><div class="ttname"><a href="namespaceripple.html#afa0aa10894e600bbb27be9b3be16a4a0">ripple::buildValidatorListMessage</a></div><div class="ttdeci">std::size_t buildValidatorListMessage(std::vector< ValidatorList::MessageWithHash > &messages, std::uint32_t rawVersion, std::string const &rawManifest, ValidatorBlobInfo const &currentBlob, std::size_t maxSize)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00540">ValidatorList.cpp:540</a></div></div>
|
<div class="ttc" id="anamespaceripple_html_afa0aa10894e600bbb27be9b3be16a4a0"><div class="ttname"><a href="namespaceripple.html#afa0aa10894e600bbb27be9b3be16a4a0">ripple::buildValidatorListMessage</a></div><div class="ttdeci">std::size_t buildValidatorListMessage(std::vector< ValidatorList::MessageWithHash > &messages, std::uint32_t rawVersion, std::string const &rawManifest, ValidatorBlobInfo const &currentBlob, std::size_t maxSize)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00540">ValidatorList.cpp:540</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_ac3b9186600dcd1c5326c80af17165741"><div class="ttname"><a href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">ripple::ValidatorList::minimumQuorum_</a></div><div class="ttdeci">std::optional< std::size_t > minimumQuorum_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00234">ValidatorList.h:234</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_ac3b9186600dcd1c5326c80af17165741"><div class="ttname"><a href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">ripple::ValidatorList::minimumQuorum_</a></div><div class="ttdeci">std::optional< std::size_t > minimumQuorum_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00234">ValidatorList.h:234</a></div></div>
|
||||||
|
|||||||
@@ -665,14 +665,14 @@ $(function() {
|
|||||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
|
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a7bdc06d223ec320799b7b09fe38fb16a"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a7bdc06d223ec320799b7b09fe38fb16a">ripple::ValidatorList::applyListsAndBroadcast</a></div><div class="ttdeci">PublisherListStats applyListsAndBroadcast(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, NetworkOPs &networkOPs)</div><div class="ttdoc">Apply multiple published lists of public keys, then broadcast it to all peers that have not seen it o...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00869">ValidatorList.cpp:869</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a7bdc06d223ec320799b7b09fe38fb16a"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a7bdc06d223ec320799b7b09fe38fb16a">ripple::ValidatorList::applyListsAndBroadcast</a></div><div class="ttdeci">PublisherListStats applyListsAndBroadcast(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, NetworkOPs &networkOPs)</div><div class="ttdoc">Apply multiple published lists of public keys, then broadcast it to all peers that have not seen it o...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00869">ValidatorList.cpp:869</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a90d8cf623e6011f148956964d0e09b9c"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a90d8cf623e6011f148956964d0e09b9c">ripple::ValidatorList::trustedPublisher</a></div><div class="ttdeci">bool trustedPublisher(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is a trusted publisher.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01404">ValidatorList.cpp:1404</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a90d8cf623e6011f148956964d0e09b9c"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a90d8cf623e6011f148956964d0e09b9c">ripple::ValidatorList::trustedPublisher</a></div><div class="ttdeci">bool trustedPublisher(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is a trusted publisher.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01404">ValidatorList.cpp:1404</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a3749eaabef35e6178bc74fc8dfe6f4a2"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">ripple::ValidatorList::setNegativeUNL</a></div><div class="ttdeci">void setNegativeUNL(hash_set< PublicKey > const &negUnl)</div><div class="ttdoc">set the Negative UNL with validators' master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01951">ValidatorList.cpp:1951</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a3749eaabef35e6178bc74fc8dfe6f4a2"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">ripple::ValidatorList::setNegativeUNL</a></div><div class="ttdeci">void setNegativeUNL(hash_set< PublicKey > const &negUnl)</div><div class="ttdoc">set the Negative UNL with validators' master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01947">ValidatorList.cpp:1947</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af37bfdb23c49649cfa40a40ac5d182fd"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af37bfdb23c49649cfa40a40ac5d182fd">ripple::ValidatorList::getQuorumKeys</a></div><div class="ttdeci">QuorumKeys getQuorumKeys() const</div><div class="ttdoc">Get the quorum and all of the trusted keys.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00658">ValidatorList.h:658</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af37bfdb23c49649cfa40a40ac5d182fd"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af37bfdb23c49649cfa40a40ac5d182fd">ripple::ValidatorList::getQuorumKeys</a></div><div class="ttdeci">QuorumKeys getQuorumKeys() const</div><div class="ttdoc">Get the quorum and all of the trusted keys.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00658">ValidatorList.h:658</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListStats_html"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ripple::ValidatorList::PublisherListStats</a></div><div class="ttdoc">Describes the result of processing a Validator List (UNL), including some of the information from the...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00278">ValidatorList.h:278</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListStats_html"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ripple::ValidatorList::PublisherListStats</a></div><div class="ttdoc">Describes the result of processing a Validator List (UNL), including some of the information from the...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00278">ValidatorList.h:278</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a6aed606d8af8e7d638308232efd15f11"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">ripple::ValidatorList::negativeUNL_</a></div><div class="ttdeci">hash_set< PublicKey > negativeUNL_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00253">ValidatorList.h:253</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a6aed606d8af8e7d638308232efd15f11"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">ripple::ValidatorList::negativeUNL_</a></div><div class="ttdeci">hash_set< PublicKey > negativeUNL_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00253">ValidatorList.h:253</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af3c12788fe36cb6f48201d3c5a688d06"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af3c12788fe36cb6f48201d3c5a688d06">ripple::ValidatorList::filePrefix_</a></div><div class="ttdeci">static const std::string filePrefix_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00261">ValidatorList.h:261</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af3c12788fe36cb6f48201d3c5a688d06"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af3c12788fe36cb6f48201d3c5a688d06">ripple::ValidatorList::filePrefix_</a></div><div class="ttdeci">static const std::string filePrefix_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00261">ValidatorList.h:261</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_acedaeedad936d4e850ade479e3de91cf"><div class="ttname"><a href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">ripple::ValidatorList::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00228">ValidatorList.h:228</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_acedaeedad936d4e850ade479e3de91cf"><div class="ttname"><a href="classripple_1_1ValidatorList.html#acedaeedad936d4e850ade479e3de91cf">ripple::ValidatorList::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00228">ValidatorList.h:228</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html_ab1eaafc17bdc547f85f4898d5535c6e5"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html#ab1eaafc17bdc547f85f4898d5535c6e5">ripple::ValidatorList::PublisherList::validUntil</a></div><div class="ttdeci">TimeKeeper::time_point validUntil</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00182">ValidatorList.h:182</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html_ab1eaafc17bdc547f85f4898d5535c6e5"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html#ab1eaafc17bdc547f85f4898d5535c6e5">ripple::ValidatorList::PublisherList::validUntil</a></div><div class="ttdeci">TimeKeeper::time_point validUntil</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00182">ValidatorList.h:182</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a22bb356f3dff23879344acd8121abbe3"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">ripple::ValidatorList::getTrustedMasterKeys</a></div><div class="ttdeci">hash_set< PublicKey > getTrustedMasterKeys() const</div><div class="ttdoc">get the trusted master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01937">ValidatorList.cpp:1937</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a22bb356f3dff23879344acd8121abbe3"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">ripple::ValidatorList::getTrustedMasterKeys</a></div><div class="ttdeci">hash_set< PublicKey > getTrustedMasterKeys() const</div><div class="ttdoc">get the trusted master public keys</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01933">ValidatorList.cpp:1933</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af2dde165e04bd3a99a397fe3541f341e"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af2dde165e04bd3a99a397fe3541f341e">ripple::ValidatorList::buildValidatorListMessages</a></div><div class="ttdeci">static std::pair< std::size_t, std::size_t > buildValidatorListMessages(std::size_t messageVersion, std::uint64_t peerSequence, std::size_t maxSequence, std::uint32_t rawVersion, std::string const &rawManifest, std::map< std::size_t, ValidatorBlobInfo > const &blobInfos, std::vector< MessageWithHash > &messages, std::size_t maxSize=maximiumMessageSize)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00612">ValidatorList.cpp:612</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af2dde165e04bd3a99a397fe3541f341e"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af2dde165e04bd3a99a397fe3541f341e">ripple::ValidatorList::buildValidatorListMessages</a></div><div class="ttdeci">static std::pair< std::size_t, std::size_t > buildValidatorListMessages(std::size_t messageVersion, std::uint64_t peerSequence, std::size_t maxSequence, std::uint32_t rawVersion, std::string const &rawManifest, std::map< std::size_t, ValidatorBlobInfo > const &blobInfos, std::vector< MessageWithHash > &messages, std::size_t maxSize=maximiumMessageSize)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00612">ValidatorList.cpp:612</a></div></div>
|
||||||
<div class="ttc" id="alock_guard_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a></div><div class="ttdoc">STL class.</div></div>
|
<div class="ttc" id="alock_guard_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a></div><div class="ttdoc">STL class.</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aa0c6d081fe5e626dc63a9cd949de2d85"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aa0c6d081fe5e626dc63a9cd949de2d85">ripple::ValidatorList::maxSupportedBlobs</a></div><div class="ttdeci">static constexpr std::size_t maxSupportedBlobs</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00259">ValidatorList.h:259</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aa0c6d081fe5e626dc63a9cd949de2d85"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aa0c6d081fe5e626dc63a9cd949de2d85">ripple::ValidatorList::maxSupportedBlobs</a></div><div class="ttdeci">static constexpr std::size_t maxSupportedBlobs</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00259">ValidatorList.h:259</a></div></div>
|
||||||
@@ -705,7 +705,7 @@ $(function() {
|
|||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html"><div class="ttname"><a href="classripple_1_1ValidatorList.html">ripple::ValidatorList</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00172">ValidatorList.h:172</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html"><div class="ttname"><a href="classripple_1_1ValidatorList.html">ripple::ValidatorList</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00172">ValidatorList.h:172</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorBlobInfo_html"><div class="ttname"><a href="structripple_1_1ValidatorBlobInfo.html">ripple::ValidatorBlobInfo</a></div><div class="ttdoc">Used to represent the information stored in the blobs_v2 Json array.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00116">ValidatorList.h:116</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorBlobInfo_html"><div class="ttname"><a href="structripple_1_1ValidatorBlobInfo.html">ripple::ValidatorBlobInfo</a></div><div class="ttdoc">Used to represent the information stored in the blobs_v2 Json array.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00116">ValidatorList.h:116</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1TrustChanges_html_a968f2c3bdc3420ca645ad54a5be5c6d9"><div class="ttname"><a href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">ripple::TrustChanges::removed</a></div><div class="ttdeci">hash_set< NodeID > removed</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00112">ValidatorList.h:112</a></div></div>
|
<div class="ttc" id="astructripple_1_1TrustChanges_html_a968f2c3bdc3420ca645ad54a5be5c6d9"><div class="ttname"><a href="structripple_1_1TrustChanges.html#a968f2c3bdc3420ca645ad54a5be5c6d9">ripple::TrustChanges::removed</a></div><div class="ttdeci">hash_set< NodeID > removed</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00112">ValidatorList.h:112</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aa4813b41483e2df542ce2731fb7b5f5d"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">ripple::ValidatorList::updateTrusted</a></div><div class="ttdeci">TrustChanges updateTrusted(hash_set< NodeID > const &seenValidators, NetClock::time_point closeTime, NetworkOPs &ops, Overlay &overlay, HashRouter &hashRouter)</div><div class="ttdoc">Update trusted nodes.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01773">ValidatorList.cpp:1773</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aa4813b41483e2df542ce2731fb7b5f5d"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">ripple::ValidatorList::updateTrusted</a></div><div class="ttdeci">TrustChanges updateTrusted(hash_set< NodeID > const &seenValidators, NetClock::time_point closeTime, NetworkOPs &ops, Overlay &overlay, HashRouter &hashRouter)</div><div class="ttdoc">Update trusted nodes.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01769">ValidatorList.cpp:1769</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListCollection_html_a4efb18d223a1910d123c99e09c1a524c"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListCollection.html#a4efb18d223a1910d123c99e09c1a524c">ripple::ValidatorList::PublisherListCollection::remaining</a></div><div class="ttdeci">std::map< std::size_t, PublisherList > remaining</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00216">ValidatorList.h:216</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListCollection_html_a4efb18d223a1910d123c99e09c1a524c"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListCollection.html#a4efb18d223a1910d123c99e09c1a524c">ripple::ValidatorList::PublisherListCollection::remaining</a></div><div class="ttdeci">std::map< std::size_t, PublisherList > remaining</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00216">ValidatorList.h:216</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af8fe24acb044cf9b928d14a1e84b63ac"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af8fe24acb044cf9b928d14a1e84b63ac">ripple::ValidatorList::publisherManifests_</a></div><div class="ttdeci">ManifestCache & publisherManifests_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00225">ValidatorList.h:225</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_af8fe24acb044cf9b928d14a1e84b63ac"><div class="ttname"><a href="classripple_1_1ValidatorList.html#af8fe24acb044cf9b928d14a1e84b63ac">ripple::ValidatorList::publisherManifests_</a></div><div class="ttdeci">ManifestCache & publisherManifests_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00225">ValidatorList.h:225</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0db3ac667949c8002894beb011f7f139"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">ripple::ValidatorList::broadcastBlobs</a></div><div class="ttdeci">static void broadcastBlobs(PublicKey const &publisherKey, PublisherListCollection const &lists, std::size_t maxSequence, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00802">ValidatorList.cpp:802</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0db3ac667949c8002894beb011f7f139"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">ripple::ValidatorList::broadcastBlobs</a></div><div class="ttdeci">static void broadcastBlobs(PublicKey const &publisherKey, PublisherListCollection const &lists, std::size_t maxSequence, uint256 const &hash, Overlay &overlay, HashRouter &hashRouter, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00802">ValidatorList.cpp:802</a></div></div>
|
||||||
@@ -726,7 +726,7 @@ $(function() {
|
|||||||
<div class="ttc" id="amap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a></div><div class="ttdoc">STL class.</div></div>
|
<div class="ttc" id="amap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a></div><div class="ttdoc">STL class.</div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_a6eaff79c38106bc3b27326d878c902d3a2af01f2c39c66a1641045dd660e839b5"><div class="ttname"><a href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3a2af01f2c39c66a1641045dd660e839b5">ripple::ListDisposition::unsupported_version</a></div><div class="ttdeci">@ unsupported_version</div><div class="ttdoc">List version is not supported.</div></div>
|
<div class="ttc" id="anamespaceripple_html_a6eaff79c38106bc3b27326d878c902d3a2af01f2c39c66a1641045dd660e839b5"><div class="ttname"><a href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3a2af01f2c39c66a1641045dd660e839b5">ripple::ListDisposition::unsupported_version</a></div><div class="ttdeci">@ unsupported_version</div><div class="ttdoc">List version is not supported.</div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a3cb3357e6108a7e96d03e4da7feb7d5a"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a3cb3357e6108a7e96d03e4da7feb7d5a">ripple::ValidatorList::buildFileData</a></div><div class="ttdeci">static Json::Value buildFileData(std::string const &pubKey, PublisherListCollection const &pubCollection, beast::Journal j)</div><div class="ttdoc">Build a Json representation of the collection, suitable for writing to a cache file,...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00259">ValidatorList.cpp:259</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a3cb3357e6108a7e96d03e4da7feb7d5a"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a3cb3357e6108a7e96d03e4da7feb7d5a">ripple::ValidatorList::buildFileData</a></div><div class="ttdeci">static Json::Value buildFileData(std::string const &pubKey, PublisherListCollection const &pubCollection, beast::Journal j)</div><div class="ttdoc">Build a Json representation of the collection, suitable for writing to a cache file,...</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00259">ValidatorList.cpp:259</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0937f06a5eddf696521deaef47192a32"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ripple::ValidatorList::negativeUNLFilter</a></div><div class="ttdeci">std::vector< std::shared_ptr< STValidation > > negativeUNLFilter(std::vector< std::shared_ptr< STValidation >> &&validations) const</div><div class="ttdoc">Remove validations that are from validators on the negative UNL.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01958">ValidatorList.cpp:1958</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a0937f06a5eddf696521deaef47192a32"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a0937f06a5eddf696521deaef47192a32">ripple::ValidatorList::negativeUNLFilter</a></div><div class="ttdeci">std::vector< std::shared_ptr< STValidation > > negativeUNLFilter(std::vector< std::shared_ptr< STValidation >> &&validations) const</div><div class="ttdoc">Remove validations that are from validators on the negative UNL.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01954">ValidatorList.cpp:1954</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a74578a60966c12996799fd9784d66741"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a74578a60966c12996799fd9784d66741">ripple::ValidatorList::expires</a></div><div class="ttdeci">std::optional< TimeKeeper::time_point > expires() const</div><div class="ttdoc">Return the time when the validator list will expire.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01500">ValidatorList.cpp:1500</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a74578a60966c12996799fd9784d66741"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a74578a60966c12996799fd9784d66741">ripple::ValidatorList::expires</a></div><div class="ttdeci">std::optional< TimeKeeper::time_point > expires() const</div><div class="ttdoc">Return the time when the validator list will expire.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01500">ValidatorList.cpp:1500</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html_a6995e4adf4fc3157d5333f659d409b4a"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html#a6995e4adf4fc3157d5333f659d409b4a">ripple::ValidatorList::PublisherList::rawBlob</a></div><div class="ttdeci">std::string rawBlob</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00185">ValidatorList.h:185</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherList_html_a6995e4adf4fc3157d5333f659d409b4a"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherList.html#a6995e4adf4fc3157d5333f659d409b4a">ripple::ValidatorList::PublisherList::rawBlob</a></div><div class="ttdeci">std::string rawBlob</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00185">ValidatorList.h:185</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a79545d89d7c7c5bfef7f15ce0510577b"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">ripple::ValidatorList::calculateQuorum</a></div><div class="ttdeci">std::size_t calculateQuorum(std::size_t unlSize, std::size_t effectiveUnlSize, std::size_t seenSize)</div><div class="ttdoc">Return quorum for trusted validator set.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01708">ValidatorList.cpp:1708</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a79545d89d7c7c5bfef7f15ce0510577b"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">ripple::ValidatorList::calculateQuorum</a></div><div class="ttdeci">std::size_t calculateQuorum(std::size_t unlSize, std::size_t effectiveUnlSize, std::size_t seenSize)</div><div class="ttdoc">Return quorum for trusted validator set.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01708">ValidatorList.cpp:1708</a></div></div>
|
||||||
@@ -767,7 +767,7 @@ $(function() {
|
|||||||
<div class="ttc" id="anumeric_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/numeric.html">numeric</a></div></div>
|
<div class="ttc" id="anumeric_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/numeric.html">numeric</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a9de7a870beb3104dc8320d6367b7f7e8"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a9de7a870beb3104dc8320d6367b7f7e8">ripple::ValidatorList::trusted</a></div><div class="ttdeci">bool trusted(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is trusted.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01367">ValidatorList.cpp:1367</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a9de7a870beb3104dc8320d6367b7f7e8"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a9de7a870beb3104dc8320d6367b7f7e8">ripple::ValidatorList::trusted</a></div><div class="ttdeci">bool trusted(PublicKey const &identity) const</div><div class="ttdoc">Returns true if public key is trusted.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01367">ValidatorList.cpp:1367</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a623a1124f621b9ee5745bd22094b4acb"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">ripple::ValidatorList::trustedMasterKeys_</a></div><div class="ttdeci">hash_set< PublicKey > trustedMasterKeys_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00243">ValidatorList.h:243</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a623a1124f621b9ee5745bd22094b4acb"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">ripple::ValidatorList::trustedMasterKeys_</a></div><div class="ttdeci">hash_set< PublicKey > trustedMasterKeys_</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00243">ValidatorList.h:243</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_afef3dd7af8c40b51da43a945f632b4c5"><div class="ttname"><a href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">ripple::ValidatorList::getNegativeUNL</a></div><div class="ttdeci">hash_set< PublicKey > getNegativeUNL() const</div><div class="ttdoc">get the master public keys of Negative UNL validators</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01944">ValidatorList.cpp:1944</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_afef3dd7af8c40b51da43a945f632b4c5"><div class="ttname"><a href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">ripple::ValidatorList::getNegativeUNL</a></div><div class="ttdeci">hash_set< PublicKey > getNegativeUNL() const</div><div class="ttdoc">get the master public keys of Negative UNL validators</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01940">ValidatorList.cpp:1940</a></div></div>
|
||||||
<div class="ttc" id="anamespaceripple_html_aaf9d6587e02c610e84a029ad5b5e17b4"><div class="ttname"><a href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4">ripple::PublisherStatus</a></div><div class="ttdeci">PublisherStatus</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00087">ValidatorList.h:87</a></div></div>
|
<div class="ttc" id="anamespaceripple_html_aaf9d6587e02c610e84a029ad5b5e17b4"><div class="ttname"><a href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4">ripple::PublisherStatus</a></div><div class="ttdeci">PublisherStatus</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00087">ValidatorList.h:87</a></div></div>
|
||||||
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aed9fb899a5dbc48018f3bdeedb55a110"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aed9fb899a5dbc48018f3bdeedb55a110">ripple::ValidatorList::applyLists</a></div><div class="ttdeci">PublisherListStats applyLists(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, std::optional< uint256 > const &hash={})</div><div class="ttdoc">Apply multiple published lists of public keys.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00922">ValidatorList.cpp:922</a></div></div>
|
<div class="ttc" id="aclassripple_1_1ValidatorList_html_aed9fb899a5dbc48018f3bdeedb55a110"><div class="ttname"><a href="classripple_1_1ValidatorList.html#aed9fb899a5dbc48018f3bdeedb55a110">ripple::ValidatorList::applyLists</a></div><div class="ttdeci">PublisherListStats applyLists(std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs, std::string siteUri, std::optional< uint256 > const &hash={})</div><div class="ttdoc">Apply multiple published lists of public keys.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00922">ValidatorList.cpp:922</a></div></div>
|
||||||
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListCollection_html_a1ca30d925811c0634bbaedc04da3881c"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListCollection.html#a1ca30d925811c0634bbaedc04da3881c">ripple::ValidatorList::PublisherListCollection::rawManifest</a></div><div class="ttdeci">std::string rawManifest</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00220">ValidatorList.h:220</a></div></div>
|
<div class="ttc" id="astructripple_1_1ValidatorList_1_1PublisherListCollection_html_a1ca30d925811c0634bbaedc04da3881c"><div class="ttname"><a href="structripple_1_1ValidatorList_1_1PublisherListCollection.html#a1ca30d925811c0634bbaedc04da3881c">ripple::ValidatorList::PublisherListCollection::rawManifest</a></div><div class="ttdeci">std::string rawManifest</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00220">ValidatorList.h:220</a></div></div>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1019,7 +1019,7 @@ Trusted Validators List</h2>
|
|||||||
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
|
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
|
||||||
<p>May be called concurrently </p>
|
<p>May be called concurrently </p>
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01773">1773</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01769">1769</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1440,7 +1440,7 @@ Trusted Validators List</h2>
|
|||||||
<p>get the trusted master public keys </p>
|
<p>get the trusted master public keys </p>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>the public keys </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>the public keys </dd></dl>
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01937">1937</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01933">1933</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1462,7 +1462,7 @@ Trusted Validators List</h2>
|
|||||||
<p>get the master public keys of Negative UNL validators </p>
|
<p>get the master public keys of Negative UNL validators </p>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>the master public keys </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>the master public keys </dd></dl>
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01944">1944</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01940">1940</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1490,7 +1490,7 @@ Trusted Validators List</h2>
|
|||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01951">1951</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01947">1947</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1519,7 +1519,7 @@ Trusted Validators List</h2>
|
|||||||
</dl>
|
</dl>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>a filtered copy of the validations </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>a filtered copy of the validations </dd></dl>
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01958">1958</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01954">1954</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -703,7 +703,7 @@ Static Private Member Functions</h2></td></tr>
|
|||||||
</table>
|
</table>
|
||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList__test_8cpp_source.html#l02004">2004</a> of file <a class="el" href="ValidatorList__test_8cpp_source.html">ValidatorList_test.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList__test_8cpp_source.html#l02005">2005</a> of file <a class="el" href="ValidatorList__test_8cpp_source.html">ValidatorList_test.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -730,7 +730,7 @@ Static Private Member Functions</h2></td></tr>
|
|||||||
</table>
|
</table>
|
||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList__test_8cpp_source.html#l02056">2056</a> of file <a class="el" href="ValidatorList__test_8cpp_source.html">ValidatorList_test.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList__test_8cpp_source.html#l02057">2057</a> of file <a class="el" href="ValidatorList__test_8cpp_source.html">ValidatorList_test.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -757,7 +757,7 @@ Static Private Member Functions</h2></td></tr>
|
|||||||
</table>
|
</table>
|
||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p class="definition">Definition at line <a class="el" href="ValidatorList__test_8cpp_source.html#l02414">2414</a> of file <a class="el" href="ValidatorList__test_8cpp_source.html">ValidatorList_test.cpp</a>.</p>
|
<p class="definition">Definition at line <a class="el" href="ValidatorList__test_8cpp_source.html#l02415">2415</a> of file <a class="el" href="ValidatorList__test_8cpp_source.html">ValidatorList_test.cpp</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user