mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Fix a huge delay with --net
This commit is contained in:
@@ -369,32 +369,29 @@ void LedgerMaster::checkPublish(const uint256& hash, uint32 seq)
|
|||||||
|
|
||||||
cLog(lsTRACE) << "Sweeping for ledgers to publish: minval=" << minVal;
|
cLog(lsTRACE) << "Sweeping for ledgers to publish: minval=" << minVal;
|
||||||
|
|
||||||
// See if any later ledgers have at least the minimum number of validations
|
// See if this ledger have at least the minimum number of validations
|
||||||
for (seq = mFinalizedLedger->getLedgerSeq(); seq > mLastValidateSeq; --seq)
|
Ledger::pointer ledger = mLedgerHistory.getLedgerBySeq(seq);
|
||||||
{
|
if (ledger && (theApp->getValidations().getTrustedValidationCount(ledger->getHash()) >= minVal))
|
||||||
Ledger::pointer ledger = mLedgerHistory.getLedgerBySeq(seq);
|
{ // this ledger (and any priors) can be published
|
||||||
if (ledger && (theApp->getValidations().getTrustedValidationCount(ledger->getHash()) >= minVal))
|
theApp->getOPs().clearNeedNetworkLedger();
|
||||||
{ // this ledger (and any priors) can be published
|
if (ledger->getLedgerSeq() > (mLastValidateSeq + MAX_LEDGER_GAP))
|
||||||
theApp->getOPs().clearNeedNetworkLedger();
|
mLastValidateSeq = ledger->getLedgerSeq() - MAX_LEDGER_GAP;
|
||||||
if (ledger->getLedgerSeq() > (mLastValidateSeq + MAX_LEDGER_GAP))
|
|
||||||
mLastValidateSeq = ledger->getLedgerSeq() - MAX_LEDGER_GAP;
|
|
||||||
|
|
||||||
cLog(lsTRACE) << "Ledger " << ledger->getLedgerSeq() << " can be published";
|
cLog(lsTRACE) << "Ledger " << ledger->getLedgerSeq() << " can be published";
|
||||||
for (uint32 pubSeq = mLastValidateSeq + 1; pubSeq <= seq; ++pubSeq)
|
for (uint32 pubSeq = mLastValidateSeq + 1; pubSeq <= seq; ++pubSeq)
|
||||||
|
{
|
||||||
|
uint256 pubHash = ledger->getLedgerHash(pubSeq);
|
||||||
|
if (pubHash.isZero()) // CHECKME: Should we double-check validations in this case?
|
||||||
|
pubHash = mLedgerHistory.getLedgerHash(pubSeq);
|
||||||
|
if (pubHash.isNonZero())
|
||||||
{
|
{
|
||||||
uint256 pubHash = ledger->getLedgerHash(pubSeq);
|
Ledger::pointer ledger = mLedgerHistory.getLedgerByHash(pubHash);
|
||||||
if (pubHash.isZero()) // CHECKME: Should we double-check validations in this case?
|
if (ledger)
|
||||||
pubHash = mLedgerHistory.getLedgerHash(pubSeq);
|
|
||||||
if (pubHash.isNonZero())
|
|
||||||
{
|
{
|
||||||
Ledger::pointer ledger = mLedgerHistory.getLedgerByHash(pubHash);
|
mPubLedgers.push_back(ledger);
|
||||||
if (ledger)
|
mValidLedger = ledger;
|
||||||
{
|
mLastValidateSeq = ledger->getLedgerSeq();
|
||||||
mPubLedgers.push_back(ledger);
|
mLastValidateHash = ledger->getHash();
|
||||||
mValidLedger = ledger;
|
|
||||||
mLastValidateSeq = ledger->getLedgerSeq();
|
|
||||||
mLastValidateHash = ledger->getHash();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user