Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config/testnet/chainspec.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
},
"difficulty": "0x0",
"author": "0x0000000000000000000000000000000000000000",
"timestamp": "0x684bb12e",
"timestamp": "0x6899a1ea",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "",
"gasLimit": "0x2255100"
Expand Down
337 changes: 147 additions & 190 deletions config/testnet/config.yaml
Original file line number Diff line number Diff line change
@@ -1,190 +1,147 @@
# Mainnet config

# Extends the mainnet preset
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
# * 'sepolia' - testnet
# * 'holesky' - testnet
# * 'hoodi' - testnet
# Must match the regex: [a-z0-9\-]
CONFIG_NAME: testnet # needs to exist because of Prysm. Otherwise it conflicts with mainnet genesis

# Transition
# ---------------------------------------------------------------
# Estimated on Sept 15, 2022
TERMINAL_TOTAL_DIFFICULTY: 0
# By default, don't use these params
TERMINAL_BLOCK_HASH: 0x0000000000000000000000000000000000000000000000000000000000000000
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615



# Genesis
# ---------------------------------------------------------------
# `2**14` (= 16,384)
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 200
# 2025-Jun-13 05:03:42 AM UTC
MIN_GENESIS_TIME: 1749791022
# Mainnet initial fork version, recommend altering for testnets
GENESIS_FORK_VERSION: 0x10000000
# Some seconds
GENESIS_DELAY: 60


# 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: 0x20000000
ALTAIR_FORK_EPOCH: 0
# Merge
BELLATRIX_FORK_VERSION: 0x30000000
BELLATRIX_FORK_EPOCH: 0
# Capella
CAPELLA_FORK_VERSION: 0x40000000
CAPELLA_FORK_EPOCH: 0
# Deneb
DENEB_FORK_VERSION: 0x50000000
DENEB_FORK_EPOCH: 0
# Electra
ELECTRA_FORK_VERSION: 0x60000000
ELECTRA_FORK_EPOCH: 0
# Fulu
FULU_FORK_VERSION: 0x70000000
FULU_FORK_EPOCH: 18446744073709551615
# EIP7441
EIP7441_FORK_VERSION: 0xa0000000
EIP7441_FORK_EPOCH: 18446744073709551615
# EIP7732
EIP7732_FORK_VERSION: 0x80000000
EIP7732_FORK_EPOCH: 18446744073709551615
# EIP7805
EIP7805_FORK_VERSION: 0x90000000
EIP7805_FORK_EPOCH: 18446744073709551615

# Time parameters
# ---------------------------------------------------------------
# 12 seconds
SECONDS_PER_SLOT: 10
# 14 (estimate from Eth1 mainnet)
SECONDS_PER_ETH1_BLOCK: 10
# 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: 4204206969
DEPOSIT_NETWORK_ID: 4204206969
DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa

# Networking
# ---------------------------------------------------------------
# `10 * 2**20` (= 10485760, 10 MiB)
MAX_PAYLOAD_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
# 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
# `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
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
MAX_REQUEST_BLOB_SIDECARS: 768

# 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: 64000000000
# `9`
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9
# `uint64(9)`
MAX_BLOBS_PER_BLOCK_ELECTRA: 9
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152

# 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
VALIDATOR_CUSTODY_REQUIREMENT: 8
BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
MAX_BLOBS_PER_BLOCK_FULU: 9
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096

# EIP7441
EPOCHS_PER_SHUFFLING_PHASE: 256
PROPOSER_SELECTION_GAP: 2

# EIP7732
MAX_REQUEST_PAYLOADS: 128

# EIP7805
ATTESTATION_DEADLINE: 4
PROPOSER_INCLUSION_LIST_CUT_OFF: 11
VIEW_FREEZE_DEADLINE: 9
# Metalayer config with 10% of mainnet rewards

# Extends the mainnet preset
PRESET_BASE: mainnet

CONFIG_NAME: metalayer

# Transition
# ---------------------------------------------------------------
TERMINAL_TOTAL_DIFFICULTY: 0
TERMINAL_BLOCK_HASH: 0x0000000000000000000000000000000000000000000000000000000000000000
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615

# Genesis
# ---------------------------------------------------------------
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 200
MIN_GENESIS_TIME: 1754898922
GENESIS_FORK_VERSION: 0x10000000
GENESIS_DELAY: 60

# Forking - Starting at Electra
# ---------------------------------------------------------------
ALTAIR_FORK_VERSION: 0x20000000
ALTAIR_FORK_EPOCH: 0
BELLATRIX_FORK_VERSION: 0x30000000
BELLATRIX_FORK_EPOCH: 0
CAPELLA_FORK_VERSION: 0x40000000
CAPELLA_FORK_EPOCH: 0
DENEB_FORK_VERSION: 0x50000000
DENEB_FORK_EPOCH: 0
ELECTRA_FORK_VERSION: 0x60000000
ELECTRA_FORK_EPOCH: 0
FULU_FORK_VERSION: 0x70000000
FULU_FORK_EPOCH: 18446744073709551615
EIP7441_FORK_VERSION: 0xa0000000
EIP7441_FORK_EPOCH: 18446744073709551615
EIP7732_FORK_VERSION: 0x80000000
EIP7732_FORK_EPOCH: 18446744073709551615
EIP7805_FORK_VERSION: 0x90000000
EIP7805_FORK_EPOCH: 18446744073709551615

