mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2024-12-22 03:30:38 +00:00
Schedule Deneb on mainnet (#5233)
* Schedule Deneb on mainnet * Fix trusted setup roundtrip test * Fix BN CLI tests for insecure genesis sync
This commit is contained in:
parent
7c23625193
commit
0e819fa785
@ -1,9 +1,15 @@
|
||||
# Mainnet config
|
||||
|
||||
# Extends the mainnet preset
|
||||
CONFIG_NAME: 'mainnet'
|
||||
PRESET_BASE: 'mainnet'
|
||||
|
||||
# Free-form short name of the network that this configuration applies to - known
|
||||
# canonical network names include:
|
||||
# * 'mainnet' - there can be only one
|
||||
# * 'prater' - testnet
|
||||
# Must match the regex: [a-z0-9\-]
|
||||
CONFIG_NAME: 'mainnet'
|
||||
|
||||
# Transition
|
||||
# ---------------------------------------------------------------
|
||||
# Estimated on Sept 15, 2022
|
||||
@ -12,6 +18,8 @@ TERMINAL_TOTAL_DIFFICULTY: 58750000000000000000000
|
||||
TERMINAL_BLOCK_HASH: 0x0000000000000000000000000000000000000000000000000000000000000000
|
||||
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615
|
||||
|
||||
|
||||
|
||||
# Genesis
|
||||
# ---------------------------------------------------------------
|
||||
# `2**14` (= 16,384)
|
||||
@ -32,8 +40,8 @@ GENESIS_DELAY: 604800
|
||||
|
||||
# Altair
|
||||
ALTAIR_FORK_VERSION: 0x01000000
|
||||
ALTAIR_FORK_EPOCH: 74240
|
||||
# Merge
|
||||
ALTAIR_FORK_EPOCH: 74240 # Oct 27, 2021, 10:56:23am UTC
|
||||
# Bellatrix
|
||||
BELLATRIX_FORK_VERSION: 0x02000000
|
||||
BELLATRIX_FORK_EPOCH: 144896 # Sept 6, 2022, 11:34:47am UTC
|
||||
# Capella
|
||||
@ -41,13 +49,7 @@ CAPELLA_FORK_VERSION: 0x03000000
|
||||
CAPELLA_FORK_EPOCH: 194048 # April 12, 2023, 10:27:35pm UTC
|
||||
# Deneb
|
||||
DENEB_FORK_VERSION: 0x04000000
|
||||
DENEB_FORK_EPOCH: 18446744073709551615
|
||||
# Sharding
|
||||
SHARDING_FORK_VERSION: 0x03000000
|
||||
SHARDING_FORK_EPOCH: 18446744073709551615
|
||||
|
||||
# TBD, 2**32 is a placeholder. Merge transition approach is in active R&D.
|
||||
TRANSITION_TOTAL_DIFFICULTY: 4294967296
|
||||
DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC
|
||||
|
||||
|
||||
# Time parameters
|
||||
@ -74,16 +76,22 @@ INACTIVITY_SCORE_RECOVERY_RATE: 16
|
||||
EJECTION_BALANCE: 16000000000
|
||||
# 2**2 (= 4)
|
||||
MIN_PER_EPOCH_CHURN_LIMIT: 4
|
||||
# 2**3 (= 8)
|
||||
MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 8
|
||||
# 2**16 (= 65,536)
|
||||
CHURN_LIMIT_QUOTIENT: 65536
|
||||
|
||||
# [New in Deneb:EIP7514] 2**3 (= 8)
|
||||
MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 8
|
||||
|
||||
# Fork choice
|
||||
# ---------------------------------------------------------------
|
||||
# 40%
|
||||
PROPOSER_SCORE_BOOST: 40
|
||||
# 20%
|
||||
REORG_HEAD_WEIGHT_THRESHOLD: 20
|
||||
# 160%
|
||||
REORG_PARENT_WEIGHT_THRESHOLD: 160
|
||||
# `2` epochs
|
||||
REORG_MAX_EPOCHS_SINCE_FINALIZATION: 2
|
||||
|
||||
|
||||
# Deposit contract
|
||||
# ---------------------------------------------------------------
|
||||
@ -92,17 +100,43 @@ DEPOSIT_CHAIN_ID: 1
|
||||
DEPOSIT_NETWORK_ID: 1
|
||||
DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa
|
||||
|
||||
# Network
|
||||
|
||||
# Networking
|
||||
# ---------------------------------------------------------------
|
||||
SUBNETS_PER_NODE: 2
|
||||
# `10 * 2**20` (= 10485760, 10 MiB)
|
||||
GOSSIP_MAX_SIZE: 10485760
|
||||
# `2**10` (= 1024)
|
||||
MAX_REQUEST_BLOCKS: 1024
|
||||
# `2**8` (= 256)
|
||||
EPOCHS_PER_SUBNET_SUBSCRIPTION: 256
|
||||
# `MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2` (= 33024, ~5 months)
|
||||
MIN_EPOCHS_FOR_BLOCK_REQUESTS: 33024
|
||||
# `10 * 2**20` (=10485760, 10 MiB)
|
||||
MAX_CHUNK_SIZE: 10485760
|
||||
# 5s
|
||||
TTFB_TIMEOUT: 5
|
||||
# 10s
|
||||
RESP_TIMEOUT: 10
|
||||
ATTESTATION_PROPAGATION_SLOT_RANGE: 32
|
||||
# 500ms
|
||||
MAXIMUM_GOSSIP_CLOCK_DISPARITY: 500
|
||||
MESSAGE_DOMAIN_INVALID_SNAPPY: 0x00000000
|
||||
MESSAGE_DOMAIN_VALID_SNAPPY: 0x01000000
|
||||
# 2 subnets per node
|
||||
SUBNETS_PER_NODE: 2
|
||||
# 2**8 (= 64)
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
ATTESTATION_SUBNET_SHUFFLING_PREFIX_BITS: 3
|
||||
|
||||
# Deneb
|
||||
# `2**7` (=128)
|
||||
MAX_REQUEST_BLOCKS_DENEB: 128
|
||||
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
|
||||
MAX_REQUEST_BLOB_SIDECARS: 768
|
||||
# `2**12` (= 4096 epochs, ~18 days)
|
||||
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096
|
||||
# `6`
|
||||
BLOB_SIDECAR_SUBNET_COUNT: 6
|
||||
|
@ -583,6 +583,8 @@ mod tests {
|
||||
} else {
|
||||
GenesisStateSource::Unknown
|
||||
};
|
||||
// With Deneb enabled by default we must set a trusted setup here.
|
||||
let kzg_trusted_setup = get_trusted_setup_from_config(&config).unwrap();
|
||||
|
||||
let testnet = Eth2NetworkConfig {
|
||||
deposit_contract_deploy_block,
|
||||
@ -593,7 +595,7 @@ mod tests {
|
||||
.map(Encode::as_ssz_bytes)
|
||||
.map(Into::into),
|
||||
config,
|
||||
kzg_trusted_setup: None,
|
||||
kzg_trusted_setup: Some(kzg_trusted_setup),
|
||||
};
|
||||
|
||||
testnet
|
||||
|
@ -8,5 +8,5 @@ FIELD_ELEMENTS_PER_BLOB: 4096
|
||||
MAX_BLOB_COMMITMENTS_PER_BLOCK: 4096
|
||||
# `uint64(6)`
|
||||
MAX_BLOBS_PER_BLOCK: 6
|
||||
# `floorlog2(BLOB_KZG_COMMITMENTS_GINDEX) + 1 + ceillog2(MAX_BLOB_COMMITMENTS_PER_BLOCK)` = 4 + 1 + 12 = 17
|
||||
# `floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments')) + 1 + ceillog2(MAX_BLOB_COMMITMENTS_PER_BLOCK)` = 4 + 1 + 12 = 17
|
||||
KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: 17
|
||||
|
@ -681,7 +681,7 @@ impl ChainSpec {
|
||||
* Deneb hard fork params
|
||||
*/
|
||||
deneb_fork_version: [0x04, 0x00, 0x00, 0x00],
|
||||
deneb_fork_epoch: None,
|
||||
deneb_fork_epoch: Some(Epoch::new(269568)),
|
||||
|
||||
/*
|
||||
* Network specific
|
||||
|
@ -55,6 +55,12 @@ impl CommandLineTest {
|
||||
}
|
||||
|
||||
fn run_with_zero_port(&mut self) -> CompletedTest<Config> {
|
||||
// Required since Deneb was enabled on mainnet.
|
||||
self.cmd.arg("--allow-insecure-genesis-sync");
|
||||
self.run_with_zero_port_and_no_genesis_sync()
|
||||
}
|
||||
|
||||
fn run_with_zero_port_and_no_genesis_sync(&mut self) -> CompletedTest<Config> {
|
||||
self.cmd.arg("-z");
|
||||
self.run()
|
||||
}
|
||||
@ -93,16 +99,16 @@ fn staking_flag() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn allow_insecure_genesis_sync() {
|
||||
CommandLineTest::new()
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
assert_eq!(config.allow_insecure_genesis_sync, false);
|
||||
});
|
||||
#[should_panic]
|
||||
fn allow_insecure_genesis_sync_default() {
|
||||
CommandLineTest::new().run_with_zero_port_and_no_genesis_sync();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn allow_insecure_genesis_sync_enabled() {
|
||||
CommandLineTest::new()
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run_with_zero_port()
|
||||
.run_with_zero_port_and_no_genesis_sync()
|
||||
.with_config(|config| {
|
||||
assert_eq!(config.allow_insecure_genesis_sync, true);
|
||||
});
|
||||
@ -851,6 +857,7 @@ fn network_port_flag_over_ipv4() {
|
||||
let port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -867,6 +874,7 @@ fn network_port_flag_over_ipv4() {
|
||||
let port = 9000;
|
||||
CommandLineTest::new()
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -886,6 +894,7 @@ fn network_port_flag_over_ipv6() {
|
||||
CommandLineTest::new()
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -903,6 +912,7 @@ fn network_port_flag_over_ipv6() {
|
||||
CommandLineTest::new()
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -925,6 +935,7 @@ fn network_port_flag_over_ipv4_and_ipv6() {
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.flag("port6", Some(port6.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -954,6 +965,7 @@ fn network_port_flag_over_ipv4_and_ipv6() {
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.flag("port6", Some(port6.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -983,6 +995,7 @@ fn network_port_and_discovery_port_flags_over_ipv4() {
|
||||
CommandLineTest::new()
|
||||
.flag("port", Some(tcp4_port.to_string().as_str()))
|
||||
.flag("discovery-port", Some(disc4_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1003,6 +1016,7 @@ fn network_port_and_discovery_port_flags_over_ipv6() {
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(tcp6_port.to_string().as_str()))
|
||||
.flag("discovery-port", Some(disc6_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1028,6 +1042,7 @@ fn network_port_and_discovery_port_flags_over_ipv4_and_ipv6() {
|
||||
.flag("discovery-port", Some(disc4_port.to_string().as_str()))
|
||||
.flag("port6", Some(tcp6_port.to_string().as_str()))
|
||||
.flag("discovery-port6", Some(disc6_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1067,6 +1082,7 @@ fn network_port_discovery_quic_port_flags_over_ipv4_and_ipv6() {
|
||||
.flag("port6", Some(tcp6_port.to_string().as_str()))
|
||||
.flag("discovery-port6", Some(disc6_port.to_string().as_str()))
|
||||
.flag("quic-port6", Some(quic6_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1293,6 +1309,7 @@ fn enr_match_flag_over_ipv4() {
|
||||
.flag("listen-address", Some("127.0.0.2"))
|
||||
.flag("discovery-port", Some(udp4_port.to_string().as_str()))
|
||||
.flag("port", Some(tcp4_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1324,6 +1341,7 @@ fn enr_match_flag_over_ipv6() {
|
||||
.flag("listen-address", Some(ADDR))
|
||||
.flag("discovery-port", Some(udp6_port.to_string().as_str()))
|
||||
.flag("port", Some(tcp6_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1364,6 +1382,7 @@ fn enr_match_flag_over_ipv4_and_ipv6() {
|
||||
.flag("listen-address", Some(IPV6_ADDR))
|
||||
.flag("discovery-port6", Some(udp6_port.to_string().as_str()))
|
||||
.flag("port6", Some(tcp6_port.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
assert_eq!(
|
||||
@ -1490,6 +1509,7 @@ fn http_port_flag() {
|
||||
.flag("http", None)
|
||||
.flag("http-port", Some(port1.to_string().as_str()))
|
||||
.flag("port", Some(port2.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| assert_eq!(config.http_api.listen_port, port1));
|
||||
}
|
||||
@ -1647,6 +1667,7 @@ fn metrics_port_flag() {
|
||||
.flag("metrics", None)
|
||||
.flag("metrics-port", Some(port1.to_string().as_str()))
|
||||
.flag("port", Some(port2.to_string().as_str()))
|
||||
.flag("allow-insecure-genesis-sync", None)
|
||||
.run()
|
||||
.with_config(|config| assert_eq!(config.http_metrics.listen_port, port1));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user