Skip to content

feat: electra sync with testnets #1445

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 145 commits into from
Apr 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
e22b626
Setting up electra in version files
rodrigo-o Mar 17, 2025
0dee18e
Avoid skipping electra test in the runners
rodrigo-o Mar 18, 2025
a8b13ec
Updated native libraries to be up-to-date with latest ssz releases
rodrigo-o Mar 18, 2025
51a5ee4
Updated config/preset to support electra additions
rodrigo-o Mar 20, 2025
aaa5500
feat: electra container and ssz support (#1400)
rodrigo-o Apr 2, 2025
f84cade
Merge branch 'main' into electra-support
rodrigo-o Apr 2, 2025
ed74379
feat EpochProcessing.process_slashings electra changes
LeanSerra Apr 3, 2025
71b3674
feat compute_proposer_index changes
LeanSerra Apr 4, 2025
9aa4202
feat compute_sync_committees Electra changes
LeanSerra Apr 4, 2025
f09b71b
fix fork_choice.ex tests were flaky because env var cleanup was not done
LeanSerra Apr 4, 2025
df45ee4
feat eligible_for_activation_queue Electra changes
LeanSerra Apr 7, 2025
8fb4d63
feat new compounding_withdrawal_credential? Electra function
LeanSerra Apr 7, 2025
6e34108
feat new has_compounding_withdrawal_credential Electra function
LeanSerra Apr 7, 2025
620e700
feat new has_execution_withdrawal_credential Electra function
LeanSerra Apr 7, 2025
d904593
feat fully_withdrawable_validator? Electra changes
LeanSerra Apr 7, 2025
5445583
feat new get_max_effective_balance Electra function
LeanSerra Apr 7, 2025
5cbc5af
feat partially_withdrawable_validator? Electra changes
LeanSerra Apr 7, 2025
753badb
fix typo in struct field in has_compounding_withdrawal_credential
LeanSerra Apr 7, 2025
29bf08a
feat new get_committee_indices Electra function
LeanSerra Apr 7, 2025
17bf479
feat get_attesting_indices Electra changes
LeanSerra Apr 7, 2025
42b0bfb
lint remove unnecessary parentheses in if
LeanSerra Apr 7, 2025
6df1b36
feat slash_validator Electra changes
LeanSerra Apr 7, 2025
9e13ad5
feat new get_balance_churn_limit Electra function
LeanSerra Apr 7, 2025
abc2585
feat new get_activation_exit_churn_limit Electra function
LeanSerra Apr 7, 2025
5b7e5dc
feat compute_exit_epoch_and_churn Electra function
LeanSerra Apr 7, 2025
4eddb4b
feat initiate_validator_exit Electra changes
LeanSerra Apr 7, 2025
44a00ec
feat process_registry_updates Electra changes
LeanSerra Apr 8, 2025
9bc3a0b
refactor remove unused eject_validator(_,_,_, false) variant
LeanSerra Apr 8, 2025
e611684
feat: electra slashing, proposer_index & compute_sync_committees chan…
LeanSerra Apr 8, 2025
ed8be8a
fix compute_exit_epoch_and_update_churn wrong exit_balance calculation
LeanSerra Apr 8, 2025
c084913
Merge branch 'electra-support' into electra_predicates
LeanSerra Apr 8, 2025
6ec0216
fix additional_epochs calculation in compute_exit_epoch_and_update_churn
LeanSerra Apr 8, 2025
7da3d5a
fix wrong values for constants in minimal config
LeanSerra Apr 8, 2025
70d40aa
Merge branch 'electra_predicates' into electra_validator_exit
LeanSerra Apr 8, 2025
e4e8607
feat process_epoch changes + deposits/consolidation scaffolding
LeanSerra Apr 8, 2025
f21ee36
Merge branch 'main' into electra-support
rodrigo-o Apr 8, 2025
0e53f57
feat new is_valid_deposit_signature Electra function
LeanSerra Apr 9, 2025
12ed2d3
feat get_validator_from_deposit Electra changes
LeanSerra Apr 9, 2025
a73c061
feat apply_deposit Electra changes
LeanSerra Apr 9, 2025
6ad6e4d
feat new apply_pending_deposit Electra function
LeanSerra Apr 9, 2025
3eef3e7
feat new process_pending_deposits Electra function
LeanSerra Apr 9, 2025
88c7308
refactor move registry_update for each validator to own function inli…
LeanSerra Apr 9, 2025
14a0539
Merge branch 'electra_validator_exit' into electra_deposits
LeanSerra Apr 9, 2025
ebc73e0
refactor avoid negation in if when calculating pending_deposits in ap…
LeanSerra Apr 9, 2025
439b652
fix: kurtosis in electra support branch (#1421)
rodrigo-o Apr 9, 2025
71dee9d
feat: electra get_attesting_indices changes + helper functions from p…
LeanSerra Apr 10, 2025
f8c443a
Merge branch 'electra-support' into electra_validator_exit
LeanSerra Apr 10, 2025
8f72d6b
Merge branch 'electra_validator_exit' into electra_deposits
LeanSerra Apr 10, 2025
bc6579b
refactor: move committee_attesters calculation to own function (#1425)
LeanSerra Apr 10, 2025
b4a9d15
Merge branch 'electra-support' into electra_validator_exit
LeanSerra Apr 10, 2025
280669a
Merge branch 'electra_validator_exit' into electra_deposits
LeanSerra Apr 10, 2025
c2db045
refactor move logic to handle an individual pending_deposit to its ow…
LeanSerra Apr 10, 2025
7bc38b9
feat process_operations Electra changes
LeanSerra Apr 10, 2025
6d74e53
feat new process_deposit_request Electra function
LeanSerra Apr 10, 2025
40b0a5c
fix conditional logic for verify_deposits was incorrect
LeanSerra Apr 10, 2025
0d40248
docs: add an electra implementation gap doc (#1423)
rodrigo-o Apr 10, 2025
82afc64
fix get_committee_indices calculation was incorrect
LeanSerra Apr 10, 2025
6521f68
feat process_attestation Electra changes
LeanSerra Apr 10, 2025
e437245
feat new get_pending_balance_to_withdraw Electra function
LeanSerra Apr 10, 2025
8417e96
feat process_voluntary_exit Electra changes
LeanSerra Apr 10, 2025
39dd889
feat new process_withdrawal_request Electra function
LeanSerra Apr 11, 2025
2db24de
feat add constant g2_point_at_infinity
LeanSerra Apr 11, 2025
1b8024e
feat new queue_excess_active_balance Electra function
LeanSerra Apr 11, 2025
253b824
feat new switch_to_compounding_validator Electra function
LeanSerra Apr 11, 2025
6ace4d9
feat new get_consolidation_churn_limit Electra function
LeanSerra Apr 11, 2025
2166fb4
refactor move logic to find a validator by pubkey to own function
LeanSerra Apr 11, 2025
2c1001f
refactor invalid_withdrawal_credentials parameter is now the address …
LeanSerra Apr 11, 2025
0f8b360
feat new process_consolidation_request Electra function
LeanSerra Apr 11, 2025
68dec8f
feat: electra process_registry_updates & slash_validators changes (#1…
LeanSerra Apr 11, 2025
5b9721c
Merge branch 'electra-support' into electra_deposits
LeanSerra Apr 11, 2025
38c5a4e
docs update electra-gap.md with changes from #1424
LeanSerra Apr 11, 2025
a7997c5
Merge branch 'electra_deposits' into electra_process_operations
LeanSerra Apr 11, 2025
20515be
refactor process_consolidation_request split validations to different…
LeanSerra Apr 11, 2025
0726736
refactor process_withdrawal_request split validations to different fu…
LeanSerra Apr 14, 2025
65b1f57
feat new compute_consolidation_epoch_and_update_churn Electra function
LeanSerra Apr 14, 2025
9f720d5
fix do_process_conslidation_request was using compute_exit when it sh…
LeanSerra Apr 14, 2025
27ef594
fix typo in struct field in do_process_consolidation_request
LeanSerra Apr 14, 2025
4dcfb90
fix typo in struct field in do_process_consolidation_request
LeanSerra Apr 14, 2025
e246258
feat new process_pending_consolidations Electra function
LeanSerra Apr 14, 2025
15453e1
feat process_effective_balance_updates Electra changes
LeanSerra Apr 14, 2025
93c1002
docs update electra-gap.md with changes from #1426
LeanSerra Apr 14, 2025
5b4ece8
Merge branch 'electra_process_operations' into electra_consolidations
LeanSerra Apr 14, 2025
3e392ea
docs update electra-gap.md with changes from #1428
LeanSerra Apr 14, 2025
be02708
fix: skipped spec tests in electra (#1427)
rodrigo-o Apr 15, 2025
ff7ab9f
Merge branch 'electra-support' into electra_deposits
LeanSerra Apr 15, 2025
7cab380
Merge branch 'electra_deposits' into electra_process_operations
LeanSerra Apr 15, 2025
aaa1dde
Merge branch 'electra_process_operations' into electra_consolidations
LeanSerra Apr 15, 2025
bcc7782
fix: new ssz fixes for the static spec-test (#1430)
rodrigo-o Apr 15, 2025
ae7be10
fix full_exit valid_withdrawal was returning a nested tuple instead o…
LeanSerra Apr 15, 2025
7f55534
Merge branch 'electra_process_operations' into electra_consolidations
LeanSerra Apr 15, 2025
b426cc7
fix do_process_consolidation_request was returnig {:process, BeaconSt…
LeanSerra Apr 16, 2025
7d711d5
fix full_exit handle_valid_withdrawal_request was not updating the ex…
LeanSerra Apr 16, 2025
c4008f2
fix apply_deposits, apply_initial_deposit amount should be 0, returne…
LeanSerra Apr 16, 2025
ffbd715
fix apply_deposits using Enum.member when it should be using Enum.any
LeanSerra Apr 16, 2025
a9a9d2f
fix process_deposit_request was overwritting the updated_state
LeanSerra Apr 16, 2025
3346f10
fix add new Containers to operations.ex runner
LeanSerra Apr 16, 2025
cb9ffb4
fix: outstanding ssz issues after #1430 (#1432)
rodrigo-o Apr 16, 2025
86d539f
fix invalid_consolidation_request_credentials? logic was inverted + s…
LeanSerra Apr 16, 2025
b85fcbd
Merge branch 'electra-support' into electra_deposits
LeanSerra Apr 16, 2025
5f2929f
Merge branch 'electra_deposits' into electra_process_operations
LeanSerra Apr 16, 2025
8dab043
Merge branch 'electra_process_operations' into electra_consolidations
LeanSerra Apr 16, 2025
ba16426
feat get_expected_withdrawals Electra changes
LeanSerra Apr 14, 2025
2fef959
feat process_withdrawals Electra changes
LeanSerra Apr 14, 2025
0b06993
fix stream should be converted to list before concatenating lists in …
LeanSerra Apr 15, 2025
2a1bbfc
fix add ::binary to address pattern matching in do_process_partial_wi…
LeanSerra Apr 15, 2025
ba77dcb
fix do_process_conslidation_request was using the wrong validator_index
LeanSerra Apr 15, 2025
48965d5
fix non_partial_withdrawals calculation was skipping an incorrect amo…
LeanSerra Apr 15, 2025
5415c8c
docs update electra-gap.md with changes from #1431
LeanSerra Apr 15, 2025
f9250cb
fix incorrect check for already exiting validator in process_withdraw…
LeanSerra Apr 15, 2025
1bb0e6c
fix add ::binary to validator_address pattern matching in invalid_wit…
LeanSerra Apr 15, 2025
b19639b
fix: fixing the CI updating ubuntu and go (#1433)
rodrigo-o Apr 16, 2025
c049a33
Merge branch 'electra-support' into electra_deposits
LeanSerra Apr 16, 2025
2b6c4e1
Merge branch 'electra_deposits' into electra_process_operations
LeanSerra Apr 16, 2025
bdd2e21
Merge branch 'electra_process_operations' into electra_consolidations
LeanSerra Apr 16, 2025
a764dc9
Merge branch 'electra_consolidations' into electra_withdrawals
LeanSerra Apr 16, 2025
c4bec8f
feat: implement electra deposits (#1424)
LeanSerra Apr 21, 2025
2eb2ce3
Merge branch 'electra-support' into electra_process_operations
LeanSerra Apr 21, 2025
5bdef50
fix added diff lines
LeanSerra Apr 21, 2025
e163179
fix added diff lines
LeanSerra Apr 21, 2025
75bf0b4
fix fast_process_attestation wrong attesting indices
LeanSerra Apr 21, 2025
dd42e10
fix BitList.set should be BitList.set?, fix incorrect pattern matchin…
LeanSerra Apr 16, 2025
d1eacf7
feat: implement electra deposits (#1424)
LeanSerra Apr 21, 2025
87a465e
fix added diff lines
LeanSerra Apr 21, 2025
46717b4
fix added diff lines
LeanSerra Apr 21, 2025
27aeeb0
fix fast_process_attestation wrong attesting indices
LeanSerra Apr 21, 2025
0b8ed91
fix BitList.set should be BitList.set?, fix incorrect pattern matchin…
LeanSerra Apr 16, 2025
f3d5531
Merge branch 'electra_process_operations' into electra_consolidations
LeanSerra Apr 21, 2025
8b6f6a8
Merge branch 'electra_consolidations' into electra_withdrawals
LeanSerra Apr 21, 2025
aff110f
feat use new constant MAX_BLOBS_PER_BLOCK_ELECTRA
LeanSerra Apr 21, 2025
e1f90bf
fix change ci to use electra
LeanSerra Apr 21, 2025
e1dbb22
feat add hoodi network config
LeanSerra Apr 22, 2025
08b8365
docs: `electra-gap.md` enhancement with roadmap and current status (#…
rodrigo-o Apr 22, 2025
5f4663e
fix get_fork_version_for_epoch upgrade to electra
LeanSerra Apr 23, 2025
e691e52
feat upgrade sepolia config.yaml to electra
LeanSerra Apr 23, 2025
b826500
fix: handle_gossip_message nesting store into a tuple (#1443)
LeanSerra Apr 23, 2025
fa52d00
feat hoodi make targets
LeanSerra Apr 24, 2025
e5ef002
feat: electra process_operations changes (#1426)
LeanSerra Apr 24, 2025
f03c7d0
feat update sepolia boot_enr file
LeanSerra Apr 24, 2025
cef653a
Merge branch 'main' into electra-support
rodrigo-o Apr 24, 2025
b65087b
updated electra-gap.md doc
rodrigo-o Apr 24, 2025
9303ba0
Merge branch 'electra-support' into electra_sync
LeanSerra Apr 24, 2025
69c7084
Merge branch 'main' into electra_sync
LeanSerra Apr 28, 2025
46ded36
fix leftover conflict marks
LeanSerra Apr 28, 2025
13b66a6
feat update holesky config file for electra
LeanSerra Apr 28, 2025
45192a0
feat update mainnet config file for electra
LeanSerra Apr 28, 2025
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
10 changes: 9 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
spec-test-% spec-test spec-test-config-% spec-test-runner-% \
spec-test-mainnet-% spec-test-minimal-% spec-test-general-% \
clean-tests gen-spec compile-all download-beacon-node-oapi test-iex \
sepolia holesky gnosis
sepolia holesky gnosis hoodi

# Delete current file when command fails
.DELETE_ON_ERROR:
Expand Down Expand Up @@ -204,6 +204,14 @@ gnosis: compile-all
gnosis.logfile: compile-all
iex -S mix run -- --checkpoint-sync-url https://checkpoint.gnosischain.com --network gnosis --metrics --metrics-port $(METRICS_PORT) --log-file ./logs/gnosis.log --discovery-port $(DISCOVERY_PORT) --mode $(MODE)

#▶️ hoodi: @ Run an interactive terminal using hoodi network
hoodi: compile-all
iex -S mix run -- --checkpoint-sync-url https://checkpoint-sync.hoodi.ethpandaops.io --network hoodi --metrics --metrics-port $(METRICS_PORT) --discovery-port $(DISCOVERY_PORT) --mode $(MODE)

#▶️ hoodi.logfile: @ Run an interactive terminal using hoodi network with a log file
hoodi.logfile: compile-all
iex -S mix run -- --checkpoint-sync-url https://checkpoint-sync.hoodi.ethpandaops.io --network hoodi --metrics --metrics-port $(METRICS_PORT) --log-file ./logs/hoodi.log --discovery-port $(DISCOVERY_PORT) --mode $(MODE)

#▶️ checkpoint-sync: @ Run an interactive terminal using checkpoint sync for mainnet.
checkpoint-sync: mainnet

Expand Down
30 changes: 26 additions & 4 deletions config/networks/holesky/config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Extends the mainnet preset
PRESET_BASE: "mainnet"
PRESET_BASE: 'mainnet'
CONFIG_NAME: holesky

# Genesis
Expand All @@ -12,6 +12,7 @@ GENESIS_FORK_VERSION: 0x01017000
# Genesis delay 5 mins
GENESIS_DELAY: 300


# Forking
# ---------------------------------------------------------------
# Some forks are disabled for now:
Expand All @@ -36,6 +37,10 @@ CAPELLA_FORK_EPOCH: 256
DENEB_FORK_VERSION: 0x05017000
DENEB_FORK_EPOCH: 29696

# Electra
ELECTRA_FORK_VERSION: 0x06017000
ELECTRA_FORK_EPOCH: 115968

# Time parameters
# ---------------------------------------------------------------
# 12 seconds
Expand All @@ -49,6 +54,7 @@ SHARD_COMMITTEE_PERIOD: 256
# 2**11 (= 2,048) Eth1 blocks ~8 hours
ETH1_FOLLOW_DISTANCE: 2048


# Validator cycle
# ---------------------------------------------------------------
# 2**2 (= 4)
Expand All @@ -68,6 +74,12 @@ MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 8
# ---------------------------------------------------------------
# 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
# ---------------------------------------------------------------
Expand All @@ -78,15 +90,13 @@ DEPOSIT_CONTRACT_ADDRESS: 0x4242424242424242424242424242424242424242
# Networking
# ---------------------------------------------------------------
# `10 * 2**20` (= 10485760, 10 MiB)
GOSSIP_MAX_SIZE: 10485760
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
# `10 * 2**20` (=10485760, 10 MiB)
MAX_CHUNK_SIZE: 10485760
# 5s
TTFB_TIMEOUT: 5
# 10s
Expand All @@ -113,3 +123,15 @@ MAX_REQUEST_BLOB_SIDECARS: 768
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096
# `6`
BLOB_SIDECAR_SUBNET_COUNT: 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(9)`
MAX_BLOBS_PER_BLOCK_ELECTRA: 9
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152
9 changes: 9 additions & 0 deletions config/networks/hoodi/boot_enr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
- 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
- enr:-LK4QDwhXMitMbC8xRiNL-XGMhRyMSOnxej-zGifjv9Nm5G8EF285phTU-CAsMHRRefZimNI7eNpAluijMQP7NDC8kEMh2F0dG5ldHOIAAAAAAAABgCEZXRoMpDS8Zl_YAAJEAAIAAAAAAAAgmlkgnY0gmlwhAOIT_SJc2VjcDI1NmsxoQMoHWNL4MAvh6YpQeM2SUjhUrLIPsAVPB8nyxbmckC6KIN0Y3CCIyiDdWRwgiMo
- enr:-LK4QPYl2HnMPQ7b1es6Nf_tFYkyya5bj9IqAKOEj2cmoqVkN8ANbJJJK40MX4kciL7pZszPHw6vLNyeC-O3HUrLQv8Mh2F0dG5ldHOIAAAAAAAAAMCEZXRoMpDS8Zl_YAAJEAAIAAAAAAAAgmlkgnY0gmlwhAMYRG-Jc2VjcDI1NmsxoQPQ35tjr6q1qUqwAnegQmYQyfqxC_6437CObkZneI9n34N0Y3CCIyiDdWRwgiMo
- enr:-KG4QJk_4IQHQw3DAdKIuGcEauKU8-nmRPPMj_hIQPRHmsFGMPPeOj6_xX09aHCndOzLnOZimVRzNM56_EQWYVbEpJMBgmlkgnY0gmlwhLkvrBODaXA2kP6AAAAAAAAAAhY-__4PR6OJc2VjcDI1NmsxoQPU7g2jQGTz8BYbB2vLTb39S_PrcZAehwMM0b3bWsM5rIN1ZHCCIyiEdWRwNoIjKA
163 changes: 163 additions & 0 deletions config/networks/hoodi/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# 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)
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
# 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
Loading
Loading