From 455386aaf5f957e6bbdd5321a2faba9ba6d7a507 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 19 Jan 2026 15:01:09 +0100 Subject: [PATCH 1/4] feat: add min builder withdrawal delay --- .github/tests/dummy-el.yaml | 1 + .github/tests/fulu-genesis.yaml | 52 ++++++++++--------- README.md | 6 ++- network_params.yaml | 2 +- src/package_io/constants.star | 2 +- src/package_io/input_parser.star | 3 ++ src/package_io/sanity_check.star | 1 + .../el_cl_genesis_generator.star | 1 + .../el-cl/values.env.tmpl | 1 + 9 files changed, 41 insertions(+), 28 deletions(-) diff --git a/.github/tests/dummy-el.yaml b/.github/tests/dummy-el.yaml index 672e8fc5b..02f99d245 100644 --- a/.github/tests/dummy-el.yaml +++ b/.github/tests/dummy-el.yaml @@ -1,4 +1,5 @@ participants: + - el_type: geth - el_type: dummy cl_type: teku - el_type: dummy diff --git a/.github/tests/fulu-genesis.yaml b/.github/tests/fulu-genesis.yaml index 6542ee1fc..7d297a28f 100644 --- a/.github/tests/fulu-genesis.yaml +++ b/.github/tests/fulu-genesis.yaml @@ -6,35 +6,35 @@ participants: cl_image: ethpandaops/lighthouse:unstable supernode: true - - el_type: nethermind - el_image: ethpandaops/nethermind:master - el_extra_params: ["--Blocks.ExtraData=TekuFromLocal"] - cl_type: teku - cl_image: ethpandaops/teku:master + # - el_type: nethermind + # el_image: ethpandaops/nethermind:master + # el_extra_params: ["--Blocks.ExtraData=TekuFromLocal"] + # cl_type: teku + # cl_image: ethpandaops/teku:master - - el_type: reth - el_image: ethpandaops/reth:main - el_extra_params: ["--builder.extradata=LodestarFromLocal"] - cl_type: lodestar - cl_image: ethpandaops/lodestar:unstable + # - el_type: reth + # el_image: ethpandaops/reth:main + # el_extra_params: ["--builder.extradata=LodestarFromLocal"] + # cl_type: lodestar + # cl_image: ethpandaops/lodestar:unstable - - el_type: geth - el_image: ethpandaops/geth:master - el_extra_params: ["--miner.extradata=PrysmFromLocal"] - cl_type: prysm - cl_image: ethpandaops/prysm-beacon-chain:develop + # - el_type: geth + # el_image: ethpandaops/geth:master + # el_extra_params: ["--miner.extradata=PrysmFromLocal"] + # cl_type: prysm + # cl_image: ethpandaops/prysm-beacon-chain:develop - - el_type: nethermind - el_image: ethpandaops/nethermind:master - el_extra_params: ["--Blocks.ExtraData=NimbusFromLocal"] - cl_type: nimbus - cl_image: ethpandaops/nimbus-eth2:unstable + # - el_type: nethermind + # el_image: ethpandaops/nethermind:master + # el_extra_params: ["--Blocks.ExtraData=NimbusFromLocal"] + # cl_type: nimbus + # cl_image: ethpandaops/nimbus-eth2:unstable - - el_type: reth - el_image: ethpandaops/reth:main - el_extra_params: ["--builder.extradata=GrandineFromLocal"] - cl_type: grandine - cl_image: ethpandaops/grandine:develop + # - el_type: reth + # el_image: ethpandaops/reth:main + # el_extra_params: ["--builder.extradata=GrandineFromLocal"] + # cl_type: grandine + # cl_image: ethpandaops/grandine:develop network_params: altair_fork_epoch: 0 bellatrix_fork_epoch: 0 @@ -45,5 +45,7 @@ network_params: bpo_1_epoch: 1 gloas_fork_epoch: 2 genesis_delay: 120 + preset: minimal additional_services: - dora + diff --git a/README.md b/README.md index d68c26e5f..ef6807825 100644 --- a/README.md +++ b/README.md @@ -759,6 +759,10 @@ network_params: # Defaults to 256 epochs ~27 hours min_validator_withdrawability_delay: 256 + # The minimum number of epochs for builder withdrawability delay + # Defaults to 4096, 8 for minimal preset + min_builder_withdrawability_delay: 4096 + # The period of the shard committee # Defaults to 256 epoch ~27 hours shard_committee_period: 256 @@ -1388,7 +1392,7 @@ spamoor_params: # Ethereum genesis generator params ethereum_genesis_generator_params: # The image to use for ethereum genesis generator - image: ethpandaops/ethereum-genesis-generator:5.2.2 + image: ethpandaops/ethereum-genesis-generator:5.2.3 # Pass custom environment variables to the genesis generator (e.g. MY_VAR: my_value) extra_env: {} diff --git a/network_params.yaml b/network_params.yaml index 554cc96bd..457fa7e52 100644 --- a/network_params.yaml +++ b/network_params.yaml @@ -244,7 +244,7 @@ keymanager_enabled: false checkpoint_sync_enabled: false checkpoint_sync_url: "" ethereum_genesis_generator_params: - image: ethpandaops/ethereum-genesis-generator:5.2.2 + image: ethpandaops/ethereum-genesis-generator:5.2.3 extra_env: {} port_publisher: nat_exit_ip: KURTOSIS_IP_ADDR_PLACEHOLDER diff --git a/src/package_io/constants.star b/src/package_io/constants.star index d0fc2b900..2c4b44a68 100644 --- a/src/package_io/constants.star +++ b/src/package_io/constants.star @@ -101,7 +101,7 @@ DEFAULT_ASSERTOOR_IMAGE = "ethpandaops/assertoor:latest" DEFAULT_SNOOPER_IMAGE = "ethpandaops/rpc-snooper:latest" DEFAULT_BOOTNODOOR_IMAGE = "ethpandaops/bootnodoor:latest" DEFAULT_ETHEREUM_GENESIS_GENERATOR_IMAGE = ( - "ethpandaops/ethereum-genesis-generator:5.2.2" + "ethpandaops/ethereum-genesis-generator:5.2.3" ) DEFAULT_YQ_IMAGE = "linuxserver/yq" DEFAULT_FLASHBOTS_RELAY_IMAGE = "ethpandaops/mev-boost-relay:main" diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 4d2085a5e..2ab282c3c 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -85,6 +85,7 @@ ATTR_TO_BE_SKIPPED_AT_ROOT = ( "bootnodoor_params", "mempool_bridge_params", "ews_params", + "ethereum_genesis_generator_params", ) @@ -1346,6 +1347,7 @@ def default_network_params(): "ejection_balance": 16000000000, "eth1_follow_distance": 2048, "min_validator_withdrawability_delay": 256, + "min_builder_withdrawability_delay": 4096, "shard_committee_period": 256, "attestation_due_bps_gloas": 2500, "aggregate_due_bps_gloas": 5000, @@ -1429,6 +1431,7 @@ def default_minimal_network_params(): "ejection_balance": 16000000000, "eth1_follow_distance": 16, "min_validator_withdrawability_delay": 256, + "min_builder_withdrawability_delay": 8, "shard_committee_period": 64, "attestation_due_bps_gloas": 2500, "aggregate_due_bps_gloas": 5000, diff --git a/src/package_io/sanity_check.star b/src/package_io/sanity_check.star index a2e720ad4..75b321816 100644 --- a/src/package_io/sanity_check.star +++ b/src/package_io/sanity_check.star @@ -230,6 +230,7 @@ SUBCATEGORY_PARAMS = { "ejection_balance", "eth1_follow_distance", "min_validator_withdrawability_delay", + "min_builder_withdrawability_delay", "shard_committee_period", "attestation_due_bps_gloas", "aggregate_due_bps_gloas", diff --git a/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star b/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star index 6d97aef5f..2ab4efd47 100644 --- a/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star +++ b/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star @@ -176,6 +176,7 @@ def new_env_file_for_el_cl_genesis_data( "ShadowForkFile": shadowfork_file, "AdditionalValidatorMnemonics": get_additional_mnemonics_json(network_params), "MinValidatorWithdrawabilityDelay": network_params.min_validator_withdrawability_delay, + "MinBuilderWithdrawabilityDelay": network_params.min_builder_withdrawability_delay, "ShardCommitteePeriod": network_params.shard_committee_period, "AttestationDueBpsGloas": network_params.attestation_due_bps_gloas, "AggregateDueBpsGloas": network_params.aggregate_due_bps_gloas, diff --git a/static_files/genesis-generation-config/el-cl/values.env.tmpl b/static_files/genesis-generation-config/el-cl/values.env.tmpl index 733d88bd1..bd16a4dbf 100644 --- a/static_files/genesis-generation-config/el-cl/values.env.tmpl +++ b/static_files/genesis-generation-config/el-cl/values.env.tmpl @@ -38,6 +38,7 @@ export EJECTION_BALANCE={{ .EjectionBalance }} export ETH1_FOLLOW_DISTANCE={{ .Eth1FollowDistance }} export SHADOW_FORK_FILE={{ .ShadowForkFile }} export MIN_VALIDATOR_WITHDRAWABILITY_DELAY={{ .MinValidatorWithdrawabilityDelay }} +export MIN_BUILDER_WITHDRAWABILITY_DELAY={{ .MinBuilderWithdrawabilityDelay }} export SHARD_COMMITTEE_PERIOD={{ .ShardCommitteePeriod }} export ATTESTATION_DUE_BPS_GLOAS={{ .AttestationDueBpsGloas }} export AGGREGATE_DUE_BPS_GLOAS={{ .AggregateDueBpsGloas }} From f7718c27e88a12be5b12ed524bf7b068559fd47c Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 19 Jan 2026 15:02:24 +0100 Subject: [PATCH 2/4] fix revert --- .github/tests/fulu-genesis.yaml | 51 ++++++++++++++++----------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/.github/tests/fulu-genesis.yaml b/.github/tests/fulu-genesis.yaml index 7d297a28f..d1507b970 100644 --- a/.github/tests/fulu-genesis.yaml +++ b/.github/tests/fulu-genesis.yaml @@ -6,35 +6,35 @@ participants: cl_image: ethpandaops/lighthouse:unstable supernode: true - # - el_type: nethermind - # el_image: ethpandaops/nethermind:master - # el_extra_params: ["--Blocks.ExtraData=TekuFromLocal"] - # cl_type: teku - # cl_image: ethpandaops/teku:master + - el_type: nethermind + el_image: ethpandaops/nethermind:master + el_extra_params: ["--Blocks.ExtraData=TekuFromLocal"] + cl_type: teku + cl_image: ethpandaops/teku:master - # - el_type: reth - # el_image: ethpandaops/reth:main - # el_extra_params: ["--builder.extradata=LodestarFromLocal"] - # cl_type: lodestar - # cl_image: ethpandaops/lodestar:unstable + - el_type: reth + el_image: ethpandaops/reth:main + el_extra_params: ["--builder.extradata=LodestarFromLocal"] + cl_type: lodestar + cl_image: ethpandaops/lodestar:unstable - # - el_type: geth - # el_image: ethpandaops/geth:master - # el_extra_params: ["--miner.extradata=PrysmFromLocal"] - # cl_type: prysm - # cl_image: ethpandaops/prysm-beacon-chain:develop + - el_type: geth + el_image: ethpandaops/geth:master + el_extra_params: ["--miner.extradata=PrysmFromLocal"] + cl_type: prysm + cl_image: ethpandaops/prysm-beacon-chain:develop - # - el_type: nethermind - # el_image: ethpandaops/nethermind:master - # el_extra_params: ["--Blocks.ExtraData=NimbusFromLocal"] - # cl_type: nimbus - # cl_image: ethpandaops/nimbus-eth2:unstable + - el_type: nethermind + el_image: ethpandaops/nethermind:master + el_extra_params: ["--Blocks.ExtraData=NimbusFromLocal"] + cl_type: nimbus + cl_image: ethpandaops/nimbus-eth2:unstable - # - el_type: reth - # el_image: ethpandaops/reth:main - # el_extra_params: ["--builder.extradata=GrandineFromLocal"] - # cl_type: grandine - # cl_image: ethpandaops/grandine:develop + - el_type: reth + el_image: ethpandaops/reth:main + el_extra_params: ["--builder.extradata=GrandineFromLocal"] + cl_type: grandine + cl_image: ethpandaops/grandine:develop network_params: altair_fork_epoch: 0 bellatrix_fork_epoch: 0 @@ -45,7 +45,6 @@ network_params: bpo_1_epoch: 1 gloas_fork_epoch: 2 genesis_delay: 120 - preset: minimal additional_services: - dora From 0bcae7fcfd46baaddc2b0e516fbacb5bb5bb4294 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 19 Jan 2026 15:05:43 +0100 Subject: [PATCH 3/4] fix input parser --- src/package_io/input_parser.star | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 2ab282c3c..db11d7067 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -602,6 +602,9 @@ def input_parser(plan, input_args): min_validator_withdrawability_delay=result["network_params"][ "min_validator_withdrawability_delay" ], + min_builder_withdrawability_delay=result["network_params"][ + "min_builder_withdrawability_delay" + ], shard_committee_period=result["network_params"]["shard_committee_period"], attestation_due_bps_gloas=result["network_params"][ "attestation_due_bps_gloas" From 687af42c034082c921d01fc68a3570d1ab46bc09 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 19 Jan 2026 15:08:13 +0100 Subject: [PATCH 4/4] fix gh tests --- .github/tests/{binary.norun..yaml => binary.yaml_norun} | 0 .../tests/{binary_force.norun.yaml => binary_force.yaml_norun} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/tests/{binary.norun..yaml => binary.yaml_norun} (100%) rename .github/tests/{binary_force.norun.yaml => binary_force.yaml_norun} (100%) diff --git a/.github/tests/binary.norun..yaml b/.github/tests/binary.yaml_norun similarity index 100% rename from .github/tests/binary.norun..yaml rename to .github/tests/binary.yaml_norun diff --git a/.github/tests/binary_force.norun.yaml b/.github/tests/binary_force.yaml_norun similarity index 100% rename from .github/tests/binary_force.norun.yaml rename to .github/tests/binary_force.yaml_norun