Accept TTD override as decimal (#2676)
This commit is contained in:
parent
d8eec16c5e
commit
6b4cc63b57
@ -402,7 +402,7 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
|||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("terminal-total-difficulty-override")
|
Arg::with_name("terminal-total-difficulty-override")
|
||||||
.long("terminal-total-difficulty-override")
|
.long("terminal-total-difficulty-override")
|
||||||
.value_name("TERMINAL_TOTAL_DIFFICULTY")
|
.value_name("INTEGER")
|
||||||
.help("Used to coordinate manual overrides to the TERMINAL_TOTAL_DIFFICULTY parameter. \
|
.help("Used to coordinate manual overrides to the TERMINAL_TOTAL_DIFFICULTY parameter. \
|
||||||
This flag should only be used if the user has a clear understanding that \
|
This flag should only be used if the user has a clear understanding that \
|
||||||
the broad Ethereum community has elected to override the terminal difficulty. \
|
the broad Ethereum community has elected to override the terminal difficulty. \
|
||||||
@ -415,6 +415,7 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
|
|||||||
.long("terminal-block-hash-override")
|
.long("terminal-block-hash-override")
|
||||||
.value_name("TERMINAL_BLOCK_HASH")
|
.value_name("TERMINAL_BLOCK_HASH")
|
||||||
.help("Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH parameter. \
|
.help("Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH parameter. \
|
||||||
|
Accepts a 256-bit decimal integer (not a hex value). \
|
||||||
This flag should only be used if the user has a clear understanding that \
|
This flag should only be used if the user has a clear understanding that \
|
||||||
the broad Ethereum community has elected to override the terminal PoW block. \
|
the broad Ethereum community has elected to override the terminal PoW block. \
|
||||||
Incorrect use of this flag will cause your node to experience a consensus
|
Incorrect use of this flag will cause your node to experience a consensus
|
||||||
|
@ -14,7 +14,9 @@ use std::net::{IpAddr, Ipv4Addr, ToSocketAddrs};
|
|||||||
use std::net::{TcpListener, UdpSocket};
|
use std::net::{TcpListener, UdpSocket};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use types::{ChainSpec, Checkpoint, Epoch, EthSpec, Hash256, PublicKeyBytes, GRAFFITI_BYTES_LEN};
|
use types::{
|
||||||
|
ChainSpec, Checkpoint, Epoch, EthSpec, Hash256, PublicKeyBytes, Uint256, GRAFFITI_BYTES_LEN,
|
||||||
|
};
|
||||||
|
|
||||||
/// Gets the fully-initialized global client.
|
/// Gets the fully-initialized global client.
|
||||||
///
|
///
|
||||||
@ -240,9 +242,17 @@ pub fn get_config<E: EthSpec>(
|
|||||||
client_config.execution_endpoints = Some(client_config.eth1.endpoints.clone());
|
client_config.execution_endpoints = Some(client_config.eth1.endpoints.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(terminal_total_difficulty) =
|
if let Some(string) =
|
||||||
clap_utils::parse_optional(cli_args, "terminal-total-difficulty-override")?
|
clap_utils::parse_optional::<String>(cli_args, "terminal-total-difficulty-override")?
|
||||||
{
|
{
|
||||||
|
let stripped = string.replace(",", "");
|
||||||
|
let terminal_total_difficulty = Uint256::from_dec_str(&stripped).map_err(|e| {
|
||||||
|
format!(
|
||||||
|
"Could not parse --terminal-total-difficulty-override as decimal value: {:?}",
|
||||||
|
e
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
|
||||||
if client_config.execution_endpoints.is_none() {
|
if client_config.execution_endpoints.is_none() {
|
||||||
return Err(
|
return Err(
|
||||||
"The --merge flag must be provided when using --terminal-total-difficulty-override"
|
"The --merge flag must be provided when using --terminal-total-difficulty-override"
|
||||||
|
@ -11,7 +11,7 @@ use std::process::Command;
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::string::ToString;
|
use std::string::ToString;
|
||||||
use tempfile::TempDir;
|
use tempfile::TempDir;
|
||||||
use types::{Checkpoint, Epoch, Hash256};
|
use types::{Checkpoint, Epoch, Hash256, Uint256};
|
||||||
|
|
||||||
const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/";
|
const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/";
|
||||||
|
|
||||||
@ -817,6 +817,83 @@ pub fn malloc_tuning_flag() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
pub fn ttd_override_decimal() {
|
||||||
|
CommandLineTest::new().run().with_config(|config| {
|
||||||
|
assert!(config.terminal_total_difficulty_override.is_none());
|
||||||
|
});
|
||||||
|
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("merge", None)
|
||||||
|
.flag(
|
||||||
|
"terminal-total-difficulty-override",
|
||||||
|
Some("31,841,035,257,753,085,493,511"),
|
||||||
|
)
|
||||||
|
.run()
|
||||||
|
.with_config(|config| {
|
||||||
|
assert_eq!(
|
||||||
|
config.terminal_total_difficulty_override.unwrap(),
|
||||||
|
Uint256::from_dec_str(&"31841035257753085493511").unwrap()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("merge", None)
|
||||||
|
.flag(
|
||||||
|
"terminal-total-difficulty-override",
|
||||||
|
Some("31841035257753085493511"),
|
||||||
|
)
|
||||||
|
.run()
|
||||||
|
.with_config(|config| {
|
||||||
|
assert_eq!(
|
||||||
|
config.terminal_total_difficulty_override.unwrap(),
|
||||||
|
Uint256::from_dec_str(&"31841035257753085493511").unwrap()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("merge", None)
|
||||||
|
.flag("terminal-total-difficulty-override", Some("1234"))
|
||||||
|
.run()
|
||||||
|
.with_config(|config| {
|
||||||
|
assert_eq!(
|
||||||
|
config.terminal_total_difficulty_override.unwrap(),
|
||||||
|
Uint256::from(1234)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("merge", None)
|
||||||
|
.flag("terminal-total-difficulty-override", Some("1,234"))
|
||||||
|
.run()
|
||||||
|
.with_config(|config| {
|
||||||
|
assert_eq!(
|
||||||
|
config.terminal_total_difficulty_override.unwrap(),
|
||||||
|
Uint256::from(1234)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
pub fn ttd_override_without_merge() {
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("terminal-total-difficulty-override", Some("1234"))
|
||||||
|
.run();
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
pub fn ttd_override_hex() {
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("terminal-total-difficulty-override", Some("0xabcd"))
|
||||||
|
.run();
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
pub fn ttd_override_none() {
|
||||||
|
CommandLineTest::new()
|
||||||
|
.flag("terminal-total-difficulty-override", None)
|
||||||
|
.run();
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
#[should_panic]
|
#[should_panic]
|
||||||
fn ensure_panic_on_failed_launch() {
|
fn ensure_panic_on_failed_launch() {
|
||||||
CommandLineTest::new()
|
CommandLineTest::new()
|
||||||
|
Loading…
Reference in New Issue
Block a user