rippled
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
xrpl::LedgerMaster Class Reference

#include <LedgerMaster.h>

Inheritance diagram for xrpl::LedgerMaster:
Inheritance graph
[legend]
Collaboration diagram for xrpl::LedgerMaster:
Collaboration graph
[legend]

Classes

struct  Stats
 

Public Member Functions

 LedgerMaster (Application &app, Stopwatch &stopwatch, beast::insight::Collector::ptr const &collector, beast::Journal journal)
 
virtual ~LedgerMaster ()=default
 
LedgerIndex getCurrentLedgerIndex ()
 
LedgerIndex getValidLedgerIndex ()
 
bool isCompatible (ReadView const &, beast::Journal::Stream, char const *reason)
 
std::recursive_mutexpeekMutex ()
 
std::shared_ptr< ReadView const > getCurrentLedger ()
 
std::shared_ptr< Ledger const > getClosedLedger ()
 
std::shared_ptr< Ledger const > getValidatedLedger ()
 
Rules getValidatedRules ()
 
std::shared_ptr< ReadView const > getPublishedLedger ()
 
std::chrono::seconds getPublishedLedgerAge ()
 
std::chrono::seconds getValidatedLedgerAge ()
 
bool isCaughtUp (std::string &reason)
 
std::uint32_t getEarliestFetch ()
 
bool storeLedger (std::shared_ptr< Ledger const > ledger)
 
void setFullLedger (std::shared_ptr< Ledger const > const &ledger, bool isSynchronous, bool isCurrent)
 
bool canBeCurrent (std::shared_ptr< Ledger const > const &ledger)
 Check the sequence number and parent close time of a ledger against our clock and last validated ledger to see if it can be the network's current ledger.
 
void switchLCL (std::shared_ptr< Ledger const > const &lastClosed)
 
void failedSave (std::uint32_t seq, uint256 const &hash)
 
std::string getCompleteLedgers ()
 
void applyHeldTransactions ()
 Apply held transactions to the open ledger This is normally called as we close the ledger.
 
std::shared_ptr< STTx const > popAcctTransaction (std::shared_ptr< STTx const > const &tx)
 Get the next transaction held for a particular account if any.
 
uint256 getHashBySeq (std::uint32_t index)
 Get a ledger's hash by sequence number using the cache.
 
std::optional< LedgerHashwalkHashBySeq (std::uint32_t index, InboundLedger::Reason reason)
 Walk to a ledger's hash using the skip list.
 
std::optional< LedgerHashwalkHashBySeq (std::uint32_t index, std::shared_ptr< ReadView const > const &referenceLedger, InboundLedger::Reason reason)
 Walk the chain of ledger hashes to determine the hash of the ledger with the specified index.
 
std::shared_ptr< Ledger const > getLedgerBySeq (std::uint32_t index)
 
std::shared_ptr< Ledger const > getLedgerByHash (uint256 const &hash)
 
void setLedgerRangePresent (std::uint32_t minV, std::uint32_t maxV)
 
std::optional< NetClock::time_pointgetCloseTimeBySeq (LedgerIndex ledgerIndex)
 
std::optional< NetClock::time_pointgetCloseTimeByHash (LedgerHash const &ledgerHash, LedgerIndex ledgerIndex)
 
void addHeldTransaction (std::shared_ptr< Transaction > const &trans)
 
void fixMismatch (ReadView const &ledger)
 
bool haveLedger (std::uint32_t seq)
 
void clearLedger (std::uint32_t seq)
 
bool isValidated (ReadView const &ledger)
 
bool getValidatedRange (std::uint32_t &minVal, std::uint32_t &maxVal)
 
bool getFullValidatedRange (std::uint32_t &minVal, std::uint32_t &maxVal)
 
void sweep ()
 
float getCacheHitRate ()
 
void checkAccept (std::shared_ptr< Ledger const > const &ledger)
 
void checkAccept (uint256 const &hash, std::uint32_t seq)
 
void consensusBuilt (std::shared_ptr< Ledger const > const &ledger, uint256 const &consensusHash, Json::Value consensus)
 Report that the consensus process built a particular ledger.
 
void setBuildingLedger (LedgerIndex index)
 
void tryAdvance ()
 
bool newPathRequest ()
 
bool isNewPathRequest ()
 
bool newOrderBookDB ()
 
bool fixIndex (LedgerIndex ledgerIndex, LedgerHash const &ledgerHash)
 
