mirror of
https://github.com/monero-project/monero.git
synced 2024-12-23 20:19:34 +00:00
tx_pool: remove transactions if they're in the blockchain
When starting up, if the pool state was not saved, the pool might contain transactions which made it into the blockchain, so these need removing
This commit is contained in:
parent
558cfc31ca
commit
aaeb164cf6
1 changed files with 9 additions and 1 deletions
|
@ -717,8 +717,16 @@ namespace cryptonote
|
||||||
size_t n_removed = 0;
|
size_t n_removed = 0;
|
||||||
size_t tx_size_limit = get_transaction_size_limit(version);
|
size_t tx_size_limit = get_transaction_size_limit(version);
|
||||||
for (auto it = m_transactions.begin(); it != m_transactions.end(); ) {
|
for (auto it = m_transactions.begin(); it != m_transactions.end(); ) {
|
||||||
|
bool remove = false;
|
||||||
if (it->second.blob_size >= tx_size_limit) {
|
if (it->second.blob_size >= tx_size_limit) {
|
||||||
LOG_PRINT_L1("Transaction " << get_transaction_hash(it->second.tx) << " is too big (" << it->second.blob_size << " bytes), removing it from pool");
|
LOG_PRINT_L1("Transaction " << it->first << " is too big (" << it->second.blob_size << " bytes), removing it from pool");
|
||||||
|
remove = true;
|
||||||
|
}
|
||||||
|
else if (m_blockchain.have_tx(it->first)) {
|
||||||
|
LOG_PRINT_L1("Transaction " << it->first << " is in the blockchain, removing it from pool");
|
||||||
|
remove = true;
|
||||||
|
}
|
||||||
|
if (remove) {
|
||||||
remove_transaction_keyimages(it->second.tx);
|
remove_transaction_keyimages(it->second.tx);
|
||||||
auto sorted_it = find_tx_in_sorted_container(it->first);
|
auto sorted_it = find_tx_in_sorted_container(it->first);
|
||||||
if (sorted_it == m_txs_by_fee_and_receive_time.end())
|
if (sorted_it == m_txs_by_fee_and_receive_time.end())
|
||||||
|
|
Loading…
Reference in a new issue