mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-05 08:48:03 +00:00
Revert "Don't save unvalidated transactions to any transaction database."
This reverts commit 28a7e58fd4.
This commit is contained in:
@@ -105,16 +105,23 @@ void LedgerMaster::pushLedger (Ledger::pointer newLedger)
|
||||
mFinalizedLedger = mCurrentLedger;
|
||||
mCurrentLedger = newLedger;
|
||||
mEngine.setLedger (newLedger);
|
||||
mLedgerHistory.addLedger (newLedger);
|
||||
}
|
||||
|
||||
void LedgerMaster::pushLedger (Ledger::pointer newLCL, Ledger::pointer newOL, bool fromConsensus)
|
||||
{
|
||||
assert (newLCL->isClosed () && newLCL->isImmutable());
|
||||
assert (!newOL->isClosed ());
|
||||
assert (newLCL->isClosed () && newLCL->isAccepted ());
|
||||
assert (!newOL->isClosed () && !newOL->isAccepted ());
|
||||
|
||||
boost::recursive_mutex::scoped_lock ml (mLock);
|
||||
|
||||
if (newLCL->isAccepted ())
|
||||
{
|
||||
assert (newLCL->isClosed ());
|
||||
assert (newLCL->isImmutable ());
|
||||
mLedgerHistory.addAcceptedLedger (newLCL, fromConsensus);
|
||||
WriteLog (lsINFO, LedgerMaster) << "StashAccepted: " << newLCL->getHash ();
|
||||
}
|
||||
|
||||
{
|
||||
boost::recursive_mutex::scoped_lock ml (mLock);
|
||||
mFinalizedLedger = newLCL;
|
||||
@@ -145,6 +152,9 @@ void LedgerMaster::switchLedgers (Ledger::pointer lastClosed, Ledger::pointer cu
|
||||
void LedgerMaster::storeLedger (Ledger::pointer ledger)
|
||||
{
|
||||
mLedgerHistory.addLedger (ledger);
|
||||
|
||||
if (ledger->isAccepted ())
|
||||
mLedgerHistory.addAcceptedLedger (ledger, false);
|
||||
}
|
||||
|
||||
void LedgerMaster::forceValid (Ledger::pointer ledger)
|
||||
@@ -328,10 +338,7 @@ bool LedgerMaster::acquireMissingLedger (Ledger::ref origLedger, uint256 const&
|
||||
Ledger::pointer lgr = mMissingLedger->getLedger ();
|
||||
|
||||
if (lgr && (lgr->getLedgerSeq () == ledgerSeq))
|
||||
{
|
||||
lgr->setValidated();
|
||||
missingAcquireComplete (mMissingLedger);
|
||||
}
|
||||
|
||||
mMissingLedger.reset ();
|
||||
return true;
|
||||
@@ -374,8 +381,8 @@ bool LedgerMaster::acquireMissingLedger (Ledger::ref origLedger, uint256 const&
|
||||
if (acq && acq->isComplete ())
|
||||
{
|
||||
acq->getLedger ()->setAccepted ();
|
||||
setValidatedLedger (acq->getLedger ());
|
||||
mLedgerHistory.addValidatedLedger (acq->getLedger ());
|
||||
setFullLedger (acq->getLedger ());
|
||||
mLedgerHistory.addAcceptedLedger (acq->getLedger (), false);
|
||||
}
|
||||
else
|
||||
++fetchCount;
|
||||
@@ -439,8 +446,9 @@ void LedgerMaster::missingAcquireComplete (InboundLedger::pointer acq)
|
||||
|
||||
if (acq->isComplete ())
|
||||
{
|
||||
setValidatedLedger (acq->getLedger ());
|
||||
mLedgerHistory.addValidatedLedger (acq->getLedger ());
|
||||
acq->getLedger ()->setAccepted ();
|
||||
setFullLedger (acq->getLedger ());
|
||||
mLedgerHistory.addAcceptedLedger (acq->getLedger (), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -533,7 +541,7 @@ void LedgerMaster::fixMismatch (Ledger::ref ledger)
|
||||
CondLog (invalidate != 0, lsWARNING, LedgerMaster) << "All " << invalidate << " prior ledgers invalidated";
|
||||
}
|
||||
|
||||
void LedgerMaster::setValidatedLedger (Ledger::pointer ledger)
|
||||
void LedgerMaster::setFullLedger (Ledger::pointer ledger)
|
||||
{
|
||||
// A new ledger has been accepted as part of the trusted chain
|
||||
WriteLog (lsDEBUG, LedgerMaster) << "Ledger " << ledger->getLedgerSeq () << " accepted :" << ledger->getHash ();
|
||||
@@ -544,11 +552,13 @@ void LedgerMaster::setValidatedLedger (Ledger::pointer ledger)
|
||||
|
||||
boost::recursive_mutex::scoped_lock ml (mLock);
|
||||
|
||||
ledger->setValidated();
|
||||
|
||||
mCompleteLedgers.setValue (ledger->getLedgerSeq ());
|
||||
|
||||
ledger->pendSaveValidated ();
|
||||
if (Ledger::getHashByIndex (ledger->getLedgerSeq ()) != ledger->getHash ())
|
||||
{
|
||||
ledger->pendSave (false);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((ledger->getLedgerSeq () != 0) && mCompleteLedgers.hasValue (ledger->getLedgerSeq () - 1))
|
||||
{
|
||||
@@ -814,7 +824,7 @@ void LedgerMaster::pubThread ()
|
||||
BOOST_FOREACH (Ledger::ref l, ledgers)
|
||||
{
|
||||
WriteLog (lsDEBUG, LedgerMaster) << "Publishing ledger " << l->getLedgerSeq ();
|
||||
setValidatedLedger (l);
|
||||
setFullLedger (l); // OPTIMIZEME: This is actually more work than we need to do
|
||||
getApp().getOPs ().pubLedger (l);
|
||||
published = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user