mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-30 10:30:22 +00:00
Track whether a ledger is fully-validated.
This commit is contained in:
@@ -14,6 +14,7 @@ Ledger::Ledger (const RippleAddress& masterID, uint64 startAmount)
|
||||
, mCloseResolution (LEDGER_TIME_ACCURACY)
|
||||
, mCloseFlags (0)
|
||||
, mClosed (false)
|
||||
, mValidated (false)
|
||||
, mValidHash (false)
|
||||
, mAccepted (false)
|
||||
, mImmutable (false)
|
||||
@@ -58,6 +59,7 @@ Ledger::Ledger (uint256 const& parentHash,
|
||||
, mCloseResolution (closeResolution)
|
||||
, mCloseFlags (closeFlags)
|
||||
, mClosed (false)
|
||||
, mValidated (false)
|
||||
, mValidHash (false)
|
||||
, mAccepted (false)
|
||||
, mImmutable (true)
|
||||
@@ -97,6 +99,7 @@ Ledger::Ledger (Ledger& ledger,
|
||||
, mCloseResolution (ledger.mCloseResolution)
|
||||
, mCloseFlags (ledger.mCloseFlags)
|
||||
, mClosed (ledger.mClosed)
|
||||
, mValidated (ledger.mValidated)
|
||||
, mValidHash (false)
|
||||
, mAccepted (ledger.mAccepted)
|
||||
, mImmutable (!isMutable)
|
||||
@@ -116,6 +119,7 @@ Ledger::Ledger (bool /* dummy */,
|
||||
, mCloseResolution (prevLedger.mCloseResolution)
|
||||
, mCloseFlags (0)
|
||||
, mClosed (false)
|
||||
, mValidated (false)
|
||||
, mValidHash (false)
|
||||
, mAccepted (false)
|
||||
, mImmutable (false)
|
||||
@@ -148,6 +152,7 @@ Ledger::Ledger (bool /* dummy */,
|
||||
Ledger::Ledger (Blob const& rawLedger,
|
||||
bool hasPrefix)
|
||||
: mClosed (false)
|
||||
, mValidated (false)
|
||||
, mValidHash (false)
|
||||
, mAccepted (false)
|
||||
, mImmutable (true)
|
||||
@@ -160,7 +165,7 @@ Ledger::Ledger (Blob const& rawLedger,
|
||||
}
|
||||
|
||||
Ledger::Ledger (const std::string& rawLedger, bool hasPrefix) :
|
||||
mClosed (false), mValidHash (false), mAccepted (false), mImmutable (true)
|
||||
mClosed (false), mValidated(false), mValidHash (false), mAccepted (false), mImmutable (true)
|
||||
{
|
||||
Serializer s (rawLedger);
|
||||
setRaw (s, hasPrefix);
|
||||
|
||||
@@ -91,6 +91,10 @@ public:
|
||||
{
|
||||
mClosed = true;
|
||||
}
|
||||
void setValidated()
|
||||
{
|
||||
mValidated = true;
|
||||
}
|
||||
void setAccepted (uint32 closeTime, int closeResolution, bool correctCloseTime);
|
||||
void setAccepted ();
|
||||
void setImmutable ();
|
||||
@@ -102,6 +106,10 @@ public:
|
||||
{
|
||||
return mAccepted;
|
||||
}
|
||||
bool isValidated ()
|
||||
{
|
||||
return mValidated;
|
||||
}
|
||||
bool isImmutable ()
|
||||
{
|
||||
return mImmutable;
|
||||
@@ -449,7 +457,7 @@ private:
|
||||
uint32 mParentCloseTime; // when the previous ledger closed
|
||||
int mCloseResolution; // the resolution for this ledger close time (2-120 seconds)
|
||||
uint32 mCloseFlags; // flags indicating how this ledger close took place
|
||||
bool mClosed, mValidHash, mAccepted, mImmutable;
|
||||
bool mClosed, mValidated, mValidHash, mAccepted, mImmutable;
|
||||
|
||||
uint32 mReferenceFeeUnits; // Fee units for the reference transaction
|
||||
uint32 mReserveBase, mReserveIncrement; // Reserve basse and increment in fee units
|
||||
|
||||
@@ -159,6 +159,7 @@ void LedgerMaster::storeLedger (Ledger::pointer ledger)
|
||||
|
||||
void LedgerMaster::forceValid (Ledger::pointer ledger)
|
||||
{
|
||||
ledger->setValidated();
|
||||
if (!mValidLedger || (mPubLedger->getLedgerSeq() < ledger->getLedgerSeq()))
|
||||
mValidLedger = ledger;
|
||||
if (!mPubLedger || (mPubLedger->getLedgerSeq() < 2))
|
||||
@@ -683,6 +684,7 @@ void LedgerMaster::checkAccept (uint256 const& hash, uint32 seq)
|
||||
return;
|
||||
}
|
||||
|
||||
ledger->setValidated();
|
||||
mValidLedger = ledger;
|
||||
|
||||
uint64 fee, fee2, ref;
|
||||
@@ -769,6 +771,7 @@ void LedgerMaster::tryPublish ()
|
||||
|
||||
if (ledger && (ledger->getLedgerSeq() == (mPubLedger->getLedgerSeq() + 1)))
|
||||
{ // We acquired the next ledger we need to publish
|
||||
ledger->setValidated();
|
||||
mPubLedger = ledger;
|
||||
mPubLedgers.push_back (mPubLedger);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user