# Reward and penalty parameters for 10% rewards
# ---------------------------------------------------------------
# Main reward factor - reduced to 10% (64 → 6)
BASE_REWARD_FACTOR: 6

# Proportional penalties and rewards (increased by 10x for smaller penalties/rewards)
WHISTLEBLOWER_REWARD_QUOTIENT: 5120 # 512 × 10
PROPOSER_REWARD_QUOTIENT: 80 # 8 × 10
INACTIVITY_PENALTY_QUOTIENT: 671088640 # 67108864 × 10
MIN_SLASHING_PENALTY_QUOTIENT: 1280 # 128 × 10

# Electra-specific proportional adjustments
WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: 40960 # 4096 × 10
MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: 40960 # 4096 × 10
INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: 167772160 # 16777216 × 10

# Time parameters
# ---------------------------------------------------------------
SECONDS_PER_SLOT: 10
SECONDS_PER_ETH1_BLOCK: 10
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
SHARD_COMMITTEE_PERIOD: 256
ETH1_FOLLOW_DISTANCE: 2048

# Validator cycle
# ---------------------------------------------------------------
INACTIVITY_SCORE_BIAS: 4
INACTIVITY_SCORE_RECOVERY_RATE: 16
EJECTION_BALANCE: 16000000000
MIN_PER_EPOCH_CHURN_LIMIT: 4
CHURN_LIMIT_QUOTIENT: 65536
MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 8

# Fork choice
# ---------------------------------------------------------------
PROPOSER_SCORE_BOOST: 40
REORG_HEAD_WEIGHT_THRESHOLD: 20
REORG_PARENT_WEIGHT_THRESHOLD: 160
REORG_MAX_EPOCHS_SINCE_FINALIZATION: 2

# Deposit contract
# ---------------------------------------------------------------
DEPOSIT_CHAIN_ID: 4204206969
DEPOSIT_NETWORK_ID: 4204206969
DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa

# Networking
# ---------------------------------------------------------------
MAX_PAYLOAD_SIZE: 10485760
MAX_REQUEST_BLOCKS: 1024
EPOCHS_PER_SUBNET_SUBSCRIPTION: 256
MIN_EPOCHS_FOR_BLOCK_REQUESTS: 33024
TTFB_TIMEOUT: 5
RESP_TIMEOUT: 10
ATTESTATION_PROPAGATION_SLOT_RANGE: 32
MAXIMUM_GOSSIP_CLOCK_DISPARITY: 500
MESSAGE_DOMAIN_INVALID_SNAPPY: 0x00000000
MESSAGE_DOMAIN_VALID_SNAPPY: 0x01000000
SUBNETS_PER_NODE: 2
ATTESTATION_SUBNET_COUNT: 64
ATTESTATION_SUBNET_EXTRA_BITS: 0
ATTESTATION_SUBNET_PREFIX_BITS: 6

# Deneb
# ---------------------------------------------------------------
MAX_REQUEST_BLOCKS_DENEB: 128
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096
BLOB_SIDECAR_SUBNET_COUNT: 6
MAX_BLOBS_PER_BLOCK: 6
MAX_REQUEST_BLOB_SIDECARS: 768

# Electra
# ---------------------------------------------------------------
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 64000000000
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9
MAX_BLOBS_PER_BLOCK_ELECTRA: 9
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152

# 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
VALIDATOR_CUSTODY_REQUIREMENT: 8
BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000
MAX_BLOBS_PER_BLOCK_FULU: 9
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096

# EIP7441
# ---------------------------------------------------------------
EPOCHS_PER_SHUFFLING_PHASE: 256
PROPOSER_SELECTION_GAP: 2

# EIP7732
# ---------------------------------------------------------------
MAX_REQUEST_PAYLOADS: 128

# EIP7805
# ---------------------------------------------------------------
ATTESTATION_DEADLINE: 4
PROPOSER_INCLUSION_LIST_CUT_OFF: 11
VIEW_FREEZE_DEADLINE: 9
2 changes: 1 addition & 1 deletion config/testnet/deposit_contract_block_hash.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0x1bf49c58b94a9b9f80e4c74e2a4cd295a6cba27441bdbd4790ad4a2f91441520
0xe970d2ee317054c572cfb32d01e8aa20cb21eb0225d59670ec6fc9ebe350ada4
2 changes: 1 addition & 1 deletion config/testnet/genesis.json
Original file line number Diff line number Diff line change
Expand Up @@ -937,5 +937,5 @@
"nonce": "0x1234",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "1749791022"
"timestamp": "1754898922"
}
Binary file modified config/testnet/genesis.ssz
Binary file not shown.
Loading