mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Add RPC "accept_ledger" function which processes all pending transactions (in standalone mode only)
and closes the ledger, opening a new one. The sequence number of the new open ledger is returned.
This commit is contained in:
@@ -443,7 +443,7 @@ void NetworkOPs::checkState(const boost::system::error_code& result)
|
||||
// check if the ledger is good enough to go to omFULL
|
||||
// Note: Do not go to omFULL if we don't have the previous ledger
|
||||
// check if the ledger is bad enough to go to omCONNECTED -- TODO
|
||||
if (theApp->getOPs().getNetworkTimeNC() < theApp->getMasterLedger().getCurrentLedger()->getCloseTimeNC())
|
||||
if (theApp->getOPs().getNetworkTimeNC() < mLedgerMaster->getCurrentLedger()->getCloseTimeNC())
|
||||
setMode(omFULL);
|
||||
}
|
||||
|
||||
@@ -454,7 +454,7 @@ void NetworkOPs::checkState(const boost::system::error_code& result)
|
||||
}
|
||||
|
||||
if ((!mConsensus) && (mMode != omDISCONNECTED))
|
||||
beginConsensus(networkClosed, theApp->getMasterLedger().getCurrentLedger());
|
||||
beginConsensus(networkClosed, mLedgerMaster->getCurrentLedger());
|
||||
if (mConsensus)
|
||||
mConsensus->timerEntry();
|
||||
}
|
||||
@@ -650,7 +650,7 @@ int NetworkOPs::beginConsensus(const uint256& networkClosed, Ledger::pointer clo
|
||||
assert(!mConsensus);
|
||||
prevLedger->setImmutable();
|
||||
mConsensus = boost::make_shared<LedgerConsensus>(
|
||||
networkClosed, prevLedger, theApp->getMasterLedger().getCurrentLedger()->getCloseTimeNC());
|
||||
networkClosed, prevLedger, mLedgerMaster->getCurrentLedger()->getCloseTimeNC());
|
||||
mConsensus->swapDefer(mDeferredProposals);
|
||||
|
||||
cLog(lsDEBUG) << "Initiating consensus engine";
|
||||
@@ -670,7 +670,7 @@ bool NetworkOPs::haveConsensusObject()
|
||||
if (!ledgerChange)
|
||||
{
|
||||
cLog(lsWARNING) << "Beginning consensus due to peer action";
|
||||
beginConsensus(networkClosed, theApp->getMasterLedger().getCurrentLedger());
|
||||
beginConsensus(networkClosed, mLedgerMaster->getCurrentLedger());
|
||||
}
|
||||
return mConsensus;
|
||||
}
|
||||
@@ -770,7 +770,7 @@ void NetworkOPs::mapComplete(const uint256& hash, SHAMap::ref map)
|
||||
|
||||
void NetworkOPs::endConsensus(bool correctLCL)
|
||||
{
|
||||
uint256 deadLedger = theApp->getMasterLedger().getClosedLedger()->getParentHash();
|
||||
uint256 deadLedger = mLedgerMaster->getClosedLedger()->getParentHash();
|
||||
std::vector<Peer::pointer> peerList = theApp->getConnectionPool().getPeerVector();
|
||||
BOOST_FOREACH(Peer::ref it, peerList)
|
||||
if (it && (it->getClosedLedgerHash() == deadLedger))
|
||||
@@ -1222,6 +1222,12 @@ void NetworkOPs::newLCL(int proposers, int convergeTime, const uint256& ledgerHa
|
||||
mLastCloseHash = ledgerHash;
|
||||
}
|
||||
|
||||
uint32 NetworkOPs::acceptLedger()
|
||||
{ // accept the current transaction tree, return the new ledger's sequence
|
||||
beginConsensus(mLedgerMaster->getClosedLedger()->getHash(), mLedgerMaster->getCurrentLedger());
|
||||
mConsensus->simulate();
|
||||
return mLedgerMaster->getCurrentLedger()->getLedgerSeq();
|
||||
}
|
||||
|
||||
#if 0
|
||||
void NetworkOPs::subAccountChanges(InfoSub* ispListener, const uint256 uLedgerHash)
|
||||
|
||||
Reference in New Issue
Block a user