diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2022-05-26 21:21:18 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2022-05-26 21:21:18 -0500 |
| commit | d52b7d0e99a2135295b4b83deba388844c511b2c (patch) | |
| tree | 9624a75403482a12e3f322dbdfd9b6a4f81e85a3 /src/cryptonote_core/tx_pool.cpp | |
| parent | 7b0b06af841803f797dff03236f9884e172a5e15 (diff) | |
| parent | b9d2c788bc51364ccd8728345aeef64f5cbd3a15 (diff) | |
| download | monzero-core-d52b7d0e99a2135295b4b83deba388844c511b2c.tar.gz monzero-core-d52b7d0e99a2135295b4b83deba388844c511b2c.tar.xz monzero-core-d52b7d0e99a2135295b4b83deba388844c511b2c.zip | |
Merge pull request #8326
b9d2c78 fix backoff delay logic when re-relaying txs (j-berman)
Diffstat (limited to 'src/cryptonote_core/tx_pool.cpp')
| -rw-r--r-- | src/cryptonote_core/tx_pool.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp index c27261860..a68da0e62 100644 --- a/src/cryptonote_core/tx_pool.cpp +++ b/src/cryptonote_core/tx_pool.cpp @@ -97,9 +97,9 @@ namespace cryptonote constexpr const std::chrono::seconds forward_delay_average{CRYPTONOTE_FORWARD_DELAY_AVERAGE}; // a kind of increasing backoff within min/max bounds - uint64_t get_relay_delay(time_t now, time_t received) + uint64_t get_relay_delay(time_t last_relay, time_t received) { - time_t d = (now - received + MIN_RELAY_TIME) / MIN_RELAY_TIME * MIN_RELAY_TIME; + time_t d = (last_relay - received + MIN_RELAY_TIME) / MIN_RELAY_TIME * MIN_RELAY_TIME; if (d > MAX_RELAY_TIME) d = MAX_RELAY_TIME; return d; @@ -779,7 +779,7 @@ namespace cryptonote case relay_method::local: case relay_method::fluff: case relay_method::block: - if (now - meta.last_relayed_time <= get_relay_delay(now, meta.receive_time)) + if (now - meta.last_relayed_time <= get_relay_delay(meta.last_relayed_time, meta.receive_time)) return true; // continue to next tx break; } @@ -812,7 +812,7 @@ namespace cryptonote function is only called every ~2 minutes, so this resetting should be unnecessary, but is primarily a precaution against potential changes to the callback routines. */ - elem.second.last_relayed_time = now + get_relay_delay(now, elem.second.receive_time); + elem.second.last_relayed_time = now + get_relay_delay(elem.second.last_relayed_time, elem.second.receive_time); m_blockchain.update_txpool_tx(elem.first, elem.second); } |
