From 44aaf13ff019e6c664f9244babee0fe39ea13149 Mon Sep 17 00:00:00 2001 From: Gua00va <105484243+Gua00va@users.noreply.github.com> Date: Thu, 30 Nov 2023 12:11:22 +0530 Subject: [PATCH] Standard Liveness Endpoint (#4853) * Changes to use required Endpoint * Format * fixed doppleganger service * minor fix * efficiency changes * fixed tests * remove commented line --------- Co-authored-by: Jimmy Chen --- beacon_node/http_api/tests/tests.rs | 4 +-- common/eth2/src/lib.rs | 4 +-- validator_client/src/doppelganger_service.rs | 34 +++++++++++++++----- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/beacon_node/http_api/tests/tests.rs b/beacon_node/http_api/tests/tests.rs index 39e62250652..d5fa50ba219 100644 --- a/beacon_node/http_api/tests/tests.rs +++ b/beacon_node/http_api/tests/tests.rs @@ -3429,7 +3429,7 @@ impl ApiTester { let result = self .client - .post_validator_liveness_epoch(epoch, indices.clone()) + .post_validator_liveness_epoch(epoch, &indices) .await .unwrap() .data; @@ -3444,7 +3444,7 @@ impl ApiTester { let result = self .client - .post_validator_liveness_epoch(epoch, indices.clone()) + .post_validator_liveness_epoch(epoch, &indices) .await .unwrap() .data; diff --git a/common/eth2/src/lib.rs b/common/eth2/src/lib.rs index 7ed1c5c540c..da5c1a5a122 100644 --- a/common/eth2/src/lib.rs +++ b/common/eth2/src/lib.rs @@ -2145,7 +2145,7 @@ impl BeaconNodeHttpClient { pub async fn post_validator_liveness_epoch( &self, epoch: Epoch, - indices: Vec, + indices: &Vec, ) -> Result>, Error> { let mut path = self.eth_path(V1)?; @@ -2155,7 +2155,7 @@ impl BeaconNodeHttpClient { .push("liveness") .push(&epoch.to_string()); - self.post_with_timeout_and_response(path, &indices, self.timeouts.liveness) + self.post_with_timeout_and_response(path, indices, self.timeouts.liveness) .await } diff --git a/validator_client/src/doppelganger_service.rs b/validator_client/src/doppelganger_service.rs index 231cea86c01..86584d794c3 100644 --- a/validator_client/src/doppelganger_service.rs +++ b/validator_client/src/doppelganger_service.rs @@ -163,8 +163,6 @@ async fn beacon_node_liveness<'a, T: 'static + SlotClock, E: EthSpec>( current_epoch: Epoch, validator_indices: Vec, ) -> LivenessResponses { - let validator_indices = validator_indices.as_slice(); - let previous_epoch = current_epoch.saturating_sub(1_u64); let previous_epoch_responses = if previous_epoch == current_epoch { @@ -180,12 +178,22 @@ async fn beacon_node_liveness<'a, T: 'static + SlotClock, E: EthSpec>( .first_success( RequireSynced::Yes, OfflineOnFailure::Yes, - |beacon_node| async move { + |beacon_node| async { beacon_node - .post_lighthouse_liveness(validator_indices, previous_epoch) + .post_validator_liveness_epoch(previous_epoch, &validator_indices) .await .map_err(|e| format!("Failed query for validator liveness: {:?}", e)) - .map(|result| result.data) + .map(|result| { + result + .data + .into_iter() + .map(|response| LivenessResponseData { + index: response.index, + epoch: previous_epoch, + is_live: response.is_live, + }) + .collect() + }) }, ) .await @@ -207,12 +215,22 @@ async fn beacon_node_liveness<'a, T: 'static + SlotClock, E: EthSpec>( .first_success( RequireSynced::Yes, OfflineOnFailure::Yes, - |beacon_node| async move { + |beacon_node| async { beacon_node - .post_lighthouse_liveness(validator_indices, current_epoch) + .post_validator_liveness_epoch(current_epoch, &validator_indices) .await .map_err(|e| format!("Failed query for validator liveness: {:?}", e)) - .map(|result| result.data) + .map(|result| { + result + .data + .into_iter() + .map(|response| LivenessResponseData { + index: response.index, + epoch: current_epoch, + is_live: response.is_live, + }) + .collect() + }) }, ) .await