Fix some mishandling of genesis block close timing.

This commit is contained in:
JoelKatz
2012-06-20 13:40:10 -07:00
parent 796e1443c6
commit 94bc059f87
4 changed files with 12 additions and 3 deletions

View File

@@ -463,12 +463,18 @@ void Ledger::setCloseTime(boost::posix_time::ptime ptm)
mCloseTime = iToSeconds(ptm);
}
uint64 Ledger::sGenesisClose = 0;
uint64 Ledger::getNextLedgerClose() const
{
if (mCloseTime == 0)
{
uint64 closeTime = theApp->getOPs().getNetworkTimeNC() + mLedgerInterval - 1;
return closeTime - (closeTime % mLedgerInterval);
if (sGenesisClose == 0)
{
uint64 closeTime = theApp->getOPs().getNetworkTimeNC() + mLedgerInterval - 1;
sGenesisClose = closeTime - (closeTime % mLedgerInterval);
}
return sGenesisClose;
}
return mCloseTime + mLedgerInterval;
}

View File

@@ -67,6 +67,8 @@ private:
uint16 mLedgerInterval;
bool mClosed, mValidHash, mAccepted, mImmutable;
static uint64 sGenesisClose;
SHAMap::pointer mTransactionMap, mAccountStateMap;
mutable boost::recursive_mutex mLock;

View File

@@ -824,6 +824,7 @@ void LedgerConsensus::accept(SHAMap::pointer set)
if (mValidating)
{
assert (theApp->getOPs().getNetworkTimeNC() > newLCL->getCloseTimeNC());
SerializedValidation::pointer v = boost::make_shared<SerializedValidation>
(newLCLHash, newLCL->getCloseTimeNC(), mOurPosition->peekSeed(), true);
v->setTrusted();

View File

@@ -15,7 +15,7 @@ bool ValidationCollection::addValidation(SerializedValidation::pointer val)
if ((now > valClose) && (now < (valClose + 2 * LEDGER_INTERVAL)))
isTrusted = true;
else
Log(lsWARNING) << "Received stale validation";
Log(lsWARNING) << "Received stale validation now=" << now << ", close=" << valClose;
}
uint256 hash = val->getLedgerHash();