Revert "Don't save unvalidated transactions to any transaction database."

This reverts commit 28a7e58fd4.
This commit is contained in:
Vinnie Falco
2013-07-25 15:32:36 -07:00
parent 28a7e58fd4
commit bb85d67f37
7 changed files with 69 additions and 53 deletions

View File

@@ -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;
}