beacon_node: add --disable-deposit-contract-sync flag (#3597)
Overrides any previous option that enables the eth1 service. Useful for operating a `light` beacon node. Co-authored-by: Michael Sproul <micsproul@gmail.com>
This commit is contained in:
parent
c5cd0d9b3f
commit
d0efb6b18a
@ -457,7 +457,9 @@ where
|
|||||||
ClientGenesis::FromStore => builder.resume_from_db().map(|v| (v, None))?,
|
ClientGenesis::FromStore => builder.resume_from_db().map(|v| (v, None))?,
|
||||||
};
|
};
|
||||||
|
|
||||||
self.eth1_service = eth1_service_option;
|
if config.sync_eth1_chain {
|
||||||
|
self.eth1_service = eth1_service_option;
|
||||||
|
}
|
||||||
self.beacon_chain_builder = Some(beacon_chain_builder);
|
self.beacon_chain_builder = Some(beacon_chain_builder);
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
@ -852,4 +852,12 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
|||||||
failure caused by the execution layer.")
|
failure caused by the execution layer.")
|
||||||
.takes_value(false)
|
.takes_value(false)
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("disable-deposit-contract-sync")
|
||||||
|
.long("disable-deposit-contract-sync")
|
||||||
|
.help("Explictly disables syncing of deposit logs from the execution node. \
|
||||||
|
This overrides any previous option that depends on it. \
|
||||||
|
Useful if you intend to run a non-validating beacon node.")
|
||||||
|
.takes_value(false)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
@ -668,6 +668,11 @@ pub fn get_config<E: EthSpec>(
|
|||||||
client_config.chain.enable_lock_timeouts = false;
|
client_config.chain.enable_lock_timeouts = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Note: This overrides any previous flags that enable this option.
|
||||||
|
if cli_args.is_present("disable-deposit-contract-sync") {
|
||||||
|
client_config.sync_eth1_chain = false;
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(timeout) =
|
if let Some(timeout) =
|
||||||
clap_utils::parse_optional(cli_args, "fork-choice-before-proposal-timeout")?
|
clap_utils::parse_optional(cli_args, "fork-choice-before-proposal-timeout")?
|
||||||
{
|
{
|
||||||
|
@ -1527,3 +1527,37 @@ fn enabled_disable_log_timestamp_flag() {
|
|||||||
assert!(config.logger_config.disable_log_timestamp);
|
assert!(config.logger_config.disable_log_timestamp);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sync_eth1_chain_default() {
|
||||||
|
CommandLineTest::new()
|
||||||
|
.run_with_zero_port()
|
||||||
|
.with_config(|config| assert_eq!(config.sync_eth1_chain, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sync_eth1_chain_execution_endpoints_flag() {
|
||||||
|
let dir = TempDir::new().expect("Unable to create temporary directory");
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("execution-endpoints", Some("http://localhost:8551/"))
|
||||||
|
.flag(
|
||||||
|
"execution-jwt",
|
||||||
|
dir.path().join("jwt-file").as_os_str().to_str(),
|
||||||
|
)
|
||||||
|
.run_with_zero_port()
|
||||||
|
.with_config(|config| assert_eq!(config.sync_eth1_chain, true));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sync_eth1_chain_disable_deposit_contract_sync_flag() {
|
||||||
|
let dir = TempDir::new().expect("Unable to create temporary directory");
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("disable-deposit-contract-sync", None)
|
||||||
|
.flag("execution-endpoints", Some("http://localhost:8551/"))
|
||||||
|
.flag(
|
||||||
|
"execution-jwt",
|
||||||
|
dir.path().join("jwt-file").as_os_str().to_str(),
|
||||||
|
)
|
||||||
|
.run_with_zero_port()
|
||||||
|
.with_config(|config| assert_eq!(config.sync_eth1_chain, false));
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user