From 3359e9f9d54457012c20b17be2c38bca2d9e1307 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Thu, 9 Oct 2025 14:42:07 -0300 Subject: [PATCH 1/9] Initial test --- .../networking/p2p/rlpx/connection/server.rs | 21 +++++++++++++++++-- crates/networking/p2p/rlpx/utils.rs | 6 +++--- crates/networking/p2p/types.rs | 13 ++++++++++++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index 16665ca3c28..aa409236bbc 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -804,8 +804,25 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul } if let Err(e) = state.blockchain.add_transaction_to_pool(tx.clone()).await { - log_peer_warn(&state.node, &format!("Error adding transaction: {e}")); - continue; + match e { + // Some of the more common mempool errors are logged at debug level, we might want to move all of them to debug in the future + ethrex_blockchain::error::MempoolError::NonceTooLow + | ethrex_blockchain::error::MempoolError::NotEnoughBalance + | ethrex_blockchain::error::MempoolError::UnderpricedReplacement => { + log_peer_warn( + &state.node, + &format!("Error adding transaction common: {e}"), + ); + continue; + } + _ => { + log_peer_warn( + &state.node, + &format!("Error adding transaction: {e}"), + ); + continue; + } + } } } state diff --git a/crates/networking/p2p/rlpx/utils.rs b/crates/networking/p2p/rlpx/utils.rs index a12823b1461..5a4eebe4308 100644 --- a/crates/networking/p2p/rlpx/utils.rs +++ b/crates/networking/p2p/rlpx/utils.rs @@ -83,14 +83,14 @@ pub fn snappy_decompress(msg_data: &[u8]) -> Result, RLPDecodeError> { } pub(crate) fn log_peer_debug(node: &Node, text: &str) { - debug!("[{0}]: {1}", node, text) + debug!(client_name = node.client_name(), "[{0}]: {1}", node, text) } pub(crate) fn log_peer_error(node: &Node, text: &str) { - error!("[{0}]: {1}", node, text) + error!(client_name = node.client_name(), "[{0}]: {1}", node, text) } pub(crate) fn log_peer_warn(node: &Node, text: &str) { - warn!("[{0}]: {1}", node, text) + warn!(client_name = node.client_name(), "[{0}]: {1}", node, text) } #[cfg(test)] diff --git a/crates/networking/p2p/types.rs b/crates/networking/p2p/types.rs index fa86145dcaa..2e698472c2e 100644 --- a/crates/networking/p2p/types.rs +++ b/crates/networking/p2p/types.rs @@ -145,6 +145,19 @@ impl Node { } } + pub fn client_name(&self) -> &str { + self.version + .as_deref() + .and_then(|version| { + let base = version + .split_once('/') + .map(|(name, _)| name.trim()) + .unwrap_or_else(|| version.trim()); + if base.is_empty() { None } else { Some(base) } + }) + .unwrap_or("unknown") + } + pub fn from_enode_url(enode: &str) -> Result { let public_key = H512::from_str(&enode[8..136]) .map_err(|_| NodeError::ParseError("Could not parse public_key".into()))?; From 4d4c8a8490042dc6643b94cf1fcfa77054e64261 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Thu, 9 Oct 2025 15:21:58 -0300 Subject: [PATCH 2/9] Add the node_client name to the log message isntead of as metadata --- crates/networking/p2p/rlpx/utils.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/networking/p2p/rlpx/utils.rs b/crates/networking/p2p/rlpx/utils.rs index 5a4eebe4308..43465435dfe 100644 --- a/crates/networking/p2p/rlpx/utils.rs +++ b/crates/networking/p2p/rlpx/utils.rs @@ -83,14 +83,14 @@ pub fn snappy_decompress(msg_data: &[u8]) -> Result, RLPDecodeError> { } pub(crate) fn log_peer_debug(node: &Node, text: &str) { - debug!(client_name = node.client_name(), "[{0}]: {1}", node, text) + debug!("{0}/[{1}]: {2}", node.client_name(), node, text) } pub(crate) fn log_peer_error(node: &Node, text: &str) { - error!(client_name = node.client_name(), "[{0}]: {1}", node, text) + error!("{0}/[{1}]: {2}", node.client_name(), node, text) } pub(crate) fn log_peer_warn(node: &Node, text: &str) { - warn!(client_name = node.client_name(), "[{0}]: {1}", node, text) + warn!("{0}/[{1}]: {2}", node.client_name(), node, text) } #[cfg(test)] From e4d9aa80247fad26bfba834fe34076873f23ed55 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Fri, 10 Oct 2025 18:49:25 -0300 Subject: [PATCH 3/9] Make the common messages debug --- crates/networking/p2p/rlpx/connection/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index aa409236bbc..69d73ce0069 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -809,7 +809,7 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul ethrex_blockchain::error::MempoolError::NonceTooLow | ethrex_blockchain::error::MempoolError::NotEnoughBalance | ethrex_blockchain::error::MempoolError::UnderpricedReplacement => { - log_peer_warn( + log_peer_debug( &state.node, &format!("Error adding transaction common: {e}"), ); From e8074848bf7a528d63437c515f1cf09510c12020 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Fri, 10 Oct 2025 19:06:25 -0300 Subject: [PATCH 4/9] Update crates/networking/p2p/rlpx/connection/server.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- crates/networking/p2p/rlpx/connection/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index 69d73ce0069..75d9a04e8d8 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -811,7 +811,7 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul | ethrex_blockchain::error::MempoolError::UnderpricedReplacement => { log_peer_debug( &state.node, - &format!("Error adding transaction common: {e}"), + &format!("Common transaction error: {e}"), ); continue; } From fbc4a2fe2205bb81118d1e456461b18e9304d910 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Mon, 13 Oct 2025 11:24:33 -0300 Subject: [PATCH 5/9] Remove the warn log --- .../networking/p2p/rlpx/connection/server.rs | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index 75d9a04e8d8..85485654faa 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -804,25 +804,11 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul } if let Err(e) = state.blockchain.add_transaction_to_pool(tx.clone()).await { - match e { - // Some of the more common mempool errors are logged at debug level, we might want to move all of them to debug in the future - ethrex_blockchain::error::MempoolError::NonceTooLow - | ethrex_blockchain::error::MempoolError::NotEnoughBalance - | ethrex_blockchain::error::MempoolError::UnderpricedReplacement => { - log_peer_debug( - &state.node, - &format!("Common transaction error: {e}"), - ); - continue; - } - _ => { - log_peer_warn( - &state.node, - &format!("Error adding transaction: {e}"), - ); - continue; - } - } + log_peer_debug( + &state.node, + &format!("Error adding transaction: {e}"), + ); + continue; } } state From 78a0f6bfafec818b2fb0ea5c847f8ed22ba63b9b Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Mon, 13 Oct 2025 12:06:22 -0300 Subject: [PATCH 6/9] the log was other than the one changed before --- crates/networking/p2p/rlpx/connection/server.rs | 2 +- crates/networking/p2p/rlpx/eth/transactions.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index 85485654faa..2d2043cafa0 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -804,7 +804,7 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul } if let Err(e) = state.blockchain.add_transaction_to_pool(tx.clone()).await { - log_peer_debug( + log_peer_warn( &state.node, &format!("Error adding transaction: {e}"), ); diff --git a/crates/networking/p2p/rlpx/eth/transactions.rs b/crates/networking/p2p/rlpx/eth/transactions.rs index 4f5e391d6e5..8f6e41ec2c0 100644 --- a/crates/networking/p2p/rlpx/eth/transactions.rs +++ b/crates/networking/p2p/rlpx/eth/transactions.rs @@ -296,7 +296,7 @@ impl PooledTransactions { .try_into() .map_err(|error| MempoolError::StoreError(StoreError::Custom(error)))?; if let Err(e) = blockchain.add_transaction_to_pool(regular_tx).await { - log_peer_warn(node, &format!("Error adding transaction: {e}")); + log_peer_debug(node, &format!("Error adding transaction: {e}")); continue; } } From 4679071ce9436c27f99422a160724dba9a192f10 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Mon, 13 Oct 2025 16:09:22 -0300 Subject: [PATCH 7/9] Make the 3 ocurrence of this kind of log debug instead of warn --- crates/networking/p2p/rlpx/connection/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index 2d2043cafa0..85485654faa 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -804,7 +804,7 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul } if let Err(e) = state.blockchain.add_transaction_to_pool(tx.clone()).await { - log_peer_warn( + log_peer_debug( &state.node, &format!("Error adding transaction: {e}"), ); From b1b9fcdba00f9fcd248323b5a04c9d192e180f2e Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Mon, 13 Oct 2025 16:28:37 -0300 Subject: [PATCH 8/9] formatting --- crates/networking/p2p/rlpx/connection/server.rs | 5 +---- crates/networking/p2p/rlpx/eth/transactions.rs | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/crates/networking/p2p/rlpx/connection/server.rs b/crates/networking/p2p/rlpx/connection/server.rs index 85485654faa..1ad7a62a5b8 100644 --- a/crates/networking/p2p/rlpx/connection/server.rs +++ b/crates/networking/p2p/rlpx/connection/server.rs @@ -804,10 +804,7 @@ async fn handle_peer_message(state: &mut Established, message: Message) -> Resul } if let Err(e) = state.blockchain.add_transaction_to_pool(tx.clone()).await { - log_peer_debug( - &state.node, - &format!("Error adding transaction: {e}"), - ); + log_peer_debug(&state.node, &format!("Error adding transaction: {e}")); continue; } } diff --git a/crates/networking/p2p/rlpx/eth/transactions.rs b/crates/networking/p2p/rlpx/eth/transactions.rs index 8f6e41ec2c0..f587925bc33 100644 --- a/crates/networking/p2p/rlpx/eth/transactions.rs +++ b/crates/networking/p2p/rlpx/eth/transactions.rs @@ -288,7 +288,7 @@ impl PooledTransactions { .add_blob_transaction_to_pool(itx.tx, itx.blobs_bundle) .await { - log_peer_warn(node, &format!("Error adding transaction: {e}")); + log_peer_debug(node, &format!("Error adding transaction: {e}")); continue; } } else { From a55ce4066aac0b0b6a1bfceaa14d4da9ac612a66 Mon Sep 17 00:00:00 2001 From: Rodrigo Oliveri Date: Mon, 13 Oct 2025 16:36:09 -0300 Subject: [PATCH 9/9] remove unused log_peer_warn reference --- crates/networking/p2p/rlpx/eth/transactions.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/networking/p2p/rlpx/eth/transactions.rs b/crates/networking/p2p/rlpx/eth/transactions.rs index f587925bc33..25885674146 100644 --- a/crates/networking/p2p/rlpx/eth/transactions.rs +++ b/crates/networking/p2p/rlpx/eth/transactions.rs @@ -12,7 +12,7 @@ use ethrex_rlp::{ }; use ethrex_storage::error::StoreError; -use crate::rlpx::utils::{log_peer_debug, log_peer_warn}; +use crate::rlpx::utils::log_peer_debug; use crate::rlpx::{ message::RLPxMessage, utils::{snappy_compress, snappy_decompress},