Download ENR during bootstrap
This commit is contained in:
parent
572df4f37e
commit
3b40b691ab
@ -137,6 +137,7 @@ fn process_testnet_subcommand(
|
|||||||
.and_then(|s| s.parse::<u16>().ok());
|
.and_then(|s| s.parse::<u16>().ok());
|
||||||
|
|
||||||
builder.import_bootstrap_libp2p_address(server, port)?;
|
builder.import_bootstrap_libp2p_address(server, port)?;
|
||||||
|
builder.import_bootstrap_enr_address(server)?;
|
||||||
builder.import_bootstrap_eth2_config(server)?;
|
builder.import_bootstrap_eth2_config(server)?;
|
||||||
|
|
||||||
builder.set_beacon_chain_start_method(BeaconChainStartMethod::HttpBootstrap {
|
builder.set_beacon_chain_start_method(BeaconChainStartMethod::HttpBootstrap {
|
||||||
@ -301,7 +302,7 @@ impl<'a> ConfigBuilder<'a> {
|
|||||||
self.client_config.eth1_backend_method = method;
|
self.client_config.eth1_backend_method = method;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Import the libp2p address for `server` into the list of bootnodes in `self`.
|
/// Import the libp2p address for `server` into the list of libp2p nodes to connect with.
|
||||||
///
|
///
|
||||||
/// If `port` is `Some`, it is used as the port for the `Multiaddr`. If `port` is `None`,
|
/// If `port` is `Some`, it is used as the port for the `Multiaddr`. If `port` is `None`,
|
||||||
/// attempts to connect to the `server` via HTTP and retrieve it's libp2p listen port.
|
/// attempts to connect to the `server` via HTTP and retrieve it's libp2p listen port.
|
||||||
@ -333,6 +334,28 @@ impl<'a> ConfigBuilder<'a> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Import the enr address for `server` into the list of initial enrs (boot nodes).
|
||||||
|
pub fn import_bootstrap_enr_address(&mut self, server: &str) -> Result<()> {
|
||||||
|
let bootstrapper = Bootstrapper::connect(server.to_string(), &self.log)?;
|
||||||
|
|
||||||
|
if let Ok(enr) = bootstrapper.enr() {
|
||||||
|
info!(
|
||||||
|
self.log,
|
||||||
|
"Loaded bootstrapper libp2p address";
|
||||||
|
"enr" => format!("{:?}", enr)
|
||||||
|
);
|
||||||
|
|
||||||
|
self.client_config.network.boot_nodes.push(enr);
|
||||||
|
} else {
|
||||||
|
warn!(
|
||||||
|
self.log,
|
||||||
|
"Unable to estimate a bootstrapper enr address, this node may not find any peers."
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
/// Set the config data_dir to be an random directory.
|
/// Set the config data_dir to be an random directory.
|
||||||
///
|
///
|
||||||
/// Useful for easily spinning up ephemeral testnets.
|
/// Useful for easily spinning up ephemeral testnets.
|
||||||
|
Loading…
Reference in New Issue
Block a user