mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-03 00:31:50 +00:00
Support Hoodi testnet (#7145)
Hardcode config for the upcoming `hoodi` testnet so we can run with `--network hoodi`.
This commit is contained in:
@@ -290,7 +290,7 @@ Options:
|
||||
monitoring-endpoint. Default: 60s
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
--network-dir <DIR>
|
||||
Data directory for network keys. Defaults to network/ inside the
|
||||
beacon node dir.
|
||||
|
||||
@@ -76,7 +76,7 @@ Options:
|
||||
set to 0, background file logging is disabled. [default: 200]
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
-t, --testnet-dir <DIR>
|
||||
Path to directory containing eth2_testnet specs. Defaults to a
|
||||
hard-coded Lighthouse testnet. Only effective if there is no existing
|
||||
|
||||
@@ -119,7 +119,7 @@ Options:
|
||||
monitoring-endpoint. [default: 60]
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
--proposer-nodes <NETWORK_ADDRESSES>
|
||||
Comma-separated addresses to one or more beacon node HTTP APIs. These
|
||||
specify nodes that are used to send beacon block proposals. A failure
|
||||
|
||||
@@ -73,7 +73,7 @@ Options:
|
||||
set to 0, background file logging is disabled. [default: 200]
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
-t, --testnet-dir <DIR>
|
||||
Path to directory containing eth2_testnet specs. Defaults to a
|
||||
hard-coded Lighthouse testnet. Only effective if there is no existing
|
||||
|
||||
@@ -82,7 +82,7 @@ Options:
|
||||
If present, the mnemonic will be read in from this file.
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
--output-path <DIRECTORY>
|
||||
The path to a directory where the validator and (optionally) deposits
|
||||
files will be created. The directory will be created if it does not
|
||||
|
||||
@@ -65,7 +65,7 @@ Options:
|
||||
set to 0, background file logging is disabled. [default: 200]
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
--password <STRING>
|
||||
Password of the keystore file.
|
||||
--prefer-builder-proposals <prefer-builder-proposals>
|
||||
|
||||
@@ -69,7 +69,7 @@ Options:
|
||||
set to 0, background file logging is disabled. [default: 200]
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky, hoodi]
|
||||
--prefer-builder-proposals <prefer-builder-proposals>
|
||||
If this flag is set, Lighthouse will always prefer blocks constructed
|
||||
by builders, regardless of payload value. [possible values: true,
|
||||
|
||||
@@ -35,6 +35,17 @@ const HOLESKY_GENESIS_STATE_SOURCE: GenesisStateSource = GenesisStateSource::Url
|
||||
genesis_state_root: "0x0ea3f6f9515823b59c863454675fefcd1d8b4f2dbe454db166206a41fda060a0",
|
||||
};
|
||||
|
||||
const HOODI_GENESIS_STATE_SOURCE: GenesisStateSource = GenesisStateSource::Url {
|
||||
urls: &[
|
||||
// This is an AWS S3 bucket hosted by Sigma Prime. See Paul Hauner for
|
||||
// more details.
|
||||
"https://sigp-public-genesis-states.s3.ap-southeast-2.amazonaws.com/hoodi/",
|
||||
],
|
||||
checksum: "0x7f42257ef69e055496c964a753bb07e54001ccd57ab467ef72d67af086bcfce7",
|
||||
genesis_validators_root: "0x212f13fc4df078b6cb7db228f1c8307566dcecf900867401a92023d7ba99cb5f",
|
||||
genesis_state_root: "0x2683ebc120f91f740c7bed4c866672d01e1ba51b4cc360297138465ee5df40f0",
|
||||
};
|
||||
|
||||
const CHIADO_GENESIS_STATE_SOURCE: GenesisStateSource = GenesisStateSource::Url {
|
||||
// No default checkpoint sources are provided.
|
||||
urls: &[],
|
||||
@@ -328,5 +339,14 @@ define_hardcoded_nets!(
|
||||
"holesky",
|
||||
// Describes how the genesis state can be obtained.
|
||||
HOLESKY_GENESIS_STATE_SOURCE
|
||||
),
|
||||
(
|
||||
// Network name (must be unique among all networks).
|
||||
hoodi,
|
||||
// The name of the directory in the `eth2_network_config/built_in_network_configs`
|
||||
// directory where the configuration files are located for this network.
|
||||
"hoodi",
|
||||
// Describes how the genesis state can be obtained.
|
||||
HOODI_GENESIS_STATE_SOURCE
|
||||
)
|
||||
);
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# hoodi consensus layer bootnodes
|
||||
# ---------------------------------------
|
||||
# 1. Tag nodes with maintainer
|
||||
# 2. Keep nodes updated
|
||||
# 3. Review PRs: check ENR duplicates, fork-digest, connection.
|
||||
|
||||
# EF
|
||||
- enr:-Mq4QLkmuSwbGBUph1r7iHopzRpdqE-gcm5LNZfcE-6T37OCZbRHi22bXZkaqnZ6XdIyEDTelnkmMEQB8w6NbnJUt9GGAZWaowaYh2F0dG5ldHOIABgAAAAAAACEZXRoMpDS8Zl_YAAJEAAIAAAAAAAAgmlkgnY0gmlwhNEmfKCEcXVpY4IyyIlzZWNwMjU2azGhA0hGa4jZJZYQAS-z6ZFK-m4GCFnWS8wfjO0bpSQn6hyEiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo
|
||||
- enr:-Ku4QLVumWTwyOUVS4ajqq8ZuZz2ik6t3Gtq0Ozxqecj0qNZWpMnudcvTs-4jrlwYRQMQwBS8Pvtmu4ZPP2Lx3i2t7YBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpBd9cEGEAAJEP__________gmlkgnY0gmlwhNEmfKCJc2VjcDI1NmsxoQLdRlI8aCa_ELwTJhVN8k7km7IDc3pYu-FMYBs5_FiigIN1ZHCCIyk
|
||||
- enr:-LK4QAYuLujoiaqCAs0-qNWj9oFws1B4iy-Hff1bRB7wpQCYSS-IIMxLWCn7sWloTJzC1SiH8Y7lMQ5I36ynGV1ASj4Eh2F0dG5ldHOIYAAAAAAAAACEZXRoMpDS8Zl_YAAJEAAIAAAAAAAAgmlkgnY0gmlwhIbRilSJc2VjcDI1NmsxoQOmI5MlAu3f5WEThAYOqoygpS2wYn0XS5NV2aYq7T0a04N0Y3CCIyiDdWRwgiMo
|
||||
- enr:-Ku4QIC89sMC0o-irosD4_23lJJ4qCGOvdUz7SmoShWx0k6AaxCFTKviEHa-sa7-EzsiXpDp0qP0xzX6nKdXJX3X-IQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpBd9cEGEAAJEP__________gmlkgnY0gmlwhIbRilSJc2VjcDI1NmsxoQK_m0f1DzDc9Cjrspm36zuRa7072HSiMGYWLsKiVSbP34N1ZHCCIyk
|
||||
- enr:-Ku4QNkWjw5tNzo8DtWqKm7CnDdIq_y7xppD6c1EZSwjB8rMOkSFA1wJPLoKrq5UvA7wcxIotH6Usx3PAugEN2JMncIBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpBd9cEGEAAJEP__________gmlkgnY0gmlwhIbHuBeJc2VjcDI1NmsxoQP3FwrhFYB60djwRjAoOjttq6du94DtkQuaN99wvgqaIYN1ZHCCIyk
|
||||
- enr:-OS4QMJGE13xEROqvKN1xnnt7U-noc51VXyM6wFMuL9LMhQDfo1p1dF_zFdS4OsnXz_vIYk-nQWnqJMWRDKvkSK6_CwDh2F0dG5ldHOIAAAAADAAAACGY2xpZW502IpMaWdodGhvdXNljDcuMC4wLWJldGEuM4RldGgykNLxmX9gAAkQAAgAAAAAAACCaWSCdjSCaXCEhse4F4RxdWljgiMqiXNlY3AyNTZrMaECef77P8k5l3PC_raLw42OAzdXfxeQ-58BJriNaqiRGJSIc3luY25ldHMAg3RjcIIjKIN1ZHCCIyg
|
||||
@@ -0,0 +1,165 @@
|
||||
# Extends the mainnet preset
|
||||
PRESET_BASE: mainnet
|
||||
CONFIG_NAME: hoodi
|
||||
|
||||
# Genesis
|
||||
# ---------------------------------------------------------------
|
||||
# `2**14` (= 16,384)
|
||||
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384
|
||||
# 2025-Mar-17 12:00:00 PM UTC
|
||||
MIN_GENESIS_TIME: 1742212800
|
||||
GENESIS_FORK_VERSION: 0x10000910
|
||||
GENESIS_DELAY: 600
|
||||
|
||||
|
||||
# Forking
|
||||
# ---------------------------------------------------------------
|
||||
# Some forks are disabled for now:
|
||||
# - These may be re-assigned to another fork-version later
|
||||
# - Temporarily set to max uint64 value: 2**64 - 1
|
||||
|
||||
# Altair
|
||||
ALTAIR_FORK_VERSION: 0x20000910
|
||||
ALTAIR_FORK_EPOCH: 0
|
||||
# Merge
|
||||
BELLATRIX_FORK_VERSION: 0x30000910
|
||||
BELLATRIX_FORK_EPOCH: 0
|
||||
TERMINAL_TOTAL_DIFFICULTY: 0
|
||||
TERMINAL_BLOCK_HASH: 0x0000000000000000000000000000000000000000000000000000000000000000
|
||||
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615
|
||||
|
||||
# Capella
|
||||
CAPELLA_FORK_VERSION: 0x40000910
|
||||
CAPELLA_FORK_EPOCH: 0
|
||||
|
||||
# DENEB
|
||||
DENEB_FORK_VERSION: 0x50000910
|
||||
DENEB_FORK_EPOCH: 0
|
||||
|
||||
# Electra
|
||||
ELECTRA_FORK_VERSION: 0x60000910
|
||||
ELECTRA_FORK_EPOCH: 2048
|
||||
|
||||
# Fulu
|
||||
FULU_FORK_VERSION: 0x70000910
|
||||
FULU_FORK_EPOCH: 18446744073709551615
|
||||
|
||||
|
||||
# Time parameters
|
||||
# ---------------------------------------------------------------
|
||||
# 12 seconds
|
||||
SECONDS_PER_SLOT: 12
|
||||
# 14 (estimate from Eth1 mainnet)
|
||||
SECONDS_PER_ETH1_BLOCK: 12
|
||||
# 2**8 (= 256) epochs ~27 hours
|
||||
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
|
||||
# 2**8 (= 256) epochs ~27 hours
|
||||
SHARD_COMMITTEE_PERIOD: 256
|
||||
# 2**11 (= 2,048) Eth1 blocks ~8 hours
|
||||
ETH1_FOLLOW_DISTANCE: 2048
|
||||
|
||||
# Validator cycle
|
||||
# ---------------------------------------------------------------
|
||||
# 2**2 (= 4)
|
||||
INACTIVITY_SCORE_BIAS: 4
|
||||
# 2**4 (= 16)
|
||||
INACTIVITY_SCORE_RECOVERY_RATE: 16
|
||||
# 2**4 * 10**9 (= 16,000,000,000) Gwei
|
||||
EJECTION_BALANCE: 16000000000
|
||||
# 2**2 (= 4)
|
||||
MIN_PER_EPOCH_CHURN_LIMIT: 4
|
||||
# 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
|
||||
# ---------------------------------------------------------------
|
||||
DEPOSIT_CHAIN_ID: 560048
|
||||
DEPOSIT_NETWORK_ID: 560048
|
||||
DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa
|
||||
|
||||
# Networking
|
||||
# ---------------------------------------------------------------
|
||||
# `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
|
||||
|
||||
# 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
|
||||
## `uint64(6)`
|
||||
MAX_BLOBS_PER_BLOCK: 6
|
||||
|
||||
# Electra
|
||||
# 2**7 * 10**9 (= 128,000,000,000)
|
||||
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000
|
||||
# 2**8 * 10**9 (= 256,000,000,000)
|
||||
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 256000000000
|
||||
# `9`
|
||||
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9
|
||||
# `uint64(6)`
|
||||
TARGET_BLOBS_PER_BLOCK_ELECTRA: 6
|
||||
# `uint64(9)`
|
||||
MAX_BLOBS_PER_BLOCK_ELECTRA: 9
|
||||
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA
|
||||
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152
|
||||
|
||||
# Whisk
|
||||
# `Epoch(2**8)`
|
||||
WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256
|
||||
# `Epoch(2)`
|
||||
WHISK_PROPOSER_SELECTION_GAP: 2
|
||||
|
||||
# Fulu
|
||||
NUMBER_OF_COLUMNS: 128
|
||||
NUMBER_OF_CUSTODY_GROUPS: 128
|
||||
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
|
||||
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
|
||||
SAMPLES_PER_SLOT: 8
|
||||
CUSTODY_REQUIREMENT: 4
|
||||
MAX_BLOBS_PER_BLOCK_FULU: 12
|
||||
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
|
||||
|
||||
# EIP7732
|
||||
MAX_REQUEST_PAYLOADS: 128
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
Reference in New Issue
Block a user