mirror of
https://github.com/monero-project/monero.git
synced 2024-12-27 06:49:26 -05:00
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);
|
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");
|
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");
|
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
|
// 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)
|
for (; sorted_it != m_txs_by_fee_and_receive_time.end(); ++sorted_it)
|
||||||
{
|
{
|
||||||
txpool_tx_meta_t meta;
|
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");
|
MERROR(" failed to find tx meta");
|
||||||
continue;
|
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)
|
if (meta.pruned)
|
||||||
{
|
{
|
||||||
LOG_PRINT_L2(" tx is pruned");
|
LOG_PRINT_L2(" tx is pruned");
|
||||||
@ -1522,7 +1527,7 @@ namespace cryptonote
|
|||||||
return n_removed;
|
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_LOCAL(m_transactions_lock);
|
||||||
CRITICAL_REGION_LOCAL1(m_blockchain);
|
CRITICAL_REGION_LOCAL1(m_blockchain);
|
||||||
@ -1578,6 +1583,7 @@ namespace cryptonote
|
|||||||
lock.commit();
|
lock.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_mine_stem_txes = mine_stem_txes;
|
||||||
m_cookie = 0;
|
m_cookie = 0;
|
||||||
|
|
||||||
// Ignore deserialization error
|
// Ignore deserialization error
|
||||||
|
@ -205,10 +205,11 @@ namespace cryptonote
|
|||||||
* @brief loads pool state (if any) from disk, and initializes pool
|
* @brief loads pool state (if any) from disk, and initializes pool
|
||||||
*
|
*
|
||||||
* @param max_txpool_weight the max weight in bytes
|
* @param max_txpool_weight the max weight in bytes
|
||||||
|
* @param mine_stem_txes whether to mine txes in stem relay mode
|
||||||
*
|
*
|
||||||
* @return true
|
* @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
|
* @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_max_weight;
|
||||||
size_t m_txpool_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;
|
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