Remove addScoreTxs()
This commit is contained in:
parent
6dd4bc289c
commit
d2e46e1b5c
2 changed files with 2 additions and 64 deletions
|
@ -338,66 +338,6 @@ void BlockAssembler::AddToBlock(CTxMemPool::txiter iter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlockAssembler::addScoreTxs()
|
|
||||||
{
|
|
||||||
std::priority_queue<CTxMemPool::txiter, std::vector<CTxMemPool::txiter>, ScoreCompare> clearedTxs;
|
|
||||||
CTxMemPool::setEntries waitSet;
|
|
||||||
CTxMemPool::indexed_transaction_set::index<mining_score>::type::iterator mi = mempool.mapTx.get<mining_score>().begin();
|
|
||||||
CTxMemPool::txiter iter;
|
|
||||||
while (!blockFinished && (mi != mempool.mapTx.get<mining_score>().end() || !clearedTxs.empty()))
|
|
||||||
{
|
|
||||||
// If no txs that were previously postponed are available to try
|
|
||||||
// again, then try the next highest score tx
|
|
||||||
if (clearedTxs.empty()) {
|
|
||||||
iter = mempool.mapTx.project<0>(mi);
|
|
||||||
mi++;
|
|
||||||
}
|
|
||||||
// If a previously postponed tx is available to try again, then it
|
|
||||||
// has higher score than all untried so far txs
|
|
||||||
else {
|
|
||||||
iter = clearedTxs.top();
|
|
||||||
clearedTxs.pop();
|
|
||||||
}
|
|
||||||
|
|
||||||
// If tx already in block, skip (added by addPriorityTxs)
|
|
||||||
if (inBlock.count(iter)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// cannot accept witness transactions into a non-witness block
|
|
||||||
if (!fIncludeWitness && !iter->GetTx().wit.IsNull())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// If tx is dependent on other mempool txs which haven't yet been included
|
|
||||||
// then put it in the waitSet
|
|
||||||
if (isStillDependent(iter)) {
|
|
||||||
waitSet.insert(iter);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the fee rate is below the min fee rate for mining, then we're done
|
|
||||||
// adding txs based on score (fee rate)
|
|
||||||
if (iter->GetModifiedFee() < ::minRelayTxFee.GetFee(iter->GetTxSize()) && nBlockSize >= nBlockMinSize) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If this tx fits in the block add it, otherwise keep looping
|
|
||||||
if (TestForBlock(iter)) {
|
|
||||||
AddToBlock(iter);
|
|
||||||
|
|
||||||
// This tx was successfully added, so
|
|
||||||
// add transactions that depend on this one to the priority queue to try again
|
|
||||||
BOOST_FOREACH(CTxMemPool::txiter child, mempool.GetMemPoolChildren(iter))
|
|
||||||
{
|
|
||||||
if (waitSet.count(child)) {
|
|
||||||
clearedTxs.push(child);
|
|
||||||
waitSet.erase(child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void BlockAssembler::UpdatePackagesForAdded(const CTxMemPool::setEntries& alreadyAdded,
|
void BlockAssembler::UpdatePackagesForAdded(const CTxMemPool::setEntries& alreadyAdded,
|
||||||
indexed_modified_transaction_set &mapModifiedTx)
|
indexed_modified_transaction_set &mapModifiedTx)
|
||||||
{
|
{
|
||||||
|
|
|
@ -157,7 +157,7 @@ private:
|
||||||
int64_t nLockTimeCutoff;
|
int64_t nLockTimeCutoff;
|
||||||
const CChainParams& chainparams;
|
const CChainParams& chainparams;
|
||||||
|
|
||||||
// Variables used for addScoreTxs and addPriorityTxs
|
// Variables used for addPriorityTxs
|
||||||
int lastFewTxs;
|
int lastFewTxs;
|
||||||
bool blockFinished;
|
bool blockFinished;
|
||||||
|
|
||||||
|
@ -174,14 +174,12 @@ private:
|
||||||
void AddToBlock(CTxMemPool::txiter iter);
|
void AddToBlock(CTxMemPool::txiter iter);
|
||||||
|
|
||||||
// Methods for how to add transactions to a block.
|
// Methods for how to add transactions to a block.
|
||||||
/** Add transactions based on modified feerate */
|
|
||||||
void addScoreTxs();
|
|
||||||
/** Add transactions based on tx "priority" */
|
/** Add transactions based on tx "priority" */
|
||||||
void addPriorityTxs();
|
void addPriorityTxs();
|
||||||
/** Add transactions based on feerate including unconfirmed ancestors */
|
/** Add transactions based on feerate including unconfirmed ancestors */
|
||||||
void addPackageTxs();
|
void addPackageTxs();
|
||||||
|
|
||||||
// helper function for addScoreTxs and addPriorityTxs
|
// helper function for addPriorityTxs
|
||||||
/** Test if tx will still "fit" in the block */
|
/** Test if tx will still "fit" in the block */
|
||||||
bool TestForBlock(CTxMemPool::txiter iter);
|
bool TestForBlock(CTxMemPool::txiter iter);
|
||||||
/** Test if tx still has unconfirmed parents not yet in block */
|
/** Test if tx still has unconfirmed parents not yet in block */
|
||||||
|
|
Loading…
Reference in a new issue