mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-19 22:08:30 +00:00
Adjust beacon node timeouts for validator client HTTP requests (#2352)
## Issue Addressed Resolves #2313 ## Proposed Changes Provide `BeaconNodeHttpClient` with a dedicated `Timeouts` struct. This will allow granular adjustment of the timeout duration for different calls made from the VC to the BN. These can either be a constant value, or as a ratio of the slot duration. Improve timeout performance by using these adjusted timeout duration's only whenever a fallback endpoint is available. Add a CLI flag called `use-long-timeouts` to revert to the old behavior. ## Additional Info Additionally set the default `BeaconNodeHttpClient` timeouts to the be the slot duration of the network, rather than a constant 12 seconds. This will allow it to adjust to different network specifications. Co-authored-by: Paul Hauner <paul@paulhauner.com>
This commit is contained in:
@@ -285,6 +285,10 @@ async fn poll_validator_indices<T: SlotClock + 'static, E: EthSpec>(
|
||||
let download_result = duties_service
|
||||
.beacon_nodes
|
||||
.first_success(duties_service.require_synced, |beacon_node| async move {
|
||||
let _timer = metrics::start_timer_vec(
|
||||
&metrics::DUTIES_SERVICE_TIMES,
|
||||
&[metrics::VALIDATOR_ID_HTTP_GET],
|
||||
);
|
||||
beacon_node
|
||||
.get_beacon_states_validator_id(
|
||||
StateId::Head,
|
||||
@@ -453,6 +457,10 @@ async fn poll_beacon_attesters<T: SlotClock + 'static, E: EthSpec>(
|
||||
if let Err(e) = duties_service
|
||||
.beacon_nodes
|
||||
.first_success(duties_service.require_synced, |beacon_node| async move {
|
||||
let _timer = metrics::start_timer_vec(
|
||||
&metrics::DUTIES_SERVICE_TIMES,
|
||||
&[metrics::SUBSCRIPTIONS_HTTP_POST],
|
||||
);
|
||||
beacon_node
|
||||
.post_validator_beacon_committee_subscriptions(subscriptions_ref)
|
||||
.await
|
||||
@@ -509,6 +517,10 @@ async fn poll_beacon_attesters_for_epoch<T: SlotClock + 'static, E: EthSpec>(
|
||||
let response = duties_service
|
||||
.beacon_nodes
|
||||
.first_success(duties_service.require_synced, |beacon_node| async move {
|
||||
let _timer = metrics::start_timer_vec(
|
||||
&metrics::DUTIES_SERVICE_TIMES,
|
||||
&[metrics::ATTESTER_DUTIES_HTTP_POST],
|
||||
);
|
||||
beacon_node
|
||||
.post_validator_duties_attester(epoch, local_indices)
|
||||
.await
|
||||
@@ -640,6 +652,10 @@ async fn poll_beacon_proposers<T: SlotClock + 'static, E: EthSpec>(
|
||||
let download_result = duties_service
|
||||
.beacon_nodes
|
||||
.first_success(duties_service.require_synced, |beacon_node| async move {
|
||||
let _timer = metrics::start_timer_vec(
|
||||
&metrics::DUTIES_SERVICE_TIMES,
|
||||
&[metrics::PROPOSER_DUTIES_HTTP_GET],
|
||||
);
|
||||
beacon_node
|
||||
.get_validator_duties_proposer(current_epoch)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user