diff --git a/src/el/erigon/erigon_launcher.star b/src/el/erigon/erigon_launcher.star index 3e96e69d9..711476412 100644 --- a/src/el/erigon/erigon_launcher.star +++ b/src/el/erigon/erigon_launcher.star @@ -107,6 +107,7 @@ def launch( launcher.el_cl_genesis_data, launcher.jwt_file, launcher.network, + launcher.networkid, image, service_name, existing_el_clients, @@ -152,6 +153,7 @@ def get_config( el_cl_genesis_data, jwt_file, network, + networkid, image, service_name, existing_el_clients, @@ -177,6 +179,7 @@ def get_config( "--chain={0}".format( network if network in constants.PUBLIC_NETWORKS else "dev" ), + "--networkid={0}".format(networkid), "--log.console.verbosity=" + verbosity_level, "--datadir=" + EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER, "--port={0}".format(DISCOVERY_PORT_NUM), @@ -276,9 +279,10 @@ def get_config( ) -def new_erigon_launcher(el_cl_genesis_data, jwt_file, network): +def new_erigon_launcher(el_cl_genesis_data, jwt_file, network, networkid): return struct( el_cl_genesis_data=el_cl_genesis_data, jwt_file=jwt_file, network=network, + networkid=networkid, ) diff --git a/src/el/geth/geth_launcher.star b/src/el/geth/geth_launcher.star index 5e09a86aa..df528ba9c 100644 --- a/src/el/geth/geth_launcher.star +++ b/src/el/geth/geth_launcher.star @@ -115,6 +115,7 @@ def launch( launcher.el_cl_genesis_data, launcher.jwt_file, launcher.network, + launcher.networkid, image, service_name, existing_el_clients, @@ -163,6 +164,7 @@ def get_config( el_cl_genesis_data, jwt_file, network, + networkid, image, service_name, existing_el_clients, @@ -235,6 +237,7 @@ def get_config( "{0}".format( "--{}".format(network) if network in constants.PUBLIC_NETWORKS else "" ), + "--networkid={0}".format(networkid), "--verbosity=" + verbosity_level, "--datadir=" + EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER, "--http", @@ -338,6 +341,7 @@ def new_geth_launcher( el_cl_genesis_data, jwt_file, network, + networkid, final_genesis_timestamp, capella_fork_epoch, electra_fork_epoch=None, @@ -346,6 +350,7 @@ def new_geth_launcher( el_cl_genesis_data=el_cl_genesis_data, jwt_file=jwt_file, network=network, + networkid=networkid, final_genesis_timestamp=final_genesis_timestamp, capella_fork_epoch=capella_fork_epoch, electra_fork_epoch=electra_fork_epoch, diff --git a/src/package_io/constants.star b/src/package_io/constants.star index 422d46a70..2dd9209b9 100644 --- a/src/package_io/constants.star +++ b/src/package_io/constants.star @@ -59,6 +59,14 @@ PUBLIC_NETWORKS = ( "sepolia", "holesky", ) + +NETWORK_ID = { + "mainnet": 1, + "goerli": 5, + "sepolia": 11155111, + "holesky": 17000, +} + CHECKPOINT_SYNC_URL = { "mainnet": "https://beaconstate.info", "goerli": "https://checkpoint-sync.goerli.ethpandaops.io", diff --git a/src/participant_network.star b/src/participant_network.star index a95fc74b8..b0ab404e4 100644 --- a/src/participant_network.star +++ b/src/participant_network.star @@ -83,6 +83,8 @@ def launch_participant_network( plan.print(json.indent(json.encode(validator_data))) + network_id = network_params.network_id + # We need to send the same genesis time to both the EL and the CL to ensure that timestamp based forking works as expected final_genesis_timestamp = get_final_genesis_timestamp( plan, @@ -161,6 +163,7 @@ def launch_participant_network( constants.GENESIS_VALIDATORS_ROOT[network_params.network], ) final_genesis_timestamp = constants.GENESIS_TIME[network_params.network] + network_id = constants.NETWORK_ID[network_params.network] validator_data = None else: # We are running a devnet @@ -175,6 +178,7 @@ def launch_participant_network( files={"/opt": el_cl_genesis_uuid}, ) genesis_validators_root = read_file(url + "/genesis_validators_root.txt") + el_cl_data = el_cl_genesis_data.new_el_cl_genesis_data( el_cl_genesis_data_uuid.files_artifacts[0], genesis_validators_root, @@ -182,6 +186,9 @@ def launch_participant_network( final_genesis_timestamp = shared_utils.read_genesis_timestamp_from_config( plan, el_cl_genesis_uuid ) + network_id = shared_utils.read_genesis_network_id_from_config( + plan, el_cl_genesis_uuid + ) validator_data = None el_launchers = { @@ -190,6 +197,7 @@ def launch_participant_network( el_cl_data, jwt_file, network_params.network, + network_id, final_genesis_timestamp, network_params.capella_fork_epoch, network_params.electra_fork_epoch, @@ -201,6 +209,7 @@ def launch_participant_network( el_cl_data, jwt_file, network_params.network, + network_id, final_genesis_timestamp, network_params.capella_fork_epoch, network_params.electra_fork_epoch, @@ -220,6 +229,7 @@ def launch_participant_network( el_cl_data, jwt_file, network_params.network, + network_id, ), "launch_method": erigon.launch, }, diff --git a/src/shared_utils/shared_utils.star b/src/shared_utils/shared_utils.star index f2017f17c..541913cae 100644 --- a/src/shared_utils/shared_utils.star +++ b/src/shared_utils/shared_utils.star @@ -117,11 +117,25 @@ import yaml with open("/network-configs/config.yaml", "r") as f: yaml_data = yaml.safe_load(f) -# Get values from the YAML content min_genesis_time = int(yaml_data.get("MIN_GENESIS_TIME", 0)) genesis_delay = int(yaml_data.get("GENESIS_DELAY", 0)) +print(min_genesis_time + genesis_delay, end="") + """, + ) + return value.output -print(int(min_genesis_time + genesis_delay), end="") + +def read_genesis_network_id_from_config(plan, filename): + value = plan.run_python( + files={constants.GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: filename}, + wait=None, + packages=["PyYAML"], + run=""" +import yaml +with open("/network-configs/config.yaml", "r") as f: + yaml_data = yaml.safe_load(f) +network_id = int(yaml_data.get("DEPOSIT_NETWORK_ID", 0)) +print(network_id, end="") """, ) return value.output