Native support for Gnosis Beacon Chain network (#2931)

## Proposed Changes

Add a new hardcoded spec for the Gnosis Beacon Chain.
Ideally, official Lighthouse executables will be able to connect to the gnosis beacon chain from now on, using `--network gnosis` CLI option.
This commit is contained in:
Kirill Fedoseev
2022-01-27 22:58:33 +00:00
parent 99d2c33387
commit ee000d5219
19 changed files with 490 additions and 19 deletions

View File

@@ -21,7 +21,7 @@ use std::path::PathBuf;
use std::sync::Arc;
use task_executor::{ShutdownReason, TaskExecutor};
use tokio::runtime::{Builder as RuntimeBuilder, Runtime};
use types::{EthSpec, MainnetEthSpec, MinimalEthSpec};
use types::{EthSpec, GnosisEthSpec, MainnetEthSpec, MinimalEthSpec};
#[cfg(target_family = "unix")]
use {
@@ -87,6 +87,19 @@ impl EnvironmentBuilder<MainnetEthSpec> {
}
}
impl EnvironmentBuilder<GnosisEthSpec> {
/// Creates a new builder using the `gnosis` eth2 specification.
pub fn gnosis() -> Self {
Self {
runtime: None,
log: None,
eth_spec_instance: GnosisEthSpec,
eth2_config: Eth2Config::gnosis(),
eth2_network_config: None,
}
}
}
impl<E: EthSpec> EnvironmentBuilder<E> {
/// Specifies that a multi-threaded tokio runtime should be used. Ideal for production uses.
///