From a7969238e974ae32f57f699eca8e920e3564d075 Mon Sep 17 00:00:00 2001 From: File Large Date: Thu, 6 Nov 2025 10:13:21 +0100 Subject: [PATCH] perf: avoid double signing --- .../live_builder/block_output/relay_submit.rs | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/crates/rbuilder/src/live_builder/block_output/relay_submit.rs b/crates/rbuilder/src/live_builder/block_output/relay_submit.rs index 2e19a09a1..0d7ee2dfa 100644 --- a/crates/rbuilder/src/live_builder/block_output/relay_submit.rs +++ b/crates/rbuilder/src/live_builder/block_output/relay_submit.rs @@ -141,8 +141,9 @@ async fn run_submit_to_relays_job( ) -> Option { let mut res = None; - let (regular_relays, optimistic_relays) = - relays.into_iter().partition(|relay| !relay.optimistic()); + let (regular_relays, optimistic_relays) = relays + .into_iter() + .partition::, _>(|relay| !relay.optimistic()); let mut last_bid_hash = None; 'submit: loop { @@ -253,20 +254,25 @@ async fn run_submit_to_relays_job( &block.sealed_block, ); let (regular_request, optimistic_request) = { - let regular = create_submit_block_request( - &config.signer, - &config.chain_spec, - &slot_data, - &block, - &execution_payload, - ) - .inspect_err(|error| { - error!(parent: &submission_span, ?error, "Error creating regular submit block request"); - }) - .ok(); + let mut regular = None; + if optimistic_config.is_none() || !regular_relays.is_empty() { + regular = create_submit_block_request( + &config.signer, + &config.chain_spec, + &slot_data, + &block, + &execution_payload, + ) + .inspect_err(|error| { + error!(parent: &submission_span, ?error, "Error creating regular submit block request"); + }) + .ok(); + } let mut optimistic = None; - if let Some(optimistic_config) = optimistic_config { + if let Some(optimistic_config) = + optimistic_config.filter(|_| !optimistic_relays.is_empty()) + { optimistic = create_submit_block_request( &optimistic_config.signer, &config.chain_spec, @@ -283,7 +289,9 @@ async fn run_submit_to_relays_job( }; if regular_request.is_none() && optimistic_request.is_none() { - error!(parent: &submission_span, "Unable to construct request from the built block"); + let regular_relays_len = regular_relays.len(); + let optimistic_relays_len = optimistic_relays.len(); + error!(parent: &submission_span, regular_relays_len, optimistic_relays_len, "Unable to construct request from the built block"); continue 'submit; }