From 3d4d4f0d92d42809e74377e4380abdc70f74de5d Mon Sep 17 00:00:00 2001 From: monlovesmango Date: Thu, 24 Jul 2025 18:49:48 +0000 Subject: [PATCH] scripted-diff: rename "ann" variables to "latency_score" -BEGIN VERIFY SCRIPT- sed -i 's/max_global_ann/max_global_latency_score/g' src/node/txorphanage.cpp sed -i 's/max_global_ann/max_global_latency_score/g' src/node/txorphanage.h sed -i 's/max_global_ann/max_global_latency_score/g' src/test/orphanage_tests.cpp sed -i 's/max_global_ann/max_global_latency_score/g' src/test/fuzz/txorphan.cpp sed -i 's/max_global_ann/max_global_latency_score/g' src/bench/txorphanage.cpp sed -i 's/max_ann/max_lat/g' src/node/txorphanage.cpp -END VERIFY SCRIPT- --- src/bench/txorphanage.cpp | 6 +++--- src/node/txorphanage.cpp | 16 ++++++++-------- src/node/txorphanage.h | 2 +- src/test/fuzz/txorphan.cpp | 10 +++++----- src/test/orphanage_tests.cpp | 8 ++++---- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/bench/txorphanage.cpp b/src/bench/txorphanage.cpp index d2ded290e66..dd614fa3f9d 100644 --- a/src/bench/txorphanage.cpp +++ b/src/bench/txorphanage.cpp @@ -68,7 +68,7 @@ static void OrphanageSinglePeerEviction(benchmark::Bench& bench) auto large_tx = MakeTransactionBulkedTo(1, MAX_STANDARD_TX_WEIGHT, det_rand); assert(GetTransactionWeight(*large_tx) <= MAX_STANDARD_TX_WEIGHT); - const auto orphanage{node::MakeTxOrphanage(/*max_global_ann=*/node::DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE, /*reserved_peer_usage=*/node::DEFAULT_RESERVED_ORPHAN_WEIGHT_PER_PEER)}; + const auto orphanage{node::MakeTxOrphanage(/*max_global_latency_score=*/node::DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE, /*reserved_peer_usage=*/node::DEFAULT_RESERVED_ORPHAN_WEIGHT_PER_PEER)}; // Populate the orphanage. To maximize the number of evictions, first fill up with tiny transactions, then add a huge one. NodeId peer{0}; @@ -131,7 +131,7 @@ static void OrphanageMultiPeerEviction(benchmark::Bench& bench) indexes.resize(NUM_UNIQUE_TXNS); std::iota(indexes.begin(), indexes.end(), 0); - const auto orphanage{node::MakeTxOrphanage(/*max_global_ann=*/node::DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE, /*reserved_peer_usage=*/node::DEFAULT_RESERVED_ORPHAN_WEIGHT_PER_PEER)}; + const auto orphanage{node::MakeTxOrphanage(/*max_global_latency_score=*/node::DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE, /*reserved_peer_usage=*/node::DEFAULT_RESERVED_ORPHAN_WEIGHT_PER_PEER)}; // Every peer sends the same transactions, all from shared_txs. // Each peer has 1 or 2 assigned transactions, which they must place as the last and second-to-last positions. // The assignments ensure that every transaction is in some peer's last 2 transactions, and is thus remains in the orphanage until the end of LimitOrphans. @@ -189,7 +189,7 @@ static void OrphanageMultiPeerEviction(benchmark::Bench& bench) static void OrphanageEraseAll(benchmark::Bench& bench, bool block_or_disconnect) { FastRandomContext det_rand{true}; - const auto orphanage{node::MakeTxOrphanage(/*max_global_ann=*/node::DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE, /*reserved_peer_usage=*/node::DEFAULT_RESERVED_ORPHAN_WEIGHT_PER_PEER)}; + const auto orphanage{node::MakeTxOrphanage(/*max_global_latency_score=*/node::DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE, /*reserved_peer_usage=*/node::DEFAULT_RESERVED_ORPHAN_WEIGHT_PER_PEER)}; // This is an unrealistically large number of inputs for a block, as there is almost no room given to witness data, // outputs, and overhead for individual transactions. The entire block is 1 transaction with 20,000 inputs. constexpr unsigned int NUM_BLOCK_INPUTS{MAX_BLOCK_WEIGHT / APPROX_WEIGHT_PER_INPUT}; diff --git a/src/node/txorphanage.cpp b/src/node/txorphanage.cpp index 6dbcbc32371..43efcda77e6 100644 --- a/src/node/txorphanage.cpp +++ b/src/node/txorphanage.cpp @@ -189,8 +189,8 @@ class TxOrphanageImpl final : public TxOrphanage { public: TxOrphanageImpl() = default; - TxOrphanageImpl(Count max_global_ann, Usage reserved_peer_usage) : - m_max_global_latency_score{max_global_ann}, + TxOrphanageImpl(Count max_global_latency_score, Usage reserved_peer_usage) : + m_max_global_latency_score{max_global_latency_score}, m_reserved_usage_per_peer{reserved_peer_usage} {} ~TxOrphanageImpl() noexcept override = default; @@ -447,7 +447,7 @@ void TxOrphanageImpl::LimitOrphans() // Even though it's possible for MaxPeerLatencyScore to increase within this call to LimitOrphans // (e.g. if a peer's orphans are removed entirely, changing the number of peers), use consistent limits throughout. - const auto max_ann{MaxPeerLatencyScore()}; + const auto max_lat{MaxPeerLatencyScore()}; const auto max_mem{ReservedPeerUsage()}; // We have exceeded the global limit(s). Now, identify who is using too much and evict their orphans. @@ -456,7 +456,7 @@ void TxOrphanageImpl::LimitOrphans() heap_peer_dos.reserve(m_peer_orphanage_info.size()); for (const auto& [nodeid, entry] : m_peer_orphanage_info) { // Performance optimization: only consider peers with a DoS score > 1. - const auto dos_score = entry.GetDosScore(max_ann, max_mem); + const auto dos_score = entry.GetDosScore(max_lat, max_mem); if (dos_score >> FeeFrac{1, 1}) { heap_peer_dos.emplace_back(nodeid, dos_score); } @@ -506,7 +506,7 @@ void TxOrphanageImpl::LimitOrphans() // If we erased the last orphan from this peer, it_worst_peer will be invalidated. it_worst_peer = m_peer_orphanage_info.find(worst_peer); - if (it_worst_peer == m_peer_orphanage_info.end() || it_worst_peer->second.GetDosScore(max_ann, max_mem) <= dos_threshold) break; + if (it_worst_peer == m_peer_orphanage_info.end() || it_worst_peer->second.GetDosScore(max_lat, max_mem) <= dos_threshold) break; } LogDebug(BCLog::TXPACKAGES, "peer=%d orphanage overflow, removed %u of %u announcements\n", worst_peer, num_erased_this_round, starting_num_ann); @@ -515,7 +515,7 @@ void TxOrphanageImpl::LimitOrphans() // Unless this peer is empty, put it back in the heap so we continue to consider evicting its orphans. // We may select this peer for evictions again if there are multiple DoSy peers. if (it_worst_peer != m_peer_orphanage_info.end() && it_worst_peer->second.m_count_announcements > 0) { - heap_peer_dos.emplace_back(worst_peer, it_worst_peer->second.GetDosScore(max_ann, max_mem)); + heap_peer_dos.emplace_back(worst_peer, it_worst_peer->second.GetDosScore(max_lat, max_mem)); std::push_heap(heap_peer_dos.begin(), heap_peer_dos.end(), compare_score); } } while (true); @@ -774,8 +774,8 @@ std::unique_ptr MakeTxOrphanage() noexcept { return std::make_unique(); } -std::unique_ptr MakeTxOrphanage(TxOrphanage::Count max_global_ann, TxOrphanage::Usage reserved_peer_usage) noexcept +std::unique_ptr MakeTxOrphanage(TxOrphanage::Count max_global_latency_score, TxOrphanage::Usage reserved_peer_usage) noexcept { - return std::make_unique(max_global_ann, reserved_peer_usage); + return std::make_unique(max_global_latency_score, reserved_peer_usage); } } // namespace node diff --git a/src/node/txorphanage.h b/src/node/txorphanage.h index 2160879f287..5cbf3451d0d 100644 --- a/src/node/txorphanage.h +++ b/src/node/txorphanage.h @@ -146,6 +146,6 @@ public: /** Create a new TxOrphanage instance */ std::unique_ptr MakeTxOrphanage() noexcept; -std::unique_ptr MakeTxOrphanage(TxOrphanage::Count max_global_ann, TxOrphanage::Usage reserved_peer_usage) noexcept; +std::unique_ptr MakeTxOrphanage(TxOrphanage::Count max_global_latency_score, TxOrphanage::Usage reserved_peer_usage) noexcept; } // namespace node #endif // BITCOIN_NODE_TXORPHANAGE_H diff --git a/src/test/fuzz/txorphan.cpp b/src/test/fuzz/txorphan.cpp index 5bc26f74640..3c795430570 100644 --- a/src/test/fuzz/txorphan.cpp +++ b/src/test/fuzz/txorphan.cpp @@ -470,9 +470,9 @@ FUZZ_TARGET(txorphanage_sim) // 3. Initialize real orphanage // - auto max_global_ann = provider.ConsumeIntegralInRange(NUM_PEERS, MAX_ANN); + auto max_global_latency_score = provider.ConsumeIntegralInRange(NUM_PEERS, MAX_ANN); auto reserved_peer_usage = provider.ConsumeIntegralInRange(1, total_usage); - auto real = node::MakeTxOrphanage(max_global_ann, reserved_peer_usage); + auto real = node::MakeTxOrphanage(max_global_latency_score, reserved_peer_usage); // // 4. Functions and data structures for the simulation. @@ -683,7 +683,7 @@ FUZZ_TARGET(txorphanage_sim) } } // Always trim after each command if needed. - const auto max_ann = max_global_ann / std::max(1, count_peers_fn()); + const auto max_ann = max_global_latency_score / std::max(1, count_peers_fn()); const auto max_mem = reserved_peer_usage; while (true) { // Count global usage and number of peers. @@ -813,12 +813,12 @@ FUZZ_TARGET(txorphanage_sim) // CountUniqueOrphans assert(unique_orphans == real->CountUniqueOrphans()); // MaxGlobalLatencyScore - assert(max_global_ann == real->MaxGlobalLatencyScore()); + assert(max_global_latency_score == real->MaxGlobalLatencyScore()); // ReservedPeerUsage assert(reserved_peer_usage == real->ReservedPeerUsage()); // MaxPeerLatencyScore auto present_peers = count_peers_fn(); - assert(max_global_ann / std::max(1, present_peers) == real->MaxPeerLatencyScore()); + assert(max_global_latency_score / std::max(1, present_peers) == real->MaxPeerLatencyScore()); // MaxGlobalUsage assert(reserved_peer_usage * std::max(1, present_peers) == real->MaxGlobalUsage()); // TotalLatencyScore. diff --git a/src/test/orphanage_tests.cpp b/src/test/orphanage_tests.cpp index 2de8693a5df..17ddc71a207 100644 --- a/src/test/orphanage_tests.cpp +++ b/src/test/orphanage_tests.cpp @@ -94,8 +94,8 @@ BOOST_AUTO_TEST_CASE(peer_dos_limits) { // Test announcement limits NodeId peer{8}; - auto orphanage_low_ann = node::MakeTxOrphanage(/*max_global_ann=*/1, /*reserved_peer_usage=*/TX_SIZE * 10); - auto orphanage_low_mem = node::MakeTxOrphanage(/*max_global_ann=*/10, /*reserved_peer_usage=*/TX_SIZE); + auto orphanage_low_ann = node::MakeTxOrphanage(/*max_global_latency_score=*/1, /*reserved_peer_usage=*/TX_SIZE * 10); + auto orphanage_low_mem = node::MakeTxOrphanage(/*max_global_latency_score=*/10, /*reserved_peer_usage=*/TX_SIZE); // Add the first transaction orphanage_low_ann->AddTx(txns.at(0), peer); @@ -119,7 +119,7 @@ BOOST_AUTO_TEST_CASE(peer_dos_limits) { // Test latency score limits NodeId peer{10}; - auto orphanage_low_ann = node::MakeTxOrphanage(/*max_global_ann=*/5, /*reserved_peer_usage=*/TX_SIZE * 1000); + auto orphanage_low_ann = node::MakeTxOrphanage(/*max_global_latency_score=*/5, /*reserved_peer_usage=*/TX_SIZE * 1000); // Add the first transaction orphanage_low_ann->AddTx(txns.at(0), peer); @@ -153,7 +153,7 @@ BOOST_AUTO_TEST_CASE(peer_dos_limits) // Test announcement limits NodeId peer{9}; - auto orphanage = node::MakeTxOrphanage(/*max_global_ann=*/3, /*reserved_peer_usage=*/TX_SIZE * 10); + auto orphanage = node::MakeTxOrphanage(/*max_global_latency_score=*/3, /*reserved_peer_usage=*/TX_SIZE * 10); // First add a tx which will be made reconsiderable. orphanage->AddTx(children.at(0), peer);