Thread TTD into execution layer

This commit is contained in:
Paul Hauner
2021-09-27 16:11:54 +10:00
parent f9fd6ac392
commit 6cf83db13f
4 changed files with 17 additions and 12 deletions

View File

@@ -147,10 +147,15 @@ where
None
};
let terminal_total_difficulty = config
.terminal_total_difficulty_override
.unwrap_or(spec.terminal_total_difficulty);
let execution_layer = if let Some(execution_endpoints) = config.execution_endpoints {
let context = runtime_context.service_context("exec".into());
let execution_layer = ExecutionLayer::from_urls(
execution_endpoints,
terminal_total_difficulty,
context.executor.clone(),
context.log().clone(),
)

View File

@@ -4,7 +4,7 @@ use sensitive_url::SensitiveUrl;
use serde_derive::{Deserialize, Serialize};
use std::fs;
use std::path::PathBuf;
use types::{Graffiti, PublicKeyBytes};
use types::{Graffiti, PublicKeyBytes, Uint256};
/// Default directory name for the freezer database under the top-level data dir.
const DEFAULT_FREEZER_DB_DIR: &str = "freezer_db";
@@ -75,7 +75,7 @@ pub struct Config {
pub chain: beacon_chain::ChainConfig,
pub eth1: eth1::Config,
pub execution_endpoints: Option<Vec<SensitiveUrl>>,
pub total_terminal_difficulty_override: Option<u64>,
pub terminal_total_difficulty_override: Option<Uint256>,
pub http_api: http_api::Config,
pub http_metrics: http_metrics::Config,
pub monitoring_api: Option<monitoring_api::Config>,
@@ -97,7 +97,7 @@ impl Default for Config {
sync_eth1_chain: false,
eth1: <_>::default(),
execution_endpoints: None,
total_terminal_difficulty_override: None,
terminal_total_difficulty_override: None,
disabled_forks: Vec::new(),
graffiti: Graffiti::default(),
http_api: <_>::default(),

View File

@@ -30,7 +30,7 @@ impl From<ApiError> for Error {
struct Inner {
engines: Engines<HttpJsonRpc>,
total_terminal_difficulty: Uint256,
terminal_total_difficulty: Uint256,
executor: TaskExecutor,
log: Logger,
}
@@ -43,7 +43,7 @@ pub struct ExecutionLayer {
impl ExecutionLayer {
pub fn from_urls(
urls: Vec<SensitiveUrl>,
total_terminal_difficulty: Uint256,
terminal_total_difficulty: Uint256,
executor: TaskExecutor,
log: Logger,
) -> Result<Self, Error> {
@@ -61,7 +61,7 @@ impl ExecutionLayer {
engines,
log: log.clone(),
},
total_terminal_difficulty,
terminal_total_difficulty,
executor,
log,
};
@@ -81,8 +81,8 @@ impl ExecutionLayer {
&self.inner.executor
}
fn total_terminal_difficulty(&self) -> Uint256 {
self.inner.total_terminal_difficulty
fn terminal_total_difficulty(&self) -> Uint256 {
self.inner.terminal_total_difficulty
}
fn log(&self) -> &Logger {
@@ -226,7 +226,7 @@ impl ExecutionLayer {
}
}
pub async fn find_ttd_block_hash(&self) -> Result<Option<Hash256>, Error> {
pub async fn get_pow_block_at_total_difficulty(&self) -> Result<Option<Hash256>, Error> {
self.engines()
.first_success(|engine| async move {
let mut ttd_exceeding_block = None;
@@ -236,7 +236,7 @@ impl ExecutionLayer {
.await?;
loop {
if block.total_difficulty >= self.total_terminal_difficulty() {
if block.total_difficulty >= self.terminal_total_difficulty() {
ttd_exceeding_block = Some(block.block_hash);
block = engine.api.get_block_by_hash(block.parent_hash).await?;

View File

@@ -224,7 +224,7 @@ pub fn get_config<E: EthSpec>(
client_config.execution_endpoints = Some(client_config.eth1.endpoints.clone());
}
if let Some(total_terminal_difficulty) =
if let Some(terminal_total_difficulty) =
clap_utils::parse_optional(cli_args, "total-terminal-difficulty-override")?
{
if client_config.execution_endpoints.is_none() {
@@ -234,7 +234,7 @@ pub fn get_config<E: EthSpec>(
);
}
client_config.total_terminal_difficulty_override = Some(total_terminal_difficulty);
client_config.terminal_total_difficulty_override = Some(terminal_total_difficulty);
}
if let Some(freezer_dir) = cli_args.value_of("freezer-dir") {