1- use std:: time:: { Duration , Instant } ;
1+ use std:: {
2+ collections:: HashSet ,
3+ time:: { Duration , Instant } ,
4+ } ;
25
36use alloy:: rpc:: types:: beacon:: relay:: ValidatorRegistration ;
47use axum:: http:: { HeaderMap , HeaderValue } ;
@@ -32,8 +35,16 @@ pub async fn register_validator<S: BuilderApiState>(
3235 . insert ( HEADER_START_TIME_UNIX_MS , HeaderValue :: from_str ( & utcnow_ms ( ) . to_string ( ) ) ?) ;
3336 send_headers. insert ( USER_AGENT , get_user_agent_with_version ( & req_headers) ?) ;
3437
38+ let num_validators = registrations
39+ . iter ( )
40+ . map ( |registration| registration. message . pubkey )
41+ . collect :: < HashSet < _ > > ( )
42+ . len ( ) ;
43+
3544 let relays = state. all_relays ( ) . to_vec ( ) ;
3645 let mut handles = Vec :: with_capacity ( relays. len ( ) ) ;
46+ let start_register = Instant :: now ( ) ;
47+
3748 for relay in relays {
3849 handles. push ( tokio:: spawn (
3950 send_register_validator_with_timeout (
@@ -49,9 +60,16 @@ pub async fn register_validator<S: BuilderApiState>(
4960 if state. pbs_config ( ) . wait_all_registrations {
5061 // wait for all relays registrations to complete
5162 let results = join_all ( handles) . await ;
52- let successful = results. iter ( ) . flatten ( ) . filter ( |res| res. is_ok ( ) ) . count ( ) ;
53- if successful > 0 {
54- info ! ( num_registrations = successful, "all relay registrations finished" ) ;
63+ let total_latency = start_register. elapsed ( ) ;
64+
65+ let successful_responses = results. iter ( ) . flatten ( ) . filter ( |res| res. is_ok ( ) ) . count ( ) ;
66+ if successful_responses > 0 {
67+ info ! (
68+ num_responses = successful_responses,
69+ num_registrations = num_validators,
70+ total_latency = ?total_latency,
71+ "all relay registrations finished"
72+ ) ;
5573 Ok ( ( ) )
5674 } else {
5775 bail ! ( "No relay passed register_validator successfully" )
@@ -71,9 +89,17 @@ pub async fn register_validator<S: BuilderApiState>(
7189 tokio:: spawn (
7290 async move {
7391 let results = join_all ( handles) . await ;
92+ let total_latency = start_register. elapsed ( ) ;
93+
7494 // successful + 1 since we had one success above
75- let successful = 1 + results. iter ( ) . flatten ( ) . filter ( |res| res. is_ok ( ) ) . count ( ) ;
76- info ! ( num_registrations = successful, "all relay registrations finished" ) ;
95+ let successful_responses =
96+ 1 + results. iter ( ) . flatten ( ) . filter ( |res| res. is_ok ( ) ) . count ( ) ;
97+ info ! (
98+ num_relays = successful_responses,
99+ num_registrations = num_validators,
100+ total_latency = ?total_latency,
101+ "all relay registrations finished"
102+ ) ;
77103 }
78104 . in_current_span ( ) ,
79105 ) ;
0 commit comments