Merge pull request #6670
332d607
tx_pool: mine stem txes in fake chain mode (moneromooo-monero)
This commit is contained in:
commit
cb882dfc55
@ -650,7 +650,7 @@ namespace cryptonote
|
||||
r = m_blockchain_storage.init(db.release(), m_nettype, m_offline, regtest ? ®test_test_options : test_options, fixed_difficulty, get_checkpoints);
|
||||
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize blockchain storage");
|
||||
|
||||
r = m_mempool.init(max_txpool_weight);
|
||||
r = m_mempool.init(max_txpool_weight, m_nettype == FAKECHAIN);
|
||||
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize memory pool");
|
||||
|
||||
// now that we have a valid m_blockchain_storage, we can clean out any
|
||||
|
@ -116,7 +116,7 @@ namespace cryptonote
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------
|
||||
tx_memory_pool::tx_memory_pool(Blockchain& bchs): m_blockchain(bchs), m_txpool_max_weight(DEFAULT_TXPOOL_MAX_WEIGHT), m_txpool_weight(0), m_cookie(0)
|
||||
tx_memory_pool::tx_memory_pool(Blockchain& bchs): m_blockchain(bchs), m_cookie(0), m_txpool_max_weight(DEFAULT_TXPOOL_MAX_WEIGHT), m_txpool_weight(0), m_mine_stem_txes(false)
|
||||
{
|
||||
|
||||
}
|
||||
@ -1351,13 +1351,18 @@ namespace cryptonote
|
||||
for (; sorted_it != m_txs_by_fee_and_receive_time.end(); ++sorted_it)
|
||||
{
|
||||
txpool_tx_meta_t meta;
|
||||
if (!m_blockchain.get_txpool_tx_meta(sorted_it->second, meta) || !meta.matches(relay_category::legacy))
|
||||
if (!m_blockchain.get_txpool_tx_meta(sorted_it->second, meta))
|
||||
{
|
||||
MERROR(" failed to find tx meta");
|
||||
continue;
|
||||
}
|
||||
LOG_PRINT_L2("Considering " << sorted_it->second << ", weight " << meta.weight << ", current block weight " << total_weight << "/" << max_total_weight << ", current coinbase " << print_money(best_coinbase));
|
||||
LOG_PRINT_L2("Considering " << sorted_it->second << ", weight " << meta.weight << ", current block weight " << total_weight << "/" << max_total_weight << ", current coinbase " << print_money(best_coinbase) << ", relay method " << (unsigned)meta.get_relay_method());
|
||||
|
||||
if (!meta.matches(relay_category::legacy) && !(m_mine_stem_txes && meta.get_relay_method() == relay_method::stem))
|
||||
{
|
||||
LOG_PRINT_L2(" tx relay method is " << (unsigned)meta.get_relay_method());
|
||||
continue;
|
||||
}
|
||||
if (meta.pruned)
|
||||
{
|
||||
LOG_PRINT_L2(" tx is pruned");
|
||||
@ -1522,7 +1527,7 @@ namespace cryptonote
|
||||
return n_removed;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
bool tx_memory_pool::init(size_t max_txpool_weight)
|
||||
bool tx_memory_pool::init(size_t max_txpool_weight, bool mine_stem_txes)
|
||||
{
|
||||
CRITICAL_REGION_LOCAL(m_transactions_lock);
|
||||
CRITICAL_REGION_LOCAL1(m_blockchain);
|
||||
@ -1578,6 +1583,7 @@ namespace cryptonote
|
||||
lock.commit();
|
||||
}
|
||||
|
||||
m_mine_stem_txes = mine_stem_txes;
|
||||
m_cookie = 0;
|
||||
|
||||
// Ignore deserialization error
|
||||
|
@ -205,10 +205,11 @@ namespace cryptonote
|
||||
* @brief loads pool state (if any) from disk, and initializes pool
|
||||
*
|
||||
* @param max_txpool_weight the max weight in bytes
|
||||
* @param mine_stem_txes whether to mine txes in stem relay mode
|
||||
*
|
||||
* @return true
|
||||
*/
|
||||
bool init(size_t max_txpool_weight = 0);
|
||||
bool init(size_t max_txpool_weight = 0, bool mine_stem_txes = false);
|
||||
|
||||
/**
|
||||
* @brief attempts to save the transaction pool state to disk
|
||||
@ -603,6 +604,7 @@ private:
|
||||
|
||||
size_t m_txpool_max_weight;
|
||||
size_t m_txpool_weight;
|
||||
bool m_mine_stem_txes;
|
||||
|
||||
mutable std::unordered_map<crypto::hash, std::tuple<bool, tx_verification_context, uint64_t, crypto::hash>> m_input_cache;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user