void clearPriorLedgers (LedgerIndex seq)
 
void clearLedgerCachePrior (LedgerIndex seq)
 
void takeReplay (std::unique_ptr< LedgerReplay > replay)
 
std::unique_ptr< LedgerReplayreleaseReplay ()
 
void gotFetchPack (bool progress, std::uint32_t seq)
 
void addFetchPack (uint256 const &hash, std::shared_ptr< Blob > data)
 
std::optional< BlobgetFetchPack (uint256 const &hash) override
 Retrieves partial ledger data of the corresponding hash from peers.
 
void makeFetchPack (std::weak_ptr< Peer > const &wPeer, std::shared_ptr< protocol::TMGetObjectByHash > const &request, uint256 haveLedgerHash, UptimeClock::time_point uptime)
 
std::size_t getFetchPackCacheSize () const
 
bool haveValidated ()
 Whether we have ever fully validated a ledger.
 
std::optional< LedgerIndexminSqlSeq ()
 
std::optional< uint256txnIdFromIndex (uint32_t ledgerSeq, uint32_t txnIndex)
 

Private Member Functions

void setValidLedger (std::shared_ptr< Ledger const > const &l)
 
void setPubLedger (std::shared_ptr< Ledger const > const &l)
 
void tryFill (std::shared_ptr< Ledger const > ledger)
 
void getFetchPack (LedgerIndex missing, InboundLedger::Reason reason)
 Request a fetch pack to get to the specified ledger.
 
std::optional< LedgerHashgetLedgerHashForHistory (LedgerIndex index, InboundLedger::Reason reason)
 
std::size_t getNeededValidations ()
 Determines how many validations are needed to fully validate a ledger.
 
void fetchForHistory (std::uint32_t missing, bool &progress, InboundLedger::Reason reason, std::unique_lock< std::recursive_mutex > &)
 
void doAdvance (std::unique_lock< std::recursive_mutex > &)
 
std::vector< std::shared_ptr< Ledger const > > findNewLedgersToPublish (std::unique_lock< std::recursive_mutex > &)
 
void updatePaths ()
 
bool newPFWork (char const *name, std::unique_lock< std::recursive_mutex > &)
 A thread needs to be dispatched to handle pathfinding work of some kind.
 
void collect_metrics ()
 

Private Attributes

Applicationapp_
 
beast::Journal m_journal
 
std::recursive_mutex m_mutex
 
LedgerHolder mClosedLedger
 
LedgerHolder mValidLedger
 
std::shared_ptr< Ledger const > mPubLedger
 
std::shared_ptr< Ledger const > mPathLedger
 
std::shared_ptr< Ledger const > mHistLedger
 
std::pair< uint256, LedgerIndexmLastValidLedger {uint256(), 0}
 
LedgerHistory mLedgerHistory
 
CanonicalTXSet mHeldTransactions {uint256()}
 
std::unique_ptr< LedgerReplayreplayData
 
std::recursive_mutex mCompleteLock
 
RangeSet< std::uint32_tmCompleteLedgers
 
bool mAdvanceThread {false}
 
bool mAdvanceWork {false}
 
int mFillInProgress {0}
 
int mPathFindThread {0}
 
bool mPathFindNewRequest {false}
 
std::atomic_flag mGotFetchPackThread = ATOMIC_FLAG_INIT
 
std::atomic< std::uint32_tmPubLedgerClose {0}
 
std::atomic< LedgerIndexmPubLedgerSeq {0}
 
std::atomic< std::uint32_tmValidLedgerSign {0}
 
std::atomic< LedgerIndexmValidLedgerSeq {0}
 
std::atomic< LedgerIndexmBuildingLedgerSeq {0}
 
bool const standalone_
 
std::uint32_t const fetch_depth_
 
std::uint32_t const ledger_history_
 
std::uint32_t const ledger_fetch_size_
 
TaggedCache< uint256, Blobfetch_packs_
 
std::uint32_t fetch_seq_ {0}
 
LedgerIndex const max_ledger_difference_ {1000000}
 
TimeKeeper::time_point upgradeWarningPrevTime_ {}
 
Stats m_stats
 

Detailed Description

Definition at line 31 of file LedgerMaster.h.

Constructor & Destructor Documentation

◆ LedgerMaster()

