feat(net): correct per-response size metric to avoid capacity/empty-block inflation (#18553)

This commit is contained in:
phrwlk
2025-09-24 15:21:51 +03:00
committed by GitHub
parent 27c0b7b8a0
commit 6631fc4e82

View File

@@ -12,7 +12,6 @@ use reth_network_peers::{PeerId, WithPeerId};
use reth_primitives_traits::{Block, GotExpected, InMemorySize, SealedBlock, SealedHeader};
use std::{
collections::VecDeque,
mem,
pin::Pin,
sync::Arc,
task::{ready, Context, Poll},
@@ -166,11 +165,10 @@ where
where
C::Body: InMemorySize,
{
let bodies_capacity = bodies.capacity();
let bodies_len = bodies.len();
let mut bodies = bodies.into_iter().peekable();
let mut total_size = bodies_capacity * mem::size_of::<C::Body>();
let mut total_size = 0;
while bodies.peek().is_some() {
let next_header = match self.pending_headers.pop_front() {
Some(header) => header,
@@ -178,8 +176,6 @@ where
};
if next_header.is_empty() {
// increment empty block body metric
total_size += mem::size_of::<C::Body>();
self.buffer.push(BlockResponse::Empty(next_header));
} else {
let next_body = bodies.next().unwrap();