mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-30 12:47:05 +00:00
resolve merge conflicts
This commit is contained in:
@@ -15,11 +15,11 @@ kzg = { workspace = true }
|
||||
pretty_reqwest_error = { workspace = true }
|
||||
reqwest = { workspace = true }
|
||||
sensitive_url = { workspace = true }
|
||||
serde_yaml = { workspace = true }
|
||||
sha2 = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
types = { workspace = true }
|
||||
url = { workspace = true }
|
||||
yaml_serde = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
eth2_config = { workspace = true }
|
||||
|
||||
@@ -49,7 +49,7 @@ ELECTRA_FORK_VERSION: 0x0500006f
|
||||
ELECTRA_FORK_EPOCH: 948224 # Thu Mar 6 2025 09:43:40 GMT+0000
|
||||
# Fulu
|
||||
FULU_FORK_VERSION: 0x0600006f
|
||||
FULU_FORK_EPOCH: 18446744073709551615
|
||||
FULU_FORK_EPOCH: 1353216 # Mon Mar 16 2026 09:33:00 UTC
|
||||
# Gloas
|
||||
GLOAS_FORK_VERSION: 0x0700006f
|
||||
GLOAS_FORK_EPOCH: 18446744073709551615
|
||||
@@ -58,6 +58,8 @@ GLOAS_FORK_EPOCH: 18446744073709551615
|
||||
# ---------------------------------------------------------------
|
||||
# 5 seconds
|
||||
SECONDS_PER_SLOT: 5
|
||||
# 5 seconds
|
||||
SLOT_DURATION_MS: 5000
|
||||
# 6 (estimate from xDai mainnet)
|
||||
SECONDS_PER_ETH1_BLOCK: 6
|
||||
# 2**8 (= 256) epochs ~5.7 hours
|
||||
@@ -66,6 +68,18 @@ MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
|
||||
SHARD_COMMITTEE_PERIOD: 256
|
||||
# 2**10 (= 1024) ~1.4 hour
|
||||
ETH1_FOLLOW_DISTANCE: 1024
|
||||
# 1667 basis points, ~17% of SLOT_DURATION_MS
|
||||
PROPOSER_REORG_CUTOFF_BPS: 1667
|
||||
# 3333 basis points, ~33% of SLOT_DURATION_MS
|
||||
ATTESTATION_DUE_BPS: 3333
|
||||
# 6667 basis points, ~67% of SLOT_DURATION_MS
|
||||
AGGREGATE_DUE_BPS: 6667
|
||||
|
||||
# Altair
|
||||
# 3333 basis points, ~33% of SLOT_DURATION_MS
|
||||
SYNC_MESSAGE_DUE_BPS: 3333
|
||||
# 6667 basis points, ~67% of SLOT_DURATION_MS
|
||||
CONTRIBUTION_DUE_BPS: 6667
|
||||
|
||||
# Validator cycle
|
||||
# ---------------------------------------------------------------
|
||||
@@ -125,6 +139,7 @@ SUBNETS_PER_NODE: 2
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS
|
||||
# computed at runtime
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
|
||||
# Deneb
|
||||
|
||||
@@ -48,8 +48,8 @@ ELECTRA_FORK_EPOCH: 1337856 # 2025-04-30T14:03:40.000Z
|
||||
EIP7805_FORK_VERSION: 0x06000000
|
||||
EIP7805_FORK_EPOCH: 18446744073709551615
|
||||
# Fulu
|
||||
FULU_FORK_VERSION: 0x07000000
|
||||
FULU_FORK_EPOCH: 18446744073709551615
|
||||
FULU_FORK_VERSION: 0x06000064
|
||||
FULU_FORK_EPOCH: 1714688 # Tue Apr 14 2026 12:06:20 GMT+0000
|
||||
# Gloas
|
||||
GLOAS_FORK_VERSION: 0x07000064
|
||||
GLOAS_FORK_EPOCH: 18446744073709551615
|
||||
@@ -58,6 +58,8 @@ GLOAS_FORK_EPOCH: 18446744073709551615
|
||||
# ---------------------------------------------------------------
|
||||
# 5 seconds
|
||||
SECONDS_PER_SLOT: 5
|
||||
# 5 seconds
|
||||
SLOT_DURATION_MS: 5000
|
||||
# 6 (estimate from Gnosis Chain)
|
||||
SECONDS_PER_ETH1_BLOCK: 6
|
||||
# 2**8 (= 256) epochs ~8 hours
|
||||
@@ -66,6 +68,18 @@ MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
|
||||
SHARD_COMMITTEE_PERIOD: 256
|
||||
# 2**10 (= 1024) ~1.4 hour
|
||||
ETH1_FOLLOW_DISTANCE: 1024
|
||||
# 1667 basis points, ~17% of SLOT_DURATION_MS
|
||||
PROPOSER_REORG_CUTOFF_BPS: 1667
|
||||
# 3333 basis points, ~33% of SLOT_DURATION_MS
|
||||
ATTESTATION_DUE_BPS: 3333
|
||||
# 6667 basis points, ~67% of SLOT_DURATION_MS
|
||||
AGGREGATE_DUE_BPS: 6667
|
||||
|
||||
# Altair
|
||||
# 3333 basis points, ~33% of SLOT_DURATION_MS
|
||||
SYNC_MESSAGE_DUE_BPS: 3333
|
||||
# 6667 basis points, ~67% of SLOT_DURATION_MS
|
||||
CONTRIBUTION_DUE_BPS: 6667
|
||||
|
||||
# Validator cycle
|
||||
# ---------------------------------------------------------------
|
||||
@@ -111,6 +125,8 @@ MESSAGE_DOMAIN_INVALID_SNAPPY: 0x00000000
|
||||
MESSAGE_DOMAIN_VALID_SNAPPY: 0x01000000
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS
|
||||
# computed at runtime
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
ATTESTATION_SUBNET_SHUFFLING_PREFIX_BITS: 3
|
||||
|
||||
@@ -143,6 +159,11 @@ NUMBER_OF_CUSTODY_GROUPS: 128
|
||||
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
|
||||
SAMPLES_PER_SLOT: 8
|
||||
CUSTODY_REQUIREMENT: 4
|
||||
VALIDATOR_CUSTODY_REQUIREMENT: 8
|
||||
BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
|
||||
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
|
||||
# `2**14` (= 16384 epochs, ~15 days)
|
||||
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 16384
|
||||
MAX_BLOBS_PER_BLOCK_FULU: 12
|
||||
|
||||
# Gloas
|
||||
@@ -127,6 +127,7 @@ SUBNETS_PER_NODE: 2
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS
|
||||
# computed at runtime
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
ATTESTATION_SUBNET_SHUFFLING_PREFIX_BITS: 3
|
||||
|
||||
|
||||
@@ -133,6 +133,7 @@ SUBNETS_PER_NODE: 2
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS
|
||||
# computed at runtime
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
|
||||
# Deneb
|
||||
|
||||
@@ -31,4 +31,4 @@
|
||||
|
||||
# Lodestar team's bootnodes
|
||||
- enr:-IS4QPi-onjNsT5xAIAenhCGTDl4z-4UOR25Uq-3TmG4V3kwB9ljLTb_Kp1wdjHNj-H8VVLRBSSWVZo3GUe3z6k0E-IBgmlkgnY0gmlwhKB3_qGJc2VjcDI1NmsxoQMvAfgB4cJXvvXeM6WbCG86CstbSxbQBSGx31FAwVtOTYN1ZHCCIyg # 160.119.254.161 | hostafrica-southafrica
|
||||
- enr:-KG4QCb8NC3gEM3I0okStV5BPX7Bg6ZXTYCzzbYyEXUPGcZtHmvQtiJH4C4F2jG7azTcb9pN3JlgpfxAnRVFzJ3-LykBgmlkgnY0gmlwhFPlR9KDaXA2kP6AAAAAAAAAAlBW__4my5iJc2VjcDI1NmsxoQLdUv9Eo9sxCt0tc_CheLOWnX59yHJtkBSOL7kpxdJ6GYN1ZHCCIyiEdWRwNoIjKA # 83.229.71.210 | kamatera-telaviv-israel
|
||||
- enr:-KG4QPUf8-g_jU-KrwzG42AGt0wWM1BTnQxgZXlvCEIfTQ5hSmptkmgmMbRkpOqv6kzb33SlhPHJp7x4rLWWiVq5lSECgmlkgnY0gmlwhFPlR9KDaXA2kCoGxcAJAAAVAAAAAAAAABCJc2VjcDI1NmsxoQLdUv9Eo9sxCt0tc_CheLOWnX59yHJtkBSOL7kpxdJ6GYN1ZHCCIyiEdWRwNoIjKA # 83.229.71.210 | kamatera-telaviv-israel
|
||||
|
||||
@@ -22,13 +22,13 @@ TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615
|
||||
|
||||
# Genesis
|
||||
# ---------------------------------------------------------------
|
||||
# `2**14` (= 16,384)
|
||||
# 2**14 (= 16,384) validators
|
||||
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384
|
||||
# Dec 1, 2020, 12pm UTC
|
||||
MIN_GENESIS_TIME: 1606824000
|
||||
# Mainnet initial fork version, recommend altering for testnets
|
||||
# Initial fork version for mainnet
|
||||
GENESIS_FORK_VERSION: 0x00000000
|
||||
# 604800 seconds (7 days)
|
||||
# 7 * 24 * 3,600 (= 604,800) seconds, 7 days
|
||||
GENESIS_DELAY: 604800
|
||||
|
||||
# Forking
|
||||
@@ -39,32 +39,38 @@ GENESIS_DELAY: 604800
|
||||
|
||||
# Altair
|
||||
ALTAIR_FORK_VERSION: 0x01000000
|
||||
ALTAIR_FORK_EPOCH: 74240 # Oct 27, 2021, 10:56:23am UTC
|
||||
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
|
||||
BELLATRIX_FORK_EPOCH: 144896 # Sept 6, 2022, 11:34:47am UTC
|
||||
# Capella
|
||||
CAPELLA_FORK_VERSION: 0x03000000
|
||||
CAPELLA_FORK_EPOCH: 194048 # April 12, 2023, 10:27:35pm UTC
|
||||
CAPELLA_FORK_EPOCH: 194048 # April 12, 2023, 10:27:35pm UTC
|
||||
# Deneb
|
||||
DENEB_FORK_VERSION: 0x04000000
|
||||
DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC
|
||||
DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC
|
||||
# Electra
|
||||
ELECTRA_FORK_VERSION: 0x05000000
|
||||
ELECTRA_FORK_EPOCH: 364032 # May 7, 2025, 10:05:11am UTC
|
||||
ELECTRA_FORK_EPOCH: 364032 # May 7, 2025, 10:05:11am UTC
|
||||
# Fulu
|
||||
FULU_FORK_VERSION: 0x06000000
|
||||
FULU_FORK_EPOCH: 411392 # December 3, 2025, 09:49:11pm UTC
|
||||
FULU_FORK_EPOCH: 411392 # December 3, 2025, 09:49:11pm UTC
|
||||
# Eip7805
|
||||
EIP7805_FORK_VERSION: 0x07000000
|
||||
EIP7805_FORK_EPOCH: 18446744073709551615
|
||||
# Gloas
|
||||
GLOAS_FORK_VERSION: 0x08000000
|
||||
GLOAS_FORK_EPOCH: 18446744073709551615
|
||||
# Heze
|
||||
HEZE_FORK_VERSION: 0x08000000
|
||||
HEZE_FORK_EPOCH: 18446744073709551615
|
||||
# EIP7928
|
||||
EIP7928_FORK_VERSION: 0xe7928000 # temporary stub
|
||||
EIP7928_FORK_EPOCH: 18446744073709551615
|
||||
|
||||
# Time parameters
|
||||
# ---------------------------------------------------------------
|
||||
# 12 seconds (*deprecated*)
|
||||
# 12 seconds
|
||||
SECONDS_PER_SLOT: 12
|
||||
# 12000 milliseconds
|
||||
SLOT_DURATION_MS: 12000
|
||||
@@ -89,6 +95,28 @@ SYNC_MESSAGE_DUE_BPS: 3333
|
||||
# 6667 basis points, ~67% of SLOT_DURATION_MS
|
||||
CONTRIBUTION_DUE_BPS: 6667
|
||||
|
||||
# Gloas
|
||||
# 2**6 (= 64) epochs
|
||||
MIN_BUILDER_WITHDRAWABILITY_DELAY: 64
|
||||
# 2500 basis points, 25% of SLOT_DURATION_MS
|
||||
ATTESTATION_DUE_BPS_GLOAS: 2500
|
||||
# 5000 basis points, 50% of SLOT_DURATION_MS
|
||||
AGGREGATE_DUE_BPS_GLOAS: 5000
|
||||
# 2500 basis points, 25% of SLOT_DURATION_MS
|
||||
SYNC_MESSAGE_DUE_BPS_GLOAS: 2500
|
||||
# 5000 basis points, 50% of SLOT_DURATION_MS
|
||||
CONTRIBUTION_DUE_BPS_GLOAS: 5000
|
||||
# 7500 basis points, 75% of SLOT_DURATION_MS
|
||||
PAYLOAD_ATTESTATION_DUE_BPS: 7500
|
||||
|
||||
# Heze
|
||||
# 7500 basis points, 75% of SLOT_DURATION_MS
|
||||
VIEW_FREEZE_CUTOFF_BPS: 7500
|
||||
# 6667 basis points, ~67% of SLOT_DURATION_MS
|
||||
INCLUSION_LIST_SUBMISSION_DUE_BPS: 6667
|
||||
# 9167 basis points, ~92% of SLOT_DURATION_MS
|
||||
PROPOSER_INCLUSION_LIST_CUTOFF_BPS: 9167
|
||||
|
||||
# Validator cycle
|
||||
# ---------------------------------------------------------------
|
||||
# 2**2 (= 4)
|
||||
@@ -138,12 +166,6 @@ MAX_PAYLOAD_SIZE: 10485760
|
||||
MAX_REQUEST_BLOCKS: 1024
|
||||
# 2**8 (= 256) epochs
|
||||
EPOCHS_PER_SUBNET_SUBSCRIPTION: 256
|
||||
# MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2 (= 33,024) epochs
|
||||
MIN_EPOCHS_FOR_BLOCK_REQUESTS: 33024
|
||||
# 5s
|
||||
TTFB_TIMEOUT: 5
|
||||
# 10s
|
||||
RESP_TIMEOUT: 10
|
||||
# 2**5 (= 32) slots
|
||||
ATTESTATION_PROPAGATION_SLOT_RANGE: 32
|
||||
# 500ms
|
||||
@@ -156,9 +178,6 @@ SUBNETS_PER_NODE: 2
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
# 0 bits
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS (= 6 + 0) bits
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
ATTESTATION_SUBNET_SHUFFLING_PREFIX_BITS: 3
|
||||
|
||||
# Deneb
|
||||
# 2**7 (= 128) blocks
|
||||
@@ -169,24 +188,18 @@ MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096
|
||||
BLOB_SIDECAR_SUBNET_COUNT: 6
|
||||
# 6 blobs
|
||||
MAX_BLOBS_PER_BLOCK: 6
|
||||
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK (= 128 * 6) sidecars
|
||||
MAX_REQUEST_BLOB_SIDECARS: 768
|
||||
|
||||
# Electra
|
||||
# 9 subnets
|
||||
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9
|
||||
# 9 blobs
|
||||
MAX_BLOBS_PER_BLOCK_ELECTRA: 9
|
||||
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA (= 128 * 9) sidecars
|
||||
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152
|
||||
|
||||
# Fulu
|
||||
# 2**7 (= 128) groups
|
||||
NUMBER_OF_CUSTODY_GROUPS: 128
|
||||
# 2**7 (= 128) subnets
|
||||
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
|
||||
# MAX_REQUEST_BLOCKS_DENEB * NUMBER_OF_COLUMNS (= 128 * 128) sidecars
|
||||
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
|
||||
# 2**3 (= 8) samples
|
||||
SAMPLES_PER_SLOT: 8
|
||||
# 2**2 (= 4) sidecars
|
||||
@@ -198,6 +211,17 @@ BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
|
||||
# 2**12 (= 4,096) epochs
|
||||
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
|
||||
|
||||
# Gloas
|
||||
# 2**7 (= 128) payloads
|
||||
MAX_REQUEST_PAYLOADS: 128
|
||||
|
||||
# Heze
|
||||
# 2**4 (= 16) inclusion lists
|
||||
MAX_REQUEST_INCLUSION_LIST: 16
|
||||
# 2**13 (= 8,192) bytes
|
||||
MAX_BYTES_PER_INCLUSION_LIST: 8192
|
||||
|
||||
|
||||
# Blob Scheduling
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
@@ -212,4 +236,3 @@ ATTESTATION_DEADLINE: 4
|
||||
PROPOSER_INCLUSION_LIST_CUT_OFF: 11
|
||||
VIEW_FREEZE_DEADLINE: 9
|
||||
|
||||
# Gloas
|
||||
|
||||
@@ -133,6 +133,7 @@ SUBNETS_PER_NODE: 2
|
||||
ATTESTATION_SUBNET_COUNT: 64
|
||||
ATTESTATION_SUBNET_EXTRA_BITS: 0
|
||||
# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS
|
||||
# computed at runtime
|
||||
ATTESTATION_SUBNET_PREFIX_BITS: 6
|
||||
ATTESTATION_SUBNET_SHUFFLING_PREFIX_BITS: 3
|
||||
|
||||
|
||||
@@ -101,14 +101,14 @@ impl Eth2NetworkConfig {
|
||||
|
||||
/// Instantiates `Self` from a `HardcodedNet`.
|
||||
fn from_hardcoded_net(net: &HardcodedNet) -> Result<Self, String> {
|
||||
let config: Config = serde_yaml::from_reader(net.config)
|
||||
let config: Config = yaml_serde::from_reader(net.config)
|
||||
.map_err(|e| format!("Unable to parse yaml config: {:?}", e))?;
|
||||
let kzg_trusted_setup = get_trusted_setup();
|
||||
Ok(Self {
|
||||
deposit_contract_deploy_block: serde_yaml::from_reader(net.deploy_block)
|
||||
deposit_contract_deploy_block: yaml_serde::from_reader(net.deploy_block)
|
||||
.map_err(|e| format!("Unable to parse deploy block: {:?}", e))?,
|
||||
boot_enr: Some(
|
||||
serde_yaml::from_reader(net.boot_enr)
|
||||
yaml_serde::from_reader(net.boot_enr)
|
||||
.map_err(|e| format!("Unable to parse boot enr: {:?}", e))?,
|
||||
),
|
||||
genesis_state_source: net.genesis_state_source,
|
||||
@@ -133,6 +133,16 @@ impl Eth2NetworkConfig {
|
||||
self.genesis_state_source != GenesisStateSource::Unknown
|
||||
}
|
||||
|
||||
/// The `genesis_time` of the genesis state.
|
||||
pub fn genesis_time<E: EthSpec>(&self) -> Result<Option<u64>, String> {
|
||||
if let GenesisStateSource::Url { genesis_time, .. } = self.genesis_state_source {
|
||||
Ok(Some(genesis_time))
|
||||
} else {
|
||||
self.get_genesis_state_from_bytes::<E>()
|
||||
.map(|state| Some(state.genesis_time()))
|
||||
}
|
||||
}
|
||||
|
||||
/// The `genesis_validators_root` of the genesis state.
|
||||
pub fn genesis_validators_root<E: EthSpec>(&self) -> Result<Option<Hash256>, String> {
|
||||
if let GenesisStateSource::Url {
|
||||
@@ -276,7 +286,7 @@ impl Eth2NetworkConfig {
|
||||
File::create(base_dir.join($file))
|
||||
.map_err(|e| format!("Unable to create {}: {:?}", $file, e))
|
||||
.and_then(|mut file| {
|
||||
let yaml = serde_yaml::to_string(&$variable)
|
||||
let yaml = yaml_serde::to_string(&$variable)
|
||||
.map_err(|e| format!("Unable to YAML encode {}: {:?}", $file, e))?;
|
||||
|
||||
// Remove the doc header from the YAML file.
|
||||
@@ -324,7 +334,7 @@ impl Eth2NetworkConfig {
|
||||
File::open(base_dir.join($file))
|
||||
.map_err(|e| format!("Unable to open {}: {:?}", $file, e))
|
||||
.and_then(|file| {
|
||||
serde_yaml::from_reader(file)
|
||||
yaml_serde::from_reader(file)
|
||||
.map_err(|e| format!("Unable to parse {}: {:?}", $file, e))
|
||||
})?
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user