xrpl::LedgerMaster::LedgerMaster ( Application app,
Stopwatch stopwatch,
beast::insight::Collector::ptr const &  collector,
beast::Journal  journal 
)
explicit

Definition at line 79 of file LedgerMaster.cpp.

◆ ~LedgerMaster()

virtual xrpl::LedgerMaster::~LedgerMaster ( )
virtualdefault

Member Function Documentation

◆ getCurrentLedgerIndex()

LedgerIndex xrpl::LedgerMaster::getCurrentLedgerIndex ( )

Definition at line 97 of file LedgerMaster.cpp.

◆ getValidLedgerIndex()

LedgerIndex xrpl::LedgerMaster::getValidLedgerIndex ( )

Definition at line 103 of file LedgerMaster.cpp.

◆ isCompatible()

bool xrpl::LedgerMaster::isCompatible ( ReadView const &  view,
beast::Journal::Stream  s,
char const *  reason 
)

Definition at line 109 of file LedgerMaster.cpp.

◆ peekMutex()

std::recursive_mutex & xrpl::LedgerMaster::peekMutex ( )

Definition at line 1437 of file LedgerMaster.cpp.

◆ getCurrentLedger()

std::shared_ptr< ReadView const > xrpl::LedgerMaster::getCurrentLedger ( )

Definition at line 1444 of file LedgerMaster.cpp.

◆ getClosedLedger()

std::shared_ptr< Ledger const > xrpl::LedgerMaster::getClosedLedger ( )

Definition at line 59 of file LedgerMaster.h.

◆ getValidatedLedger()

std::shared_ptr< Ledger const > xrpl::LedgerMaster::getValidatedLedger ( )

Definition at line 1450 of file LedgerMaster.cpp.

◆ getValidatedRules()

Rules xrpl::LedgerMaster::getValidatedRules ( )

Definition at line 1456 of file LedgerMaster.cpp.

◆ getPublishedLedger()

std::shared_ptr< ReadView const > xrpl::LedgerMaster::getPublishedLedger ( )

Definition at line 1471 of file LedgerMaster.cpp.

◆ getPublishedLedgerAge()

std::chrono::seconds xrpl::LedgerMaster::getPublishedLedgerAge ( )

Definition at line 132 of file LedgerMaster.cpp.

◆ getValidatedLedgerAge()

std::chrono::seconds xrpl::LedgerMaster::getValidatedLedgerAge ( )

Definition at line 156 of file LedgerMaster.cpp.

◆ isCaughtUp()

bool xrpl::LedgerMaster::isCaughtUp ( std::string reason)

Definition at line 181 of file LedgerMaster.cpp.

◆ getEarliestFetch()

std::uint32_t xrpl::LedgerMaster::getEarliestFetch ( )

Definition at line 566 of file LedgerMaster.cpp.

◆ storeLedger()

bool xrpl::LedgerMaster::storeLedger ( std::shared_ptr< Ledger const >  ledger)

Definition at line 398 of file LedgerMaster.cpp.

◆ setFullLedger()

void xrpl::LedgerMaster::setFullLedger ( std::shared_ptr< Ledger const > const &  ledger,
bool  isSynchronous,
bool  isCurrent 
)

Definition at line 746 of file LedgerMaster.cpp.

◆ canBeCurrent()

bool xrpl::LedgerMaster::canBeCurrent ( std::shared_ptr< Ledger const > const &  ledger)

Check the sequence number and parent close time of a ledger against our clock and last validated ledger to see if it can be the network's current ledger.

Definition at line 304 of file LedgerMaster.cpp.

◆ switchLCL()

void xrpl::LedgerMaster::switchLCL ( std::shared_ptr< Ledger const > const &  lastClosed)

Definition at line 366 of file LedgerMaster.cpp.

◆ failedSave()

void xrpl::LedgerMaster::failedSave ( std::uint32_t  seq,
uint256 const &  hash 
)

Definition at line 801 of file LedgerMaster.cpp.

◆ getCompleteLedgers()

std::string xrpl::LedgerMaster::getCompleteLedgers ( )

Definition at line 1478 of file LedgerMaster.cpp.

◆ applyHeldTransactions()

void xrpl::LedgerMaster::applyHeldTransactions ( )

Apply held transactions to the open ledger This is normally called as we close the ledger.

The open ledger remains open to handle new transactions until a new open ledger is built.

Definition at line 411 of file LedgerMaster.cpp.

