From 0ae03ab1bf50ea923ceeed2a18fccd7136abe4fe Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 24 Jun 2024 12:16:10 +0200 Subject: [PATCH 1/5] feat: add checkpoint_enabled and checkpoint_url flags --- README.md | 6 +++ main.star | 2 + network_params.yaml | 2 + src/cl/cl_launcher.star | 6 +++ src/cl/grandine/grandine_launcher.star | 34 ++++++++++------ src/cl/lighthouse/lighthouse_launcher.star | 33 ++++++++++----- src/cl/lodestar/lodestar_launcher.star | 31 +++++++++----- src/cl/nimbus/nimbus_launcher.star | 6 +++ src/cl/prysm/prysm_launcher.star | 47 ++++++++++++++-------- src/cl/teku/teku_launcher.star | 34 ++++++++++------ src/package_io/constants.star | 2 - src/package_io/input_parser.star | 4 ++ src/participant_network.star | 4 ++ src/shared_utils/shared_utils.star | 4 +- 14 files changed, 150 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 5e1ff4b66..0961c2e05 100644 --- a/README.md +++ b/README.md @@ -784,6 +784,12 @@ global_node_selectors: {} # Defaults to false keymanager_enabled: false +# Global flag to enable checkpoint sync across the network +checkpoint_sync_enabled: false + +# Global flag to set checkpoint sync url +checkpoint_sync_url: "" + # Global paarameter to set the exit ip address of services and public ports port_publisher: # if you have a service that you want to expose on a specific interfact; set that IP here diff --git a/main.star b/main.star index 75b1fe32a..42f5bc7b4 100644 --- a/main.star +++ b/main.star @@ -137,6 +137,8 @@ def run(plan, args={}): global_node_selectors, keymanager_enabled, parallel_keystore_generation, + args_with_right_defaults.checkpoint_sync_enabled, + args_with_right_defaults.checkpoint_sync_url, args_with_right_defaults.port_publisher, ) diff --git a/network_params.yaml b/network_params.yaml index c1b373550..311cab792 100644 --- a/network_params.yaml +++ b/network_params.yaml @@ -82,6 +82,8 @@ network_params: custody_requirement: 1 target_number_of_peers: 70 additional_preloaded_contracts: {} + devnet_repo: ethpandaops + checkpoint_sync_enabled: false additional_services: - tx_spammer - blob_spammer diff --git a/src/cl/cl_launcher.star b/src/cl/cl_launcher.star index a4e9b6ca8..5a56ddc23 100644 --- a/src/cl/cl_launcher.star +++ b/src/cl/cl_launcher.star @@ -31,6 +31,8 @@ def launch( validator_data, prysm_password_relative_filepath, prysm_password_artifact_uuid, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): plan.print("Launching CL network") @@ -176,6 +178,8 @@ def launch( node_selectors, participant.use_separate_vc, participant.keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) else: @@ -210,6 +214,8 @@ def launch( node_selectors, participant.use_separate_vc, participant.keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) diff --git a/src/cl/grandine/grandine_launcher.star b/src/cl/grandine/grandine_launcher.star index 8bfdc135e..7209e44c5 100644 --- a/src/cl/grandine/grandine_launcher.star +++ b/src/cl/grandine/grandine_launcher.star @@ -89,6 +89,8 @@ def launch( node_selectors, use_separate_vc, keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): beacon_service_name = "{0}".format(service_name) @@ -150,6 +152,8 @@ def launch( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) @@ -230,6 +234,8 @@ def get_beacon_config( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): validator_keys_dirpath = "" @@ -311,6 +317,22 @@ def get_beacon_config( # "--validator-api-bearer-file=" + constants.KEYMANAGER_MOUNT_PATH_ON_CONTAINER, Not yet supported ] + # If checkpoint sync is enabled, add the checkpoint sync url + if checkpoint_sync_enabled: + if checkpoint_sync_url: + cmd.append("--checkpoint-sync-url=" + checkpoint_sync_url) + else: + if network in ["mainnet", "ephemery"]: + cmd.append( + "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] + ) + else: + cmd.append( + "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( + network + ) + ) + if network not in constants.PUBLIC_NETWORKS: cmd.append( "--configuration-directory=" @@ -331,9 +353,6 @@ def get_beacon_config( ) ) elif network == constants.NETWORK_NAME.ephemery: - cmd.append( - "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] - ) cmd.append( "--boot-nodes=" + shared_utils.get_devnet_enrs_list( @@ -348,21 +367,12 @@ def get_beacon_config( ) ) else: # Devnets - # TODO Remove once checkpoint sync is working for verkle - if constants.NETWORK_NAME.verkle not in network: - cmd.append( - "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( - network - ) - ) cmd.append( "--boot-nodes=" + shared_utils.get_devnet_enrs_list( plan, el_cl_genesis_data.files_artifact_uuid ) ) - else: # Public networks - cmd.append("--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network]) if len(extra_params) > 0: # we do the list comprehension as the default extra_params is a proto repeated string diff --git a/src/cl/lighthouse/lighthouse_launcher.star b/src/cl/lighthouse/lighthouse_launcher.star index ca5b4cfac..334857b93 100644 --- a/src/cl/lighthouse/lighthouse_launcher.star +++ b/src/cl/lighthouse/lighthouse_launcher.star @@ -94,6 +94,8 @@ def launch( node_selectors, use_separate_vc, keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): beacon_service_name = "{0}".format(service_name) @@ -151,6 +153,8 @@ def launch( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) @@ -246,6 +250,8 @@ def get_beacon_config( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): # If snooper is enabled use the snooper engine context, otherwise use the execution client context @@ -324,6 +330,22 @@ def get_beacon_config( "--enable-private-discovery", ] + # If checkpoint sync is enabled, add the checkpoint sync url + if checkpoint_sync_enabled: + if checkpoint_sync_url: + cmd.append("--checkpoint-sync-url=" + checkpoint_sync_url) + else: + if network in ["mainnet", "ephemery"]: + cmd.append( + "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] + ) + else: + cmd.append( + "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( + network + ) + ) + if network not in constants.PUBLIC_NETWORKS: cmd.append("--testnet-dir=" + constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER) if ( @@ -341,9 +363,6 @@ def get_beacon_config( ) ) elif network == constants.NETWORK_NAME.ephemery: - cmd.append( - "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] - ) cmd.append( "--boot-nodes=" + shared_utils.get_devnet_enrs_list( @@ -351,13 +370,6 @@ def get_beacon_config( ) ) else: # Devnets - # TODO Remove once checkpoint sync is working for verkle - if constants.NETWORK_NAME.verkle not in network: - cmd.append( - "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( - network - ) - ) cmd.append( "--boot-nodes=" + shared_utils.get_devnet_enrs_list( @@ -366,7 +378,6 @@ def get_beacon_config( ) else: # Public networks cmd.append("--network=" + network) - cmd.append("--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network]) if len(extra_params) > 0: # this is a repeated, we convert it into Starlark diff --git a/src/cl/lodestar/lodestar_launcher.star b/src/cl/lodestar/lodestar_launcher.star index e410b2229..bf873fa76 100644 --- a/src/cl/lodestar/lodestar_launcher.star +++ b/src/cl/lodestar/lodestar_launcher.star @@ -83,6 +83,8 @@ def launch( node_selectors, use_separate_vc, keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): beacon_service_name = "{0}".format(service_name) @@ -139,6 +141,8 @@ def launch( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, launcher.preset, ) @@ -239,6 +243,8 @@ def get_beacon_config( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, preset, ): @@ -305,6 +311,22 @@ def get_beacon_config( # ^^^^^^^^^^^^^^^^^^^ METRICS CONFIG ^^^^^^^^^^^^^^^^^^^^^ ] + # If checkpoint sync is enabled, add the checkpoint sync url + if checkpoint_sync_enabled: + if checkpoint_sync_url: + cmd.append("--checkpointSyncUrl=" + checkpoint_sync_url) + else: + if network in ["mainnet", "ephemery"]: + cmd.append( + "--checkpointSyncUrl=" + constants.CHECKPOINT_SYNC_URL[network] + ) + else: + cmd.append( + "--checkpointSyncUrl=https://checkpoint-sync.{0}.ethpandaops.io".format( + network + ) + ) + if network not in constants.PUBLIC_NETWORKS: cmd.append( "--paramsFile=" @@ -331,7 +353,6 @@ def get_beacon_config( ) ) elif network == constants.NETWORK_NAME.ephemery: - cmd.append("--checkpointSyncUrl=" + constants.CHECKPOINT_SYNC_URL[network]) cmd.append( "--bootnodes=" + shared_utils.get_devnet_enrs_list( @@ -339,13 +360,6 @@ def get_beacon_config( ) ) else: # Devnets - # TODO Remove once checkpoint sync is working for verkle - if constants.NETWORK_NAME.verkle not in network: - cmd.append( - "--checkpointSyncUrl=https://checkpoint-sync.{0}.ethpandaops.io".format( - network - ) - ) cmd.append( "--bootnodes=" + shared_utils.get_devnet_enrs_list( @@ -354,7 +368,6 @@ def get_beacon_config( ) else: # Public testnet cmd.append("--network=" + network) - cmd.append("--checkpointSyncUrl=" + constants.CHECKPOINT_SYNC_URL[network]) if len(extra_params) > 0: # this is a repeated, we convert it into Starlark diff --git a/src/cl/nimbus/nimbus_launcher.star b/src/cl/nimbus/nimbus_launcher.star index 2b04d4510..7050f8103 100644 --- a/src/cl/nimbus/nimbus_launcher.star +++ b/src/cl/nimbus/nimbus_launcher.star @@ -105,6 +105,8 @@ def launch( node_selectors, use_separate_vc, keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): beacon_service_name = "{0}".format(service_name) @@ -166,6 +168,8 @@ def launch( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) @@ -246,6 +250,8 @@ def get_beacon_config( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): validator_keys_dirpath = "" diff --git a/src/cl/prysm/prysm_launcher.star b/src/cl/prysm/prysm_launcher.star index 8c36b28f6..68fc9b543 100644 --- a/src/cl/prysm/prysm_launcher.star +++ b/src/cl/prysm/prysm_launcher.star @@ -92,6 +92,8 @@ def launch( node_selectors, use_separate_vc, keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): beacon_service_name = "{0}".format(service_name) @@ -147,6 +149,8 @@ def launch( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, launcher.preset, ) @@ -226,6 +230,8 @@ def get_beacon_config( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, preset, ): @@ -284,6 +290,30 @@ def get_beacon_config( # ^^^^^^^^^^^^^^^^^^^ METRICS CONFIG ^^^^^^^^^^^^^^^^^^^^^ ] + # If checkpoint sync is enabled, add the checkpoint sync url + if checkpoint_sync_enabled: + if checkpoint_sync_url: + cmd.append("--checkpoint-sync-url=" + checkpoint_sync_url) + else: + if network in ["mainnet", "ephemery"]: + cmd.append( + "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] + ) + cmd.append( + "--genesis-beacon-api-url=" + constants.CHECKPOINT_SYNC_URL[network] + ) + else: + cmd.append( + "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( + network + ) + ) + cmd.append( + "--genesis-beacon-api-url=https://checkpoint-sync.{0}.ethpandaops.io".format( + network + ) + ) + if preset == "minimal": cmd.append("--minimal-config=true") @@ -311,27 +341,12 @@ def get_beacon_config( cmd.append( "--genesis-beacon-api-url=" + constants.CHECKPOINT_SYNC_URL[network] ) - cmd.append( - "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] - ) cmd.append( "--bootstrap-node=" + constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER + "/boot_enr.yaml" ) else: # Devnets - # TODO Remove once checkpoint sync is working for verkle - if constants.NETWORK_NAME.verkle not in network: - cmd.append( - "--genesis-beacon-api-url=https://checkpoint-sync.{0}.ethpandaops.io".format( - network - ) - ) - cmd.append( - "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( - network - ) - ) cmd.append( "--bootstrap-node=" + constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER @@ -339,8 +354,6 @@ def get_beacon_config( ) else: # Public network cmd.append("--{}".format(network)) - cmd.append("--genesis-beacon-api-url=" + constants.CHECKPOINT_SYNC_URL[network]) - cmd.append("--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network]) if len(extra_params) > 0: # we do the for loop as otherwise its a proto repeated array diff --git a/src/cl/teku/teku_launcher.star b/src/cl/teku/teku_launcher.star index bc5a7e119..a540b69e1 100644 --- a/src/cl/teku/teku_launcher.star +++ b/src/cl/teku/teku_launcher.star @@ -93,6 +93,8 @@ def launch( node_selectors, use_separate_vc, keymanager_enabled, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): beacon_service_name = "{0}".format(service_name) @@ -155,6 +157,8 @@ def launch( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) @@ -237,6 +241,8 @@ def get_beacon_config( cl_volume_size, tolerations, node_selectors, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): validator_keys_dirpath = "" @@ -335,6 +341,22 @@ def get_beacon_config( "--Xvalidator-api-unsafe-hosts-enabled=true", ] + # If checkpoint sync is enabled, add the checkpoint sync url + if checkpoint_sync_enabled: + if checkpoint_sync_url: + cmd.append("--checkpoint-sync-url=" + checkpoint_sync_url) + else: + if network in ["mainnet", "ephemery"]: + cmd.append( + "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] + ) + else: + cmd.append( + "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( + network + ) + ) + if network not in constants.PUBLIC_NETWORKS: cmd.append( "--initial-state=" @@ -356,9 +378,6 @@ def get_beacon_config( ) ) elif network == constants.NETWORK_NAME.ephemery: - cmd.append( - "--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network] - ) cmd.append( "--p2p-discovery-bootnodes=" + shared_utils.get_devnet_enrs_list( @@ -373,21 +392,12 @@ def get_beacon_config( ) ) else: # Devnets - # TODO Remove once checkpoint sync is working for verkle - if constants.NETWORK_NAME.verkle not in network: - cmd.append( - "--checkpoint-sync-url=https://checkpoint-sync.{0}.ethpandaops.io".format( - network - ) - ) cmd.append( "--p2p-discovery-bootnodes=" + shared_utils.get_devnet_enrs_list( plan, el_cl_genesis_data.files_artifact_uuid ) ) - else: # Public networks - cmd.append("--checkpoint-sync-url=" + constants.CHECKPOINT_SYNC_URL[network]) if len(extra_params) > 0: # we do the list comprehension as the default extra_params is a proto repeated string diff --git a/src/package_io/constants.star b/src/package_io/constants.star index 435357c1e..471978846 100644 --- a/src/package_io/constants.star +++ b/src/package_io/constants.star @@ -117,8 +117,6 @@ NETWORK_ID = { CHECKPOINT_SYNC_URL = { "mainnet": "https://beaconstate.info", - "sepolia": "https://checkpoint-sync.sepolia.ethpandaops.io", - "holesky": "https://checkpoint-sync.holesky.ethpandaops.io", "ephemery": "https://checkpointz.bordel.wtf/", } diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index f46cd95f5..ee7cca525 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -374,6 +374,8 @@ def input_parser(plan, input_args): global_tolerations=result["global_tolerations"], global_node_selectors=result["global_node_selectors"], keymanager_enabled=result["keymanager_enabled"], + checkpoint_sync_enabled=result["checkpoint_sync_enabled"], + checkpoint_sync_url=result["checkpoint_sync_url"], port_publisher=struct( public_port_start=result["port_publisher"]["public_port_start"], nat_exit_ip=result["port_publisher"]["nat_exit_ip"], @@ -761,6 +763,8 @@ def default_input_args(input_args): "global_tolerations": [], "global_node_selectors": {}, "keymanager_enabled": False, + "checkpoint_sync_enabled": False, + "checkpoint_sync_url": "", "port_publisher": { "nat_exit_ip": constants.PRIVATE_IP_ADDRESS_PLACEHOLDER, "public_port_start": None, diff --git a/src/participant_network.star b/src/participant_network.star index 5badede3a..0e0d66169 100644 --- a/src/participant_network.star +++ b/src/participant_network.star @@ -40,6 +40,8 @@ def launch_participant_network( global_node_selectors, keymanager_enabled, parallel_keystore_generation, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ): network_id = network_params.network_id @@ -176,6 +178,8 @@ def launch_participant_network( validator_data, prysm_password_relative_filepath, prysm_password_artifact_uuid, + checkpoint_sync_enabled, + checkpoint_sync_url, port_publisher, ) diff --git a/src/shared_utils/shared_utils.star b/src/shared_utils/shared_utils.star index 773dde07a..4f110955c 100644 --- a/src/shared_utils/shared_utils.star +++ b/src/shared_utils/shared_utils.star @@ -94,7 +94,7 @@ def get_devnet_enodes(plan, filename): files={constants.GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: filename}, wait=None, run=""" -with open("/network-configs/bootnode.txt") as bootnode_file: +with open("/network-configs/enodes.txt") as bootnode_file: bootnodes = [] for line in bootnode_file: line = line.strip() @@ -211,7 +211,7 @@ def calculate_devnet_url(network, repo): devnet_name.split("-")[1] + "-" if len(devnet_name.split("-")) > 1 else "" ) - return "github.com/{0}/{1}-devnets/network-configs/{2}{3}-{4}".format( + return "github.com/{0}/{1}-devnets/network-configs/{2}{3}-{4}/metadata".format( repo, devnet_category, devnet_subname, network_type, devnet_number ) From 3937a78f9ca33f3fb37bd8a7814888311946b3eb Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 24 Jun 2024 13:55:51 +0200 Subject: [PATCH 2/5] add back enr.yaml --- src/cl/prysm/prysm_launcher.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cl/prysm/prysm_launcher.star b/src/cl/prysm/prysm_launcher.star index 68fc9b543..d638887a5 100644 --- a/src/cl/prysm/prysm_launcher.star +++ b/src/cl/prysm/prysm_launcher.star @@ -344,13 +344,13 @@ def get_beacon_config( cmd.append( "--bootstrap-node=" + constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER - + "/boot_enr.yaml" + + "/bootstrap_nodes.yaml" ) else: # Devnets cmd.append( "--bootstrap-node=" + constants.GENESIS_CONFIG_MOUNT_PATH_ON_CONTAINER - + "/boot_enr.yaml" + + "/bootstrap_nodes.yaml" ) else: # Public network cmd.append("--{}".format(network)) From c4f4aad1271a6a06fc245b5e8ff1741bbc339f0f Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 24 Jun 2024 13:58:53 +0200 Subject: [PATCH 3/5] assertoor timeout 30min --- .github/workflows/per-pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/per-pr.yml b/.github/workflows/per-pr.yml index 9541ea502..eaa126bc6 100644 --- a/.github/workflows/per-pr.yml +++ b/.github/workflows/per-pr.yml @@ -70,6 +70,7 @@ jobs: assertoor: runs-on: self-hosted-ghr-size-l-x64 + timeout-minutes: 30 steps: - name: Checkout Repository uses: actions/checkout@v4 From 532866ac8d6028ac30dd1d7af036d460a0bafdc9 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 24 Jun 2024 14:06:01 +0200 Subject: [PATCH 4/5] update port start --- .github/tests/mix-public.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/tests/mix-public.yaml b/.github/tests/mix-public.yaml index ea899f3b2..db36fabd8 100644 --- a/.github/tests/mix-public.yaml +++ b/.github/tests/mix-public.yaml @@ -15,4 +15,4 @@ participants: cl_type: grandine additional_services: [] port_publisher: - public_port_start: 40000 + public_port_start: 30000 From 6242e1198669dec4d52032300f091fb573efaefb Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 24 Jun 2024 15:12:18 +0200 Subject: [PATCH 5/5] revert to using working erigon image --- src/package_io/input_parser.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index ee7cca525..2830178b2 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -6,7 +6,7 @@ genesis_constants = import_module( DEFAULT_EL_IMAGES = { "geth": "ethereum/client-go:latest", - "erigon": "ethpandaops/erigon:main", + "erigon": "ethpandaops/erigon:main-6d80c0f", "nethermind": "nethermindeth/nethermind:master", "besu": "hyperledger/besu:latest", "reth": "ghcr.io/paradigmxyz/reth",