From db736834c97c1d4510bb5de110b5ceb7fa9799ee Mon Sep 17 00:00:00 2001 From: File Large Date: Tue, 4 Nov 2025 16:35:19 +0100 Subject: [PATCH] perf: arc bid observer inputs --- crates/rbuilder-operator/src/blocks_processor.rs | 6 ++---- crates/rbuilder-operator/src/flashbots_config.rs | 8 ++++---- .../src/true_block_value_push/best_true_value_observer.rs | 5 +++-- .../block_output/bidding_service_interface.rs | 8 ++++---- .../src/live_builder/block_output/relay_submit.rs | 4 ++-- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/crates/rbuilder-operator/src/blocks_processor.rs b/crates/rbuilder-operator/src/blocks_processor.rs index 4579846b3..785f25a29 100644 --- a/crates/rbuilder-operator/src/blocks_processor.rs +++ b/crates/rbuilder-operator/src/blocks_processor.rs @@ -356,15 +356,13 @@ impl fn block_submitted( &self, _slot_data: &MevBoostSlotData, - submit_block_request: &AlloySubmitBlockRequest, - built_block_trace: &BuiltBlockTrace, + submit_block_request: Arc, + built_block_trace: Arc, builder_name: String, best_bid_value: U256, ) { let client = self.client.clone(); let parent_span = Span::current(); - let submit_block_request = submit_block_request.clone(); - let built_block_trace = built_block_trace.clone(); tokio::spawn(async move { let block_processor_result = client .submit_built_block( diff --git a/crates/rbuilder-operator/src/flashbots_config.rs b/crates/rbuilder-operator/src/flashbots_config.rs index 85fb7a131..d4239e4bd 100644 --- a/crates/rbuilder-operator/src/flashbots_config.rs +++ b/crates/rbuilder-operator/src/flashbots_config.rs @@ -431,16 +431,16 @@ impl BidObserver for RbuilderOperatorBidObserver { fn block_submitted( &self, slot_data: &MevBoostSlotData, - submit_block_request: &AlloySubmitBlockRequest, - built_block_trace: &BuiltBlockTrace, + submit_block_request: Arc, + built_block_trace: Arc, builder_name: String, best_bid_value: U256, ) { if let Some(p) = self.block_processor.as_ref() { p.block_submitted( slot_data, - submit_block_request, - built_block_trace, + submit_block_request.clone(), + built_block_trace.clone(), builder_name.clone(), best_bid_value, ) diff --git a/crates/rbuilder-operator/src/true_block_value_push/best_true_value_observer.rs b/crates/rbuilder-operator/src/true_block_value_push/best_true_value_observer.rs index fd76d3c62..530e2a9d5 100644 --- a/crates/rbuilder-operator/src/true_block_value_push/best_true_value_observer.rs +++ b/crates/rbuilder-operator/src/true_block_value_push/best_true_value_observer.rs @@ -7,6 +7,7 @@ use rbuilder::{ }, }; use redis::RedisError; +use std::sync::Arc; use tokio_util::sync::CancellationToken; use super::{ @@ -73,8 +74,8 @@ impl BidObserver for BestTrueValueObserver { fn block_submitted( &self, slot_data: &MevBoostSlotData, - _submit_block_request: &AlloySubmitBlockRequest, - built_block_trace: &BuiltBlockTrace, + _submit_block_request: Arc, + built_block_trace: Arc, builder_name: String, _best_bid_value: alloy_primitives::U256, ) { diff --git a/crates/rbuilder/src/live_builder/block_output/bidding_service_interface.rs b/crates/rbuilder/src/live_builder/block_output/bidding_service_interface.rs index f559e46f7..f26f3e1cb 100644 --- a/crates/rbuilder/src/live_builder/block_output/bidding_service_interface.rs +++ b/crates/rbuilder/src/live_builder/block_output/bidding_service_interface.rs @@ -27,8 +27,8 @@ pub trait BidObserver: std::fmt::Debug { fn block_submitted( &self, slot_data: &MevBoostSlotData, - submit_block_request: &AlloySubmitBlockRequest, - built_block_trace: &BuiltBlockTrace, + submit_block_request: Arc, + built_block_trace: Arc, builder_name: String, best_bid_value: U256, ); @@ -41,8 +41,8 @@ impl BidObserver for NullBidObserver { fn block_submitted( &self, _slot_data: &MevBoostSlotData, - _submit_block_request: &AlloySubmitBlockRequest, - _built_block_trace: &BuiltBlockTrace, + _submit_block_request: Arc, + _built_block_trace: Arc, _builder_name: String, _best_bid_value: U256, ) { 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 72c5bdb53..2e19a09a1 100644 --- a/crates/rbuilder/src/live_builder/block_output/relay_submit.rs +++ b/crates/rbuilder/src/live_builder/block_output/relay_submit.rs @@ -323,8 +323,8 @@ async fn run_submit_to_relays_job( // NOTE: we only notify normal submission here because they have the same contents but different pubkeys config.bid_observer.block_submitted( &slot_data, - &request, - &block.trace, + request, + Arc::new(block.trace), builder_name, bid_metadata.value.top_competitor_bid.unwrap_or_default(), );