◆ popAcctTransaction()

std::shared_ptr< STTx const > xrpl::LedgerMaster::popAcctTransaction ( std::shared_ptr< STTx const > const &  tx)

Get the next transaction held for a particular account if any.

This is normally called when a transaction for that account is successfully applied to the open ledger so the next transaction can be resubmitted without waiting for ledger close.

Definition at line 427 of file LedgerMaster.cpp.

◆ getHashBySeq()

uint256 xrpl::LedgerMaster::getHashBySeq ( std::uint32_t  index)

Get a ledger's hash by sequence number using the cache.

Definition at line 1511 of file LedgerMaster.cpp.

◆ walkHashBySeq() [1/2]

std::optional< LedgerHash > xrpl::LedgerMaster::walkHashBySeq ( std::uint32_t  index,
InboundLedger::Reason  reason 
)

Walk to a ledger's hash using the skip list.

Definition at line 1522 of file LedgerMaster.cpp.

◆ walkHashBySeq() [2/2]

std::optional< LedgerHash > xrpl::LedgerMaster::walkHashBySeq ( std::uint32_t  index,
std::shared_ptr< ReadView const > const &  referenceLedger,
InboundLedger::Reason  reason 
)

Walk the chain of ledger hashes to determine the hash of the ledger with the specified index.

The referenceLedger is used as the base of the chain and should be fully validated and must not precede the target index. This function may throw if nodes from the reference ledger or any prior ledger are not present in the node store.

Definition at line 1533 of file LedgerMaster.cpp.

◆ getLedgerBySeq()

std::shared_ptr< Ledger const > xrpl::LedgerMaster::getLedgerBySeq ( std::uint32_t  index)

Definition at line 1588 of file LedgerMaster.cpp.

◆ getLedgerByHash()

std::shared_ptr< Ledger const > xrpl::LedgerMaster::getLedgerByHash ( uint256 const &  hash)

Definition at line 1624 of file LedgerMaster.cpp.

◆ setLedgerRangePresent()

void xrpl::LedgerMaster::setLedgerRangePresent ( std::uint32_t  minV,
std::uint32_t  maxV 
)

Definition at line 1637 of file LedgerMaster.cpp.

◆ getCloseTimeBySeq()

std::optional< NetClock::time_point > xrpl::LedgerMaster::getCloseTimeBySeq ( LedgerIndex  ledgerIndex)

Definition at line 1485 of file LedgerMaster.cpp.

◆ getCloseTimeByHash()

std::optional< NetClock::time_point > xrpl::LedgerMaster::getCloseTimeByHash ( LedgerHash const &  ledgerHash,
LedgerIndex  ledgerIndex 
)

Definition at line 1492 of file LedgerMaster.cpp.

◆ addHeldTransaction()

void xrpl::LedgerMaster::addHeldTransaction ( std::shared_ptr< Transaction > const &  trans)

Definition at line 294 of file LedgerMaster.cpp.

◆ fixMismatch()

void xrpl::LedgerMaster::fixMismatch ( ReadView const &  ledger)

Definition at line 695 of file LedgerMaster.cpp.

◆ haveLedger()

bool xrpl::LedgerMaster::haveLedger ( std::uint32_t  seq)

Definition at line 441 of file LedgerMaster.cpp.

◆ clearLedger()

void xrpl::LedgerMaster::clearLedger ( std::uint32_t  seq)

Definition at line 448 of file LedgerMaster.cpp.

◆ isValidated()

bool xrpl::LedgerMaster::isValidated ( ReadView const &  ledger)

Definition at line 455 of file LedgerMaster.cpp.

◆ getValidatedRange()

bool xrpl::LedgerMaster::getValidatedRange ( std::uint32_t minVal,
std::uint32_t maxVal 
)

Definition at line 525 of file LedgerMaster.cpp.

◆ getFullValidatedRange()

bool xrpl::LedgerMaster::getFullValidatedRange ( std::uint32_t minVal,
std::uint32_t maxVal 
)

Definition at line 500 of file LedgerMaster.cpp.

◆ sweep()

void xrpl::LedgerMaster::sweep ( )

Definition at line 1644 of file LedgerMaster.cpp.

◆ getCacheHitRate()

float xrpl::LedgerMaster::getCacheHitRate ( )

Definition at line 1651 of file LedgerMaster.cpp.

◆ checkAccept() [1/2]

