diff --git a/beacon_node/client/src/builder.rs b/beacon_node/client/src/builder.rs index f12d70e906..15cd97ea8e 100644 --- a/beacon_node/client/src/builder.rs +++ b/beacon_node/client/src/builder.rs @@ -598,24 +598,6 @@ where .clone() .ok_or_else(|| "caching_eth1_backend requires a chain spec".to_string())?; - // Check if the eth1 endpoint we connect to is on the correct network id. - // Note: This check also effectively checks the eth1 http connection before the beacon chain - // is completely started and fails loudly if there is an issue. - let network_id = - eth1::http::check_eth1_endpoint(&config.endpoint, Duration::from_millis(15_000)) - .await - .map_err(|_| "Error connecting to eth1 node.\n\ - Please ensure that you have an eth1 http server running locally on localhost:8545 \ - or pass an external endpoint using `--eth1-endpoint `.\n\ - Also ensure that `eth` and `net` apis are enabled on the eth1 http server.".to_string())?; - - if network_id != config.network_id { - return Err(format!( - "Invalid eth1 network id. Expected {:?}, got {:?}", - config.network_id, network_id - )); - } - let backend = if let Some(eth1_service_from_genesis) = self.eth1_service { eth1_service_from_genesis.update_config(config)?; diff --git a/beacon_node/eth1/src/http.rs b/beacon_node/eth1/src/http.rs index 77f705cd77..6dffdaa7c6 100644 --- a/beacon_node/eth1/src/http.rs +++ b/beacon_node/eth1/src/http.rs @@ -55,19 +55,6 @@ impl FromStr for Eth1NetworkId { } } -/// Checks that the provided eth1 node has all the relevant api endpoints open -/// and returns the network id. -pub async fn check_eth1_endpoint( - endpoint: &str, - timeout: Duration, -) -> Result { - // Checks that the "eth" api works as expected. - let _block_number = get_block_number(endpoint, timeout).await?; - // Checks that the "net" api works as expected. - let network_id = get_network_id(endpoint, timeout).await?; - Ok(network_id) -} - /// Get the eth1 network id of the given endpoint. pub async fn get_network_id(endpoint: &str, timeout: Duration) -> Result { let response_body = send_rpc_request(endpoint, "net_version", json!([]), timeout).await?; diff --git a/beacon_node/eth1/src/service.rs b/beacon_node/eth1/src/service.rs index b7149560b4..ee203b6456 100644 --- a/beacon_node/eth1/src/service.rs +++ b/beacon_node/eth1/src/service.rs @@ -11,7 +11,7 @@ use crate::{ use futures::{future::TryFutureExt, stream, stream::TryStreamExt, StreamExt}; use parking_lot::{RwLock, RwLockReadGuard}; use serde::{Deserialize, Serialize}; -use slog::{debug, error, info, trace, Logger}; +use slog::{crit, debug, error, info, trace, Logger}; use std::ops::{Range, RangeInclusive}; use std::sync::Arc; use std::time::{SystemTime, UNIX_EPOCH}; @@ -30,6 +30,8 @@ const GET_BLOCK_TIMEOUT_MILLIS: u64 = STANDARD_TIMEOUT_MILLIS; /// Timeout when doing an eth_getLogs to read the deposit contract logs. const GET_DEPOSIT_LOG_TIMEOUT_MILLIS: u64 = STANDARD_TIMEOUT_MILLIS; +const WARNING_MSG: &str = "BLOCK PROPOSALS WILL FAIL WITHOUT VALID ETH1 CONNECTION"; + #[derive(Debug, PartialEq)] pub enum Error { /// The remote node is less synced that we expect, it is not useful until has done more @@ -365,18 +367,23 @@ impl Service { match result { Ok(network_id) => { if network_id != config_network { - error!( + crit!( self.log, - "Failed to update eth1 cache"; - "reason" => "Invalid eth1 network id", + "Invalid eth1 network. Please switch to correct network"; "expected" => format!("{:?}",DEFAULT_NETWORK_ID), - "got" => format!("{:?}",network_id), + "received" => format!("{:?}",network_id), + "warning" => WARNING_MSG, ); return Ok(()); } } - Err(e) => { - error!(self.log, "Failed to get eth1 network id"; "error" => e); + Err(_) => { + crit!( + self.log, + "Error connecting to eth1 node. Please ensure that you have an eth1 http server running locally on http://localhost:8545 or \ + pass an external endpoint using `--eth1-endpoint `. Also ensure that `eth` and `net` apis are enabled on the eth1 http server"; + "warning" => WARNING_MSG, + ); return Ok(()); } }