void xrpl::LedgerMaster::checkAccept ( std::shared_ptr< Ledger const > const &  ledger)

Definition at line 869 of file LedgerMaster.cpp.

◆ checkAccept() [2/2]

void xrpl::LedgerMaster::checkAccept ( uint256 const &  hash,
std::uint32_t  seq 
)

Definition at line 810 of file LedgerMaster.cpp.

◆ consensusBuilt()

void xrpl::LedgerMaster::consensusBuilt ( std::shared_ptr< Ledger const > const &  ledger,
uint256 const &  consensusHash,
Json::Value  consensus 
)

Report that the consensus process built a particular ledger.

Definition at line 1007 of file LedgerMaster.cpp.

◆ setBuildingLedger()

void xrpl::LedgerMaster::setBuildingLedger ( LedgerIndex  index)

Definition at line 435 of file LedgerMaster.cpp.

◆ tryAdvance()

void xrpl::LedgerMaster::tryAdvance ( )

Definition at line 1259 of file LedgerMaster.cpp.

◆ newPathRequest()

bool xrpl::LedgerMaster::newPathRequest ( )

Definition at line 1391 of file LedgerMaster.cpp.

◆ isNewPathRequest()

bool xrpl::LedgerMaster::isNewPathRequest ( )

Definition at line 1399 of file LedgerMaster.cpp.

◆ newOrderBookDB()

bool xrpl::LedgerMaster::newOrderBookDB ( )

Definition at line 1410 of file LedgerMaster.cpp.

◆ fixIndex()

bool xrpl::LedgerMaster::fixIndex ( LedgerIndex  ledgerIndex,
LedgerHash const &  ledgerHash 
)

Definition at line 392 of file LedgerMaster.cpp.

◆ clearPriorLedgers()

void xrpl::LedgerMaster::clearPriorLedgers ( LedgerIndex  seq)

Definition at line 1657 of file LedgerMaster.cpp.

◆ clearLedgerCachePrior()

void xrpl::LedgerMaster::clearLedgerCachePrior ( LedgerIndex  seq)

Definition at line 1665 of file LedgerMaster.cpp.

◆ takeReplay()

void xrpl::LedgerMaster::takeReplay ( std::unique_ptr< LedgerReplay replay)

Definition at line 1671 of file LedgerMaster.cpp.

◆ releaseReplay()

std::unique_ptr< LedgerReplay > xrpl::LedgerMaster::releaseReplay ( )

Definition at line 1677 of file LedgerMaster.cpp.

◆ gotFetchPack()

void xrpl::LedgerMaster::gotFetchPack ( bool  progress,
std::uint32_t  seq 
)

Definition at line 1879 of file LedgerMaster.cpp.

◆ addFetchPack()

void xrpl::LedgerMaster::addFetchPack ( uint256 const &  hash,
std::shared_ptr< Blob data 
)

Definition at line 1860 of file LedgerMaster.cpp.

◆ getFetchPack() [1/2]

std::optional< Blob > xrpl::LedgerMaster::getFetchPack ( uint256 const &  nodeHash)
overridevirtual

Retrieves partial ledger data of the corresponding hash from peers.

`

Parameters
nodeHashThe 256-bit hash of the data to fetch.
Returns
std::nullopt if the hash isn't cached, otherwise, the hash associated data.

Implements xrpl::AbstractFetchPackContainer.

Definition at line 1866 of file LedgerMaster.cpp.

◆ makeFetchPack()

void xrpl::LedgerMaster::makeFetchPack ( std::weak_ptr< Peer > const &  wPeer,
std::shared_ptr< protocol::TMGetObjectByHash > const &  request,
uint256  haveLedgerHash,
UptimeClock::time_point  uptime 
)

Definition at line 1947 of file LedgerMaster.cpp.

◆ getFetchPackCacheSize()

std::size_t xrpl::LedgerMaster::getFetchPackCacheSize ( ) const

Definition at line 2071 of file LedgerMaster.cpp.

◆ haveValidated()

bool xrpl::LedgerMaster::haveValidated ( )

Whether we have ever fully validated a ledger.

Definition at line 239 of file LedgerMaster.h.

◆ minSqlSeq()

std::optional< LedgerIndex > xrpl::LedgerMaster::minSqlSeq ( )

Definition at line 2078 of file LedgerMaster.cpp.

◆ txnIdFromIndex()

std::optional< uint256 > xrpl::LedgerMaster::txnIdFromIndex ( uint32_t  ledgerSeq,
uint32_t  txnIndex 
)

Definition at line 2084 of file LedgerMaster.cpp.

◆ setValidLedger()

void xrpl::LedgerMaster::setValidLedger ( std::shared_ptr< Ledger const > const &  l)
private

Definition at line 206 of file LedgerMaster.cpp.

◆ setPubLedger()

void xrpl::LedgerMaster::setPubLedger ( std::shared_ptr< Ledger const > const &  l)
private

Definition at line 286 of file LedgerMaster.cpp.

◆ tryFill()

void xrpl::LedgerMaster::tryFill ( std::shared_ptr< Ledger const >  ledger)
private

Definition at line 580 of file LedgerMaster.cpp.

◆ getFetchPack() [2/2]

void xrpl::LedgerMaster::getFetchPack ( LedgerIndex  missing,
InboundLedger::Reason  reason 
)
private

Request a fetch pack to get to the specified ledger.

Definition at line 648 of file LedgerMaster.cpp.

◆ getLedgerHashForHistory()

std::optional< LedgerHash > xrpl::LedgerMaster::getLedgerHashForHistory ( LedgerIndex  index,
InboundLedger::Reason  reason 
)
private

Definition at line 1106 of file LedgerMaster.cpp.

◆ getNeededValidations()

std::size_t xrpl::LedgerMaster::getNeededValidations ( )
private

Determines how many validations are needed to fully validate a ledger.

Returns
Number of validations needed

Definition at line 863 of file LedgerMaster.cpp.

◆ fetchForHistory()

void xrpl::LedgerMaster::fetchForHistory ( std::uint32_t  missing,
bool &  progress,
InboundLedger::Reason  reason,
std::unique_lock< std::recursive_mutex > &  sl 
)
private

Definition at line 1683 of file LedgerMaster.cpp.

◆ doAdvance()

void xrpl::LedgerMaster::doAdvance ( std::unique_lock< std::recursive_mutex > &  sl)
private

Definition at line 1777 of file LedgerMaster.cpp.

◆ findNewLedgersToPublish()

std::vector< std::shared_ptr< Ledger const > > xrpl::LedgerMaster::findNewLedgersToPublish ( std::unique_lock< std::recursive_mutex > &  sl)
private

Definition at line 1126 of file LedgerMaster.cpp.

◆ updatePaths()

void xrpl::LedgerMaster::updatePaths ( )
private

Definition at line 1291 of file LedgerMaster.cpp.

◆ newPFWork()

bool xrpl::LedgerMaster::newPFWork ( char const *  name,
std::unique_lock< std::recursive_mutex > &   
)
private

A thread needs to be dispatched to handle pathfinding work of some kind.

Definition at line 1421 of file LedgerMaster.cpp.

◆ collect_metrics()

void xrpl::LedgerMaster::collect_metrics ( )
private

Definition at line 384 of file LedgerMaster.h.

Member Data Documentation

◆ app_

Application& xrpl::LedgerMaster::app_
private

Definition at line 291 of file LedgerMaster.h.

◆ m_journal

beast::Journal xrpl::LedgerMaster::m_journal
private

Definition at line 292 of file LedgerMaster.h.

◆ m_mutex

std::recursive_mutex xrpl::LedgerMaster::m_mutex
mutableprivate

Definition at line 294 of file LedgerMaster.h.

◆ mClosedLedger

LedgerHolder xrpl::LedgerMaster::mClosedLedger
private

Definition at line 297 of file LedgerMaster.h.

◆ mValidLedger

LedgerHolder xrpl::LedgerMaster::mValidLedger
private

Definition at line 300 of file LedgerMaster.h.

◆ mPubLedger

std::shared_ptr<Ledger const> xrpl::LedgerMaster::mPubLedger
private

Definition at line 303 of file LedgerMaster.h.

◆ mPathLedger

std::shared_ptr<Ledger const> xrpl::LedgerMaster::mPathLedger
private

Definition at line 306 of file LedgerMaster.h.

◆ mHistLedger

std::shared_ptr<Ledger const> xrpl::LedgerMaster::mHistLedger
private

Definition at line 309 of file LedgerMaster.h.

◆ mLastValidLedger

std::pair<uint256, LedgerIndex> xrpl::LedgerMaster::mLastValidLedger {uint256(), 0}
private

Definition at line 312 of file LedgerMaster.h.

◆ mLedgerHistory

LedgerHistory xrpl::LedgerMaster::mLedgerHistory
private

Definition at line 314 of file LedgerMaster.h.

◆ mHeldTransactions

CanonicalTXSet xrpl::LedgerMaster::mHeldTransactions {uint256()}
private

Definition at line 316 of file LedgerMaster.h.

◆ replayData

std::unique_ptr<LedgerReplay> xrpl::LedgerMaster::replayData
private

Definition at line 319 of file LedgerMaster.h.

◆ mCompleteLock

std::recursive_mutex xrpl::LedgerMaster::mCompleteLock
private

Definition at line 321 of file LedgerMaster.h.

◆ mCompleteLedgers

RangeSet<std::uint32_t> xrpl::LedgerMaster::mCompleteLedgers
private

Definition at line 322 of file LedgerMaster.h.

◆ mAdvanceThread

bool xrpl::LedgerMaster::mAdvanceThread {false}
private

Definition at line 325 of file LedgerMaster.h.

◆ mAdvanceWork

bool xrpl::LedgerMaster::mAdvanceWork {false}
private

Definition at line 328 of file LedgerMaster.h.

◆ mFillInProgress

int xrpl::LedgerMaster::mFillInProgress {0}
private

Definition at line 329 of file LedgerMaster.h.

◆ mPathFindThread

int xrpl::LedgerMaster::mPathFindThread {0}
private

Definition at line 331 of file LedgerMaster.h.

◆ mPathFindNewRequest

bool xrpl::LedgerMaster::mPathFindNewRequest {false}
private

Definition at line 332 of file LedgerMaster.h.

◆ mGotFetchPackThread

std::atomic_flag xrpl::LedgerMaster::mGotFetchPackThread = ATOMIC_FLAG_INIT
private

Definition at line 334 of file LedgerMaster.h.

◆ mPubLedgerClose

std::atomic<std::uint32_t> xrpl::LedgerMaster::mPubLedgerClose {0}
private

Definition at line 336 of file LedgerMaster.h.

◆ mPubLedgerSeq

std::atomic<LedgerIndex> xrpl::LedgerMaster::mPubLedgerSeq {0}
private

Definition at line 337 of file LedgerMaster.h.

◆ mValidLedgerSign

std::atomic<std::uint32_t> xrpl::LedgerMaster::mValidLedgerSign {0}
private

Definition at line 338 of file LedgerMaster.h.

◆ mValidLedgerSeq

std::atomic<LedgerIndex> xrpl::LedgerMaster::mValidLedgerSeq {0}
private

Definition at line 339 of file LedgerMaster.h.

◆ mBuildingLedgerSeq

std::atomic<LedgerIndex> xrpl::LedgerMaster::mBuildingLedgerSeq {0}
private

Definition at line 340 of file LedgerMaster.h.

◆ standalone_

bool const xrpl::LedgerMaster::standalone_
private

Definition at line 343 of file LedgerMaster.h.

◆ fetch_depth_

std::uint32_t const xrpl::LedgerMaster::fetch_depth_
private

Definition at line 346 of file LedgerMaster.h.

◆ ledger_history_

std::uint32_t const xrpl::LedgerMaster::ledger_history_
private

Definition at line 349 of file LedgerMaster.h.

◆ ledger_fetch_size_

std::uint32_t const xrpl::LedgerMaster::ledger_fetch_size_
private

Definition at line 351 of file LedgerMaster.h.

◆ fetch_packs_

TaggedCache<uint256, Blob> xrpl::LedgerMaster::fetch_packs_
private

Definition at line 353 of file LedgerMaster.h.

◆ fetch_seq_

std::uint32_t xrpl::LedgerMaster::fetch_seq_ {0}
private

Definition at line 355 of file LedgerMaster.h.

◆ max_ledger_difference_

LedgerIndex const xrpl::LedgerMaster::max_ledger_difference_ {1000000}
private

Definition at line 359 of file LedgerMaster.h.

◆ upgradeWarningPrevTime_

TimeKeeper::time_point xrpl::LedgerMaster::upgradeWarningPrevTime_ {}
private

Definition at line 362 of file LedgerMaster.h.

◆ m_stats

Stats xrpl::LedgerMaster::m_stats
private

Definition at line 380 of file LedgerMaster.h.