Commit 1982c43a authored by Gyanendra Mishra's avatar Gyanendra Mishra Committed by GitHub

Merge pull request #20 from kurtosis-tech/gyani/load-import

load -> import_module
parents 80cb4668 b71852af
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
### Fixes ### Fixes
- Renamed `num_validators_per_keynode` to `num_validator_keys_per_node` - Renamed `num_validators_per_keynode` to `num_validator_keys_per_node`
- Moved away from `load` infavor of `import_module`
# 0.0.1 # 0.0.1
......
load("github.com/kurtosis-tech/eth2-module/src/participant_network/participant_network.star", "launch_participant_network") participant_network = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/participant_network.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "parse_input") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/static_files/static_files.star", "GRAFANA_DASHBOARDS_CONFIG_DIRPATH", "GRAFANA_DASHBOARD_PROVIDERS_CONFIG_TEMPLATE_FILEPATH", "GRAFANA_DATASOURCE_CONFIG_TEMPLATE_FILEPATH", "PROMETHEUS_CONFIG_TEMPLATE_FILEPATH", "FORKMON_CONFIG_TEMPLATE_FILEPATH") static_files = import_module("github.com/kurtosis-tech/eth2-module/src/static_files/static_files.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/genesis_constants/genesis_constants.star", "PRE_FUNDED_ACCOUNTS") genesis_constants = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/genesis_constants/genesis_constants.star")
load("github.com/kurtosis-tech/eth2-module/src/transaction_spammer/transaction_spammer.star", "launch_transaction_spammer") transaction_spammer = import_module("github.com/kurtosis-tech/eth2-module/src/transaction_spammer/transaction_spammer.star")
load("github.com/kurtosis-tech/eth2-module/src/forkmon/forkmon_launcher.star", "launch_forkmon") forkmon = import_module("github.com/kurtosis-tech/eth2-module/src/forkmon/forkmon_launcher.star")
load("github.com/kurtosis-tech/eth2-module/src/prometheus/prometheus_launcher.star", "launch_prometheus") prometheus = import_module("github.com/kurtosis-tech/eth2-module/src/prometheus/prometheus_launcher.star")
load("github.com/kurtosis-tech/eth2-module/src/grafana/grafana_launcher.star", "launch_grafana") grafana =import_module("github.com/kurtosis-tech/eth2-module/src/grafana/grafana_launcher.star")
load("github.com/kurtosis-tech/eth2-module/src/testnet_verifier/testnet_verifier.star", "run_synchronous_testnet_verification", "launch_testnet_verifier") testnet_verifier = import_module("github.com/kurtosis-tech/eth2-module/src/testnet_verifier/testnet_verifier.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -20,18 +20,18 @@ FIRST_NODE_FINALIZATION_FACT = "cl-boot-finalization-fact" ...@@ -20,18 +20,18 @@ FIRST_NODE_FINALIZATION_FACT = "cl-boot-finalization-fact"
HTTP_PORT_ID_FOR_FACT = "http" HTTP_PORT_ID_FOR_FACT = "http"
def main(input_args): def main(input_args):
input_args_with_right_defaults = module_io.ModuleInput(parse_input(input_args)) input_args_with_right_defaults = module_io.ModuleInput(parse_input.parse_input(input_args))
num_participants = len(input_args_with_right_defaults.participants) num_participants = len(input_args_with_right_defaults.participants)
network_params = input_args_with_right_defaults.network_params network_params = input_args_with_right_defaults.network_params
grafana_datasource_config_template = read_file(GRAFANA_DATASOURCE_CONFIG_TEMPLATE_FILEPATH) grafana_datasource_config_template = read_file(static_files.GRAFANA_DATASOURCE_CONFIG_TEMPLATE_FILEPATH)
grafana_dashboards_config_template = read_file(GRAFANA_DASHBOARD_PROVIDERS_CONFIG_TEMPLATE_FILEPATH) grafana_dashboards_config_template = read_file(static_files.GRAFANA_DASHBOARD_PROVIDERS_CONFIG_TEMPLATE_FILEPATH)
prometheus_config_template = read_file(PROMETHEUS_CONFIG_TEMPLATE_FILEPATH) prometheus_config_template = read_file(static_files.PROMETHEUS_CONFIG_TEMPLATE_FILEPATH)
print("Read the prometheus, grafana templates") print("Read the prometheus, grafana templates")
print("Launching participant network with {0} participants and the following network params {1}".format(num_participants, network_params)) print("Launching participant network with {0} participants and the following network params {1}".format(num_participants, network_params))
all_participants, cl_gensis_timestamp = launch_participant_network(input_args_with_right_defaults.participants, network_params, input_args_with_right_defaults.global_client_log_level) all_participants, cl_gensis_timestamp = participant_network.launch_participant_network(input_args_with_right_defaults.participants, network_params, input_args_with_right_defaults.global_client_log_level)
all_el_client_contexts = [] all_el_client_contexts = []
all_cl_client_contexts = [] all_cl_client_contexts = []
...@@ -44,35 +44,35 @@ def main(input_args): ...@@ -44,35 +44,35 @@ def main(input_args):
return return
print("Launching transaction spammer") print("Launching transaction spammer")
launch_transaction_spammer(PRE_FUNDED_ACCOUNTS, all_el_client_contexts[0]) transaction_spammer.launch_transaction_spammer(genesis_constants.PRE_FUNDED_ACCOUNTS, all_el_client_contexts[0])
print("Succesfully launched transaction spammer") print("Succesfully launched transaction spammer")
# We need a way to do time.sleep # We need a way to do time.sleep
# TODO add code that waits for CL genesis # TODO add code that waits for CL genesis
print("Launching forkmon") print("Launching forkmon")
forkmon_config_template = read_file(FORKMON_CONFIG_TEMPLATE_FILEPATH) forkmon_config_template = read_file(static_files.FORKMON_CONFIG_TEMPLATE_FILEPATH)
launch_forkmon(forkmon_config_template, all_cl_client_contexts, cl_gensis_timestamp, network_params.seconds_per_slot, network_params.slots_per_epoch) forkmon.launch_forkmon(forkmon_config_template, all_cl_client_contexts, cl_gensis_timestamp, network_params.seconds_per_slot, network_params.slots_per_epoch)
print("Succesfully launched forkmon") print("Succesfully launched forkmon")
print("Launching prometheus...") print("Launching prometheus...")
prometheus_private_url = launch_prometheus( prometheus_private_url = prometheus.launch_prometheus(
prometheus_config_template, prometheus_config_template,
all_cl_client_contexts, all_cl_client_contexts,
) )
print("Successfully launched Prometheus") print("Successfully launched Prometheus")
print("Launching grafana...") print("Launching grafana...")
launch_grafana(grafana_datasource_config_template, grafana_dashboards_config_template, prometheus_private_url) grafana.launch_grafana(grafana_datasource_config_template, grafana_dashboards_config_template, prometheus_private_url)
print("Succesfully launched grafana") print("Succesfully launched grafana")
if input_args_with_right_defaults.wait_for_verifications: if input_args_with_right_defaults.wait_for_verifications:
print("Running synchrnous testnet verifier") print("Running synchrnous testnet verifier")
run_synchronous_testnet_verification(input_args_with_right_defaults, all_el_client_contexts, all_cl_client_contexts) testnet_verifier.run_synchronous_testnet_verification(input_args_with_right_defaults, all_el_client_contexts, all_cl_client_contexts)
print("Verification succeeded") print("Verification succeeded")
else: else:
print("Running asynchronous verification") print("Running asynchronous verification")
launch_testnet_verifier(input_args_with_right_defaults, all_el_client_contexts, all_cl_client_contexts) testnet_verifier.launch_testnet_verifier(input_args_with_right_defaults, all_el_client_contexts, all_cl_client_contexts)
print("Succesfully launched asynchronous verifier") print("Succesfully launched asynchronous verifier")
if input_args_with_right_defaults.wait_for_finalization: if input_args_with_right_defaults.wait_for_finalization:
print("Waiting for the first finalized epoch") print("Waiting for the first finalized epoch")
......
...@@ -11,6 +11,6 @@ root_dirpath="$(dirname "${script_dirpath}")" ...@@ -11,6 +11,6 @@ root_dirpath="$(dirname "${script_dirpath}")"
# Main Logic # Main Logic
# ================================================================================================== # ==================================================================================================
if ! "kurtosis" "startosis" "exec" "${root_dirpath}"; then if ! "kurtosis" "exec" "${root_dirpath}"; then
echo "Error: running the startosis script" echo "Error: running the startosis script"
fi fi
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "new_template_and_data", "path_join") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
SERVICE_ID = "forkmon" SERVICE_ID = "forkmon"
...@@ -13,7 +13,7 @@ FORKMON_CONFIG_FILENAME = "forkmon-config.toml" ...@@ -13,7 +13,7 @@ FORKMON_CONFIG_FILENAME = "forkmon-config.toml"
FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE = "/config" FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE = "/config"
USED_PORTS = { USED_PORTS = {
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUMBER, HTTP_PROTOCOL) HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUMBER, HTTP_PROTOCOL)
} }
...@@ -33,7 +33,7 @@ def launch_forkmon( ...@@ -33,7 +33,7 @@ def launch_forkmon(
template_data = new_config_template_data(HTTP_PORT_NUMBER, all_cl_client_info, seconds_per_slot, slots_per_epoch, genesis_unix_timestamp) template_data = new_config_template_data(HTTP_PORT_NUMBER, all_cl_client_info, seconds_per_slot, slots_per_epoch, genesis_unix_timestamp)
template_data_json = json.encode(template_data) template_data_json = json.encode(template_data)
template_and_data = new_template_and_data(config_template, template_data_json) template_and_data = shared_utils.new_template_and_data(config_template, template_data_json)
template_and_data_by_rel_dest_filepath = {} template_and_data_by_rel_dest_filepath = {}
template_and_data_by_rel_dest_filepath[FORKMON_CONFIG_FILENAME] = template_and_data template_and_data_by_rel_dest_filepath[FORKMON_CONFIG_FILENAME] = template_and_data
...@@ -45,7 +45,7 @@ def launch_forkmon( ...@@ -45,7 +45,7 @@ def launch_forkmon(
def get_config(config_files_artifact_uuid): def get_config(config_files_artifact_uuid):
config_file_path = path_join(FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE, FORKMON_CONFIG_FILENAME) config_file_path = shared_utils.path_join(FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE, FORKMON_CONFIG_FILENAME)
return struct( return struct(
image = IMAGE_NAME, image = IMAGE_NAME,
ports = USED_PORTS, ports = USED_PORTS,
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "new_template_and_data", "path_join") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/static_files/static_files.star", "GRAFANA_DASHBOARDS_CONFIG_DIRPATH") static_files = import_module("github.com/kurtosis-tech/eth2-module/src/static_files/static_files.star")
SERVICE_ID = "grafana" SERVICE_ID = "grafana"
...@@ -23,7 +23,7 @@ GRAFANA_DASHBOARDS_FILEPATH_ON_SERVICE = GRAFANA_DASHBOARDS_DIRPATH_ON_SERVICE + ...@@ -23,7 +23,7 @@ GRAFANA_DASHBOARDS_FILEPATH_ON_SERVICE = GRAFANA_DASHBOARDS_DIRPATH_ON_SERVICE +
USED_PORTS = { USED_PORTS = {
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUMBER_UINT16, HTTP_PORT_PROTOCOL) HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUMBER_UINT16, HTTP_PORT_PROTOCOL)
} }
...@@ -38,11 +38,11 @@ def launch_grafana(datasource_config_template, dashboard_providers_config_templa ...@@ -38,11 +38,11 @@ def launch_grafana(datasource_config_template, dashboard_providers_config_templa
def get_grafana_config_dir_artifact_uuid(datasource_config_template, dashboard_providers_config_template, prometheus_private_url): def get_grafana_config_dir_artifact_uuid(datasource_config_template, dashboard_providers_config_template, prometheus_private_url):
datasource_data = new_datasource_config_template_data(prometheus_private_url) datasource_data = new_datasource_config_template_data(prometheus_private_url)
datasource_data_as_json = json.encode(datasource_data) datasource_data_as_json = json.encode(datasource_data)
datasource_template_and_data = new_template_and_data(datasource_config_template, datasource_data_as_json) datasource_template_and_data = shared_utils.new_template_and_data(datasource_config_template, datasource_data_as_json)
dashboard_providers_data = new_dashboard_providers_config_template_data(GRAFANA_DASHBOARDS_FILEPATH_ON_SERVICE) dashboard_providers_data = new_dashboard_providers_config_template_data(GRAFANA_DASHBOARDS_FILEPATH_ON_SERVICE)
dashboard_providers_data_json = json.encode(dashboard_providers_data) dashboard_providers_data_json = json.encode(dashboard_providers_data)
dashboard_providers_template_and_data = new_template_and_data(dashboard_providers_config_template, dashboard_providers_data_json) dashboard_providers_template_and_data = shared_utils.new_template_and_data(dashboard_providers_config_template, dashboard_providers_data_json)
template_and_data_by_rel_dest_filepath = {} template_and_data_by_rel_dest_filepath = {}
template_and_data_by_rel_dest_filepath[DATASOURCE_CONFIG_REL_FILEPATH] = datasource_template_and_data template_and_data_by_rel_dest_filepath[DATASOURCE_CONFIG_REL_FILEPATH] = datasource_template_and_data
...@@ -50,7 +50,7 @@ def get_grafana_config_dir_artifact_uuid(datasource_config_template, dashboard_p ...@@ -50,7 +50,7 @@ def get_grafana_config_dir_artifact_uuid(datasource_config_template, dashboard_p
grafana_config_artifacts_uuid = render_templates(template_and_data_by_rel_dest_filepath) grafana_config_artifacts_uuid = render_templates(template_and_data_by_rel_dest_filepath)
grafana_dashboards_artifacts_uuid = upload_files(GRAFANA_DASHBOARDS_CONFIG_DIRPATH) grafana_dashboards_artifacts_uuid = upload_files(static_files.GRAFANA_DASHBOARDS_CONFIG_DIRPATH)
return grafana_config_artifacts_uuid, grafana_dashboards_artifacts_uuid return grafana_config_artifacts_uuid, grafana_dashboards_artifacts_uuid
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "path_dir", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star", "new_cl_client_context") cl_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star", "new_cl_node_metrics_info") cl_node_metrics = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star", "mev_boost_endpoint") mev_boost_context_module = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -45,15 +45,15 @@ VALIDATOR_SUFFIX_SERVICE_ID = "validator" ...@@ -45,15 +45,15 @@ VALIDATOR_SUFFIX_SERVICE_ID = "validator"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
BEACON_USED_PORTS = { BEACON_USED_PORTS = {
BEACON_TCP_DISCOVERY_PORT_ID: new_port_spec(BEACON_DISCOVERY_PORT_NUM, TCP_PROTOCOL), BEACON_TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(BEACON_DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
BEACON_UDP_DISCOVERY_PORT_ID: new_port_spec(BEACON_DISCOVERY_PORT_NUM, UDP_PROTOCOL), BEACON_UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(BEACON_DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
BEACON_HTTP_PORT_ID: new_port_spec(BEACON_HTTP_PORT_NUM, TCP_PROTOCOL), BEACON_HTTP_PORT_ID: shared_utils.new_port_spec(BEACON_HTTP_PORT_NUM, shared_utils.TCP_PROTOCOL),
BEACON_METRICS_PORT_ID: new_port_spec(BEACON_METRICS_PORT_NUM, TCP_PROTOCOL), BEACON_METRICS_PORT_ID: shared_utils.new_port_spec(BEACON_METRICS_PORT_NUM, shared_utils.TCP_PROTOCOL),
} }
VALIDATOR_USED_PORTS = { VALIDATOR_USED_PORTS = {
VALIDATOR_HTTP_PORT_ID: new_port_spec(VALIDATOR_HTTP_PORT_NUM, TCP_PROTOCOL), VALIDATOR_HTTP_PORT_ID: shared_utils.new_port_spec(VALIDATOR_HTTP_PORT_NUM, shared_utils.TCP_PROTOCOL),
VALIDATOR_METRICS_PORT_ID: new_port_spec(VALIDATOR_METRICS_PORT_NUM, TCP_PROTOCOL), VALIDATOR_METRICS_PORT_ID: shared_utils.new_port_spec(VALIDATOR_METRICS_PORT_NUM, shared_utils.TCP_PROTOCOL),
} }
LIGHTHOUSE_LOG_LEVELS = { LIGHTHOUSE_LOG_LEVELS = {
...@@ -83,7 +83,7 @@ def launch( ...@@ -83,7 +83,7 @@ def launch(
beacon_node_service_id = "{0}-{1}".format(service_id, BEACON_SUFFIX_SERVICE_ID) beacon_node_service_id = "{0}-{1}".format(service_id, BEACON_SUFFIX_SERVICE_ID)
validator_node_service_id = "{0}-{1}".format(service_id, VALIDATOR_SUFFIX_SERVICE_ID) validator_node_service_id = "{0}-{1}".format(service_id, VALIDATOR_SUFFIX_SERVICE_ID)
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, LIGHTHOUSE_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, LIGHTHOUSE_LOG_LEVELS)
# Launch Beacon node # Launch Beacon node
beacon_config = get_beacon_config( beacon_config = get_beacon_config(
...@@ -129,11 +129,11 @@ def launch( ...@@ -129,11 +129,11 @@ def launch(
validator_metrics_port = validator_service.ports[VALIDATOR_METRICS_PORT_ID] validator_metrics_port = validator_service.ports[VALIDATOR_METRICS_PORT_ID]
validator_metrics_url = "{0}:{1}".format(validator_service.ip_address, validator_metrics_port.number) validator_metrics_url = "{0}:{1}".format(validator_service.ip_address, validator_metrics_port.number)
beacon_node_metrics_info = new_cl_node_metrics_info(beacon_node_service_id, METRICS_PATH, beacon_metrics_url) beacon_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(beacon_node_service_id, METRICS_PATH, beacon_metrics_url)
validator_node_metrics_info = new_cl_node_metrics_info(validator_node_service_id, METRICS_PATH, validator_metrics_url) validator_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(validator_node_service_id, METRICS_PATH, validator_metrics_url)
nodes_metrics_info = [beacon_node_metrics_info, validator_node_metrics_info] nodes_metrics_info = [beacon_node_metrics_info, validator_node_metrics_info]
return new_cl_client_context( return cl_client_context.new_cl_client_context(
"lighthouse", "lighthouse",
beacon_node_enr, beacon_node_enr,
beacon_service.ip_address, beacon_service.ip_address,
...@@ -158,8 +158,8 @@ def get_beacon_config( ...@@ -158,8 +158,8 @@ def get_beacon_config(
) )
# For some reason, Lighthouse takes in the parent directory of the config file (rather than the path to the config file itself) # For some reason, Lighthouse takes in the parent directory of the config file (rather than the path to the config file itself)
genesis_config_parent_dirpath_on_client = path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, path_dir(genesis_data.config_yml_rel_filepath)) genesis_config_parent_dirpath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, shared_utils.path_dir(genesis_data.config_yml_rel_filepath))
jwt_secret_filepath = path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, genesis_data.jwt_secret_rel_filepath) jwt_secret_filepath = shared_utils.path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, genesis_data.jwt_secret_rel_filepath)
# NOTE: If connecting to the merge devnet remotely we DON'T want the following flags; when they're not set, the node's external IP address is auto-detected # NOTE: If connecting to the merge devnet remotely we DON'T want the following flags; when they're not set, the node's external IP address is auto-detected
# from the peers it communicates with but when they're set they basically say "override the autodetection and # from the peers it communicates with but when they're set they basically say "override the autodetection and
...@@ -209,7 +209,7 @@ def get_beacon_config( ...@@ -209,7 +209,7 @@ def get_beacon_config(
if mev_boost_context != None: if mev_boost_context != None:
cmd.append("--builder") cmd.append("--builder")
cmd.append(mev_boost_endpoint(mev_boost_context)) cmd.append(mev_boost_context_module.mev_boost_endpoint(mev_boost_context))
if len(extra_params) > 0: if len(extra_params) > 0:
...@@ -241,9 +241,9 @@ def get_validator_config( ...@@ -241,9 +241,9 @@ def get_validator_config(
extra_params): extra_params):
# For some reason, Lighthouse takes in the parent directory of the config file (rather than the path to the config file itself) # For some reason, Lighthouse takes in the parent directory of the config file (rather than the path to the config file itself)
genesis_config_parent_dirpath_on_client = path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, path_dir(genesis_data.config_yml_rel_filepath)) genesis_config_parent_dirpath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, shared_utils.path_dir(genesis_data.config_yml_rel_filepath))
validator_keys_dirpath = path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS, node_keystore_files.raw_keys_relative_dirpath) validator_keys_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS, node_keystore_files.raw_keys_relative_dirpath)
validator_secrets_dirpath = path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS, node_keystore_files.raw_secrets_relative_dirpath) validator_secrets_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS, node_keystore_files.raw_secrets_relative_dirpath)
cmd = [ cmd = [
"lighthouse", "lighthouse",
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "path_dir", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star", "new_cl_client_context") cl_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star", "new_cl_node_metrics_info") cl_node_metrics = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star", "mev_boost_endpoint") mev_boost_context_module = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -34,11 +34,11 @@ BEACON_ENR_FACT_NAME = "beacon-enr-fact" ...@@ -34,11 +34,11 @@ BEACON_ENR_FACT_NAME = "beacon-enr-fact"
BEACON_HEALTH_FACT_NAME = "beacon-health-fact" BEACON_HEALTH_FACT_NAME = "beacon-health-fact"
USED_PORTS = { USED_PORTS = {
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUM, TCP_PROTOCOL), HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUM, shared_utils.TCP_PROTOCOL),
METRICS_PORT_ID: new_port_spec(METRICS_PORT_NUM, TCP_PROTOCOL), METRICS_PORT_ID: shared_utils.new_port_spec(METRICS_PORT_NUM, shared_utils.TCP_PROTOCOL),
VALIDATOR_METRICS_PORT_ID: new_port_spec(VALIDATOR_METRICS_PORT_NUM, TCP_PROTOCOL) VALIDATOR_METRICS_PORT_ID: shared_utils.new_port_spec(VALIDATOR_METRICS_PORT_NUM, shared_utils.TCP_PROTOCOL)
} }
...@@ -68,7 +68,7 @@ def launch( ...@@ -68,7 +68,7 @@ def launch(
beacon_node_service_id = "{0}-{1}".format(service_id, BEACON_SUFFIX_SERVICE_ID) beacon_node_service_id = "{0}-{1}".format(service_id, BEACON_SUFFIX_SERVICE_ID)
validator_node_service_id = "{0}-{1}".format(service_id, VALIDATOR_SUFFIX_SERVICE_ID) validator_node_service_id = "{0}-{1}".format(service_id, VALIDATOR_SUFFIX_SERVICE_ID)
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, LODESTAR_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, LODESTAR_LOG_LEVELS)
# Launch Beacon node # Launch Beacon node
beacon_config = get_beacon_config( beacon_config = get_beacon_config(
...@@ -114,10 +114,10 @@ def launch( ...@@ -114,10 +114,10 @@ def launch(
beacon_metrics_port = beacon_service.ports[METRICS_PORT_ID] beacon_metrics_port = beacon_service.ports[METRICS_PORT_ID]
beacon_metrics_url = "{0}:{1}".format(beacon_service.ip_address, beacon_metrics_port.number) beacon_metrics_url = "{0}:{1}".format(beacon_service.ip_address, beacon_metrics_port.number)
beacon_node_metrics_info = new_cl_node_metrics_info(service_id, METRICS_PATH, beacon_metrics_url) beacon_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(service_id, METRICS_PATH, beacon_metrics_url)
nodes_metrics_info = [beacon_node_metrics_info] nodes_metrics_info = [beacon_node_metrics_info]
result = new_cl_client_context( return cl_client_context.new_cl_client_context(
"lodestar", "lodestar",
beacon_node_enr, beacon_node_enr,
beacon_service.ip_address, beacon_service.ip_address,
...@@ -126,8 +126,6 @@ def launch( ...@@ -126,8 +126,6 @@ def launch(
beacon_node_service_id beacon_node_service_id
) )
return result
def get_beacon_config( def get_beacon_config(
genesis_data, genesis_data,
...@@ -148,9 +146,9 @@ def get_beacon_config( ...@@ -148,9 +146,9 @@ def get_beacon_config(
el_client_ctx.engine_rpc_port_num, el_client_ctx.engine_rpc_port_num,
) )
genesis_config_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath) genesis_config_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath)
genesis_ssz_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.genesis_ssz_rel_filepath) genesis_ssz_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.genesis_ssz_rel_filepath)
jwt_secret_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.jwt_secret_rel_filepath) jwt_secret_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.jwt_secret_rel_filepath)
cmd = [ cmd = [
"beacon", "beacon",
"--logLevel=" + log_level, "--logLevel=" + log_level,
...@@ -188,7 +186,7 @@ def get_beacon_config( ...@@ -188,7 +186,7 @@ def get_beacon_config(
if mev_boost_context != None: if mev_boost_context != None:
cmd.append("--builder") cmd.append("--builder")
cmd.append("--builder.urls '{0}'".format(mev_boost_endpoint(mev_boost_context))) cmd.append("--builder.urls '{0}'".format(mev_boost_context_module.mev_boost_endpoint(mev_boost_context)))
if len(extra_params) > 0: if len(extra_params) > 0:
...@@ -216,11 +214,11 @@ def get_validator_config( ...@@ -216,11 +214,11 @@ def get_validator_config(
mev_boost_context, mev_boost_context,
extra_params): extra_params):
root_dirpath = path_join(CONSENSUS_DATA_DIRPATH_ON_SERVICE_CONTAINER, service_id) root_dirpath = shared_utils.path_join(CONSENSUS_DATA_DIRPATH_ON_SERVICE_CONTAINER, service_id)
genesis_config_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath) genesis_config_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath)
validator_keys_dirpath = path_join(VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.raw_keys_relative_dirpath) validator_keys_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.raw_keys_relative_dirpath)
validator_secrets_dirpath = path_join(VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.raw_secrets_relative_dirpath) validator_secrets_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.raw_secrets_relative_dirpath)
cmd = [ cmd = [
"validator", "validator",
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "path_dir", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star", "new_cl_client_context") cl_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star", "new_cl_node_metrics_info") cl_node_metrics = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -42,10 +42,10 @@ METRICS_PATH = "/metrics" ...@@ -42,10 +42,10 @@ METRICS_PATH = "/metrics"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
USED_PORTS = { USED_PORTS = {
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUM, TCP_PROTOCOL), HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUM, shared_utils.TCP_PROTOCOL),
METRICS_PORT_ID: new_port_spec(METRICS_PORT_NUM, TCP_PROTOCOL), METRICS_PORT_ID: shared_utils.new_port_spec(METRICS_PORT_NUM, shared_utils.TCP_PROTOCOL),
} }
NIMBUS_LOG_LEVELS = { NIMBUS_LOG_LEVELS = {
...@@ -74,7 +74,7 @@ def launch( ...@@ -74,7 +74,7 @@ def launch(
extra_beacon_params, extra_beacon_params,
extra_validator_params): extra_validator_params):
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, NIMBUS_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, NIMBUS_LOG_LEVELS)
extra_params = [param for param in extra_beacon_params] + [param for param in extra_validator_params] extra_params = [param for param in extra_beacon_params] + [param for param in extra_validator_params]
...@@ -92,11 +92,11 @@ def launch( ...@@ -92,11 +92,11 @@ def launch(
metrics_port = nimbus_service.ports[METRICS_PORT_ID] metrics_port = nimbus_service.ports[METRICS_PORT_ID]
metrics_url = "{0}:{1}".format(nimbus_service.ip_address, metrics_port.number) metrics_url = "{0}:{1}".format(nimbus_service.ip_address, metrics_port.number)
nimbus_node_metrics_info = new_cl_node_metrics_info(service_id, METRICS_PATH, metrics_url) nimbus_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(service_id, METRICS_PATH, metrics_url)
nodes_metrics_info = [nimbus_node_metrics_info] nodes_metrics_info = [nimbus_node_metrics_info]
result = new_cl_client_context( return cl_client_context.new_cl_client_context(
"nimbus", "nimbus",
node_enr, node_enr,
nimbus_service.ip_address, nimbus_service.ip_address,
...@@ -105,8 +105,6 @@ def launch( ...@@ -105,8 +105,6 @@ def launch(
service_id, service_id,
) )
return result
def get_config( def get_config(
genesis_data, genesis_data,
...@@ -124,10 +122,10 @@ def get_config( ...@@ -124,10 +122,10 @@ def get_config(
) )
# For some reason, Nimbus takes in the parent directory of the config file (rather than the path to the config file itself) # For some reason, Nimbus takes in the parent directory of the config file (rather than the path to the config file itself)
genesis_config_parent_dirpath_on_client = path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENT, path_dir(genesis_data.config_yml_rel_filepath)) genesis_config_parent_dirpath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENT, shared_utils.path_dir(genesis_data.config_yml_rel_filepath))
jwt_secret_filepath = path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENT, genesis_data.jwt_secret_rel_filepath) jwt_secret_filepath = shared_utils.path_join(GENESIS_DATA_MOUNTPOINT_ON_CLIENT, genesis_data.jwt_secret_rel_filepath)
validator_keys_dirpath = path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT, node_keystore_files.nimbus_keys_relative_dirpath) validator_keys_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT, node_keystore_files.nimbus_keys_relative_dirpath)
validator_secrets_dirpath = path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT, node_keystore_files.raw_secrets_relative_dirpath) validator_secrets_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT, node_keystore_files.raw_secrets_relative_dirpath)
# Sources for these flags: # Sources for these flags:
# 1) https://github.com/status-im/nimbus-eth2/blob/stable/scripts/launch_local_testnet.sh # 1) https://github.com/status-im/nimbus-eth2/blob/stable/scripts/launch_local_testnet.sh
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "path_dir", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star", "new_cl_client_context") cl_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star", "new_cl_node_metrics_info") cl_node_metrics = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star", "mev_boost_endpoint") mev_boost_context_module = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -40,15 +40,15 @@ METRICS_PATH = "/metrics" ...@@ -40,15 +40,15 @@ METRICS_PATH = "/metrics"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
BEACON_NODE_USED_PORTS = { BEACON_NODE_USED_PORTS = {
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_TCP_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_TCP_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_UDP_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_UDP_PORT_NUM, shared_utils.UDP_PROTOCOL),
RPC_PORT_ID: new_port_spec(RPC_PORT_NUM, TCP_PROTOCOL), RPC_PORT_ID: shared_utils.new_port_spec(RPC_PORT_NUM, shared_utils.TCP_PROTOCOL),
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUM, TCP_PROTOCOL), HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUM, shared_utils.TCP_PROTOCOL),
BEACON_MONITORING_PORT_ID: new_port_spec(BEACON_MONITORING_PORT_NUM, TCP_PROTOCOL), BEACON_MONITORING_PORT_ID: shared_utils.new_port_spec(BEACON_MONITORING_PORT_NUM, shared_utils.TCP_PROTOCOL),
} }
VALIDATOR_NODE_USED_PORTS = { VALIDATOR_NODE_USED_PORTS = {
VALIDATOR_MONITORING_PORT_ID: new_port_spec(VALIDATOR_MONITORING_PORT_NUM, TCP_PROTOCOL), VALIDATOR_MONITORING_PORT_ID: shared_utils.new_port_spec(VALIDATOR_MONITORING_PORT_NUM, shared_utils.TCP_PROTOCOL),
} }
PRYSM_LOG_LEVELS = { PRYSM_LOG_LEVELS = {
...@@ -91,7 +91,7 @@ def launch( ...@@ -91,7 +91,7 @@ def launch(
beacon_node_service_id = "{0}-{1}".format(service_id, BEACON_SUFFIX_SERVICE_ID) beacon_node_service_id = "{0}-{1}".format(service_id, BEACON_SUFFIX_SERVICE_ID)
validator_node_service_id = "{0}-{1}".format(service_id, VALIDATOR_SUFFIX_SERVICE_ID) validator_node_service_id = "{0}-{1}".format(service_id, VALIDATOR_SUFFIX_SERVICE_ID)
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, PRYSM_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, PRYSM_LOG_LEVELS)
beacon_config = get_beacon_config( beacon_config = get_beacon_config(
launcher.genesis_data, launcher.genesis_data,
...@@ -141,12 +141,12 @@ def launch( ...@@ -141,12 +141,12 @@ def launch(
validator_metrics_port = validator_service.ports[VALIDATOR_MONITORING_PORT_ID] validator_metrics_port = validator_service.ports[VALIDATOR_MONITORING_PORT_ID]
validator_metrics_url = "{0}:{1}".format(validator_service.ip_address, validator_metrics_port.number) validator_metrics_url = "{0}:{1}".format(validator_service.ip_address, validator_metrics_port.number)
beacon_node_metrics_info = new_cl_node_metrics_info(beacon_node_service_id, METRICS_PATH, beacon_metrics_url) beacon_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(beacon_node_service_id, METRICS_PATH, beacon_metrics_url)
validator_node_metrics_info = new_cl_node_metrics_info(validator_node_service_id, METRICS_PATH, validator_metrics_url) validator_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(validator_node_service_id, METRICS_PATH, validator_metrics_url)
nodes_metrics_info = [beacon_node_metrics_info, validator_node_metrics_info] nodes_metrics_info = [beacon_node_metrics_info, validator_node_metrics_info]
result = new_cl_client_context( return cl_client_context.new_cl_client_context(
"prysm", "prysm",
beacon_node_enr, beacon_node_enr,
beacon_service.ip_address, beacon_service.ip_address,
...@@ -155,8 +155,6 @@ def launch( ...@@ -155,8 +155,6 @@ def launch(
beacon_node_service_id beacon_node_service_id
) )
return result
def get_beacon_config( def get_beacon_config(
genesis_data, genesis_data,
...@@ -173,9 +171,9 @@ def get_beacon_config( ...@@ -173,9 +171,9 @@ def get_beacon_config(
el_client_context.engine_rpc_port_num, el_client_context.engine_rpc_port_num,
) )
genesis_config_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath) genesis_config_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath)
genesis_ssz_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.genesis_ssz_rel_filepath) genesis_ssz_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.genesis_ssz_rel_filepath)
jwt_secret_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.jwt_secret_rel_filepath) jwt_secret_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.jwt_secret_rel_filepath)
cmd = [ cmd = [
...@@ -206,7 +204,7 @@ def get_beacon_config( ...@@ -206,7 +204,7 @@ def get_beacon_config(
cmd.append("--bootstrap-node="+bootnode_context.enr) cmd.append("--bootstrap-node="+bootnode_context.enr)
if mev_boost_context != None: if mev_boost_context != None:
cmd.append(("--http-mev-relay{0}".format(mev_boost_endpoint(mev_boost_context)))) cmd.append(("--http-mev-relay{0}".format(mev_boost_context_module.mev_boost_endpoint(mev_boost_context))))
if len(extra_params) > 0: if len(extra_params) > 0:
# we do the for loop as otherwise its a proto repeated array # we do the for loop as otherwise its a proto repeated array
...@@ -237,9 +235,9 @@ def get_validator_config( ...@@ -237,9 +235,9 @@ def get_validator_config(
prysm_password_artifact_uuid prysm_password_artifact_uuid
): ):
consensus_data_dirpath = path_join(CONSENSUS_DATA_DIRPATH_ON_SERVICE_CONTAINER, service_id) consensus_data_dirpath = shared_utils.path_join(CONSENSUS_DATA_DIRPATH_ON_SERVICE_CONTAINER, service_id)
prysm_keystore_dirpath = path_join(VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.prysm_relative_dirpath) prysm_keystore_dirpath = shared_utils.path_join(VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.prysm_relative_dirpath)
prysm_password_filepath = path_join(PRYSM_PASSWORD_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, prysm_password_relative_filepath) prysm_password_filepath = shared_utils.path_join(PRYSM_PASSWORD_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, prysm_password_relative_filepath)
cmd = [ cmd = [
"--accept-terms-of-use=true",#it's mandatory in order to run the node "--accept-terms-of-use=true",#it's mandatory in order to run the node
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "path_dir", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star", "new_cl_client_context") cl_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_client_context.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star", "new_cl_node_metrics_info") cl_node_metrics = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/cl/cl_node_metrics_info.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star", "mev_boost_endpoint") mev_boost_context_module = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -48,10 +48,10 @@ METRICS_PATH = "/metrics" ...@@ -48,10 +48,10 @@ METRICS_PATH = "/metrics"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
USED_PORTS = { USED_PORTS = {
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUM, TCP_PROTOCOL), HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUM, shared_utils.TCP_PROTOCOL),
METRICS_PORT_ID: new_port_spec(METRICS_PORT_NUM, TCP_PROTOCOL), METRICS_PORT_ID: shared_utils.new_port_spec(METRICS_PORT_NUM, shared_utils.TCP_PROTOCOL),
} }
ENTRYPOINT_ARGS = ["sh", "-c"] ENTRYPOINT_ARGS = ["sh", "-c"]
...@@ -83,7 +83,7 @@ def launch( ...@@ -83,7 +83,7 @@ def launch(
extra_beacon_params, extra_beacon_params,
extra_validator_params): extra_validator_params):
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, TEKU_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, TEKU_LOG_LEVELS)
extra_params = [param for param in extra_beacon_params] + [param for param in extra_validator_params] extra_params = [param for param in extra_beacon_params] + [param for param in extra_validator_params]
...@@ -102,10 +102,10 @@ def launch( ...@@ -102,10 +102,10 @@ def launch(
teku_metrics_port = teku_service.ports[METRICS_PORT_ID] teku_metrics_port = teku_service.ports[METRICS_PORT_ID]
teku_metrics_url = "{0}:{1}".format(teku_service.ip_address, teku_metrics_port.number) teku_metrics_url = "{0}:{1}".format(teku_service.ip_address, teku_metrics_port.number)
teku_node_metrics_info = new_cl_node_metrics_info(service_id, METRICS_PATH, teku_metrics_url) teku_node_metrics_info = cl_node_metrics.new_cl_node_metrics_info(service_id, METRICS_PATH, teku_metrics_url)
nodes_metrics_info = [teku_node_metrics_info] nodes_metrics_info = [teku_node_metrics_info]
result = new_cl_client_context( return cl_client_context.new_cl_client_context(
"teku", "teku",
node_enr, node_enr,
teku_service.ip_address, teku_service.ip_address,
...@@ -113,7 +113,7 @@ def launch( ...@@ -113,7 +113,7 @@ def launch(
nodes_metrics_info, nodes_metrics_info,
service_id service_id
) )
return result
def get_config( def get_config(
genesis_data, genesis_data,
...@@ -135,11 +135,11 @@ def get_config( ...@@ -135,11 +135,11 @@ def get_config(
el_client_ctx.engine_rpc_port_num, el_client_ctx.engine_rpc_port_num,
) )
genesis_config_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath) genesis_config_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.config_yml_rel_filepath)
genesis_ssz_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.genesis_ssz_rel_filepath) genesis_ssz_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.genesis_ssz_rel_filepath)
jwt_secret_filepath = path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.jwt_secret_rel_filepath) jwt_secret_filepath = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, genesis_data.jwt_secret_rel_filepath)
validator_keys_dirpath = path_join(VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.teku_keys_relative_dirpath) validator_keys_dirpath = shared_utils.path_join(VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.teku_keys_relative_dirpath)
validator_secrets_dirpath = path_join(VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.teku_secrets_relative_dirpath) validator_secrets_dirpath = shared_utils.path_join(VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER, node_keystore_files.teku_secrets_relative_dirpath)
cmd = [ cmd = [
# Needed because the generated keys are owned by root and the Teku image runs as the 'teku' user # Needed because the generated keys are owned by root and the Teku image runs as the 'teku' user
...@@ -195,7 +195,7 @@ def get_config( ...@@ -195,7 +195,7 @@ def get_config(
if mev_boost_context != None: if mev_boost_context != None:
cmd.append("--validators-builder-registration-default-enabled=true") cmd.append("--validators-builder-registration-default-enabled=true")
cmd.append("--builder-endpoint='{0}'".format(mev_boost_endpoint(mev_boost_context))) cmd.append("--builder-endpoint='{0}'".format(mev_boost_context_module.mev_boost_endpoint(mev_boost_context)))
if len(extra_params) > 0: if len(extra_params) > 0:
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star", "new_el_client_context") el_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -26,12 +26,12 @@ ENGINE_WS_RPC_PORT_ID = "engineWsRpc" ...@@ -26,12 +26,12 @@ ENGINE_WS_RPC_PORT_ID = "engineWsRpc"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
USED_PORTS = { USED_PORTS = {
RPC_PORT_ID: new_port_spec(RPC_PORT_NUM, TCP_PROTOCOL), RPC_PORT_ID: shared_utils.new_port_spec(RPC_PORT_NUM, shared_utils.TCP_PROTOCOL),
WS_PORT_ID: new_port_spec(WS_PORT_NUM, TCP_PROTOCOL), WS_PORT_ID: shared_utils.new_port_spec(WS_PORT_NUM, shared_utils.TCP_PROTOCOL),
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
ENGINE_HTTP_RPC_PORT_ID: new_port_spec(ENGINE_HTTP_RPC_PORT_NUM, TCP_PROTOCOL), ENGINE_HTTP_RPC_PORT_ID: shared_utils.new_port_spec(ENGINE_HTTP_RPC_PORT_NUM, shared_utils.TCP_PROTOCOL),
ENGINE_WS_RPC_PORT_ID: new_port_spec(ENGINE_WS_RPC_PORT_NUM, TCP_PROTOCOL) ENGINE_WS_RPC_PORT_ID: shared_utils.new_port_spec(ENGINE_WS_RPC_PORT_NUM, shared_utils.TCP_PROTOCOL)
} }
ENTRYPOINT_ARGS = ["sh", "-c"] ENTRYPOINT_ARGS = ["sh", "-c"]
...@@ -55,7 +55,7 @@ def launch( ...@@ -55,7 +55,7 @@ def launch(
existing_el_clients, existing_el_clients,
extra_params): extra_params):
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, BESU_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, BESU_LOG_LEVELS)
config = get_config(launcher.network_id, launcher.el_genesis_data, config = get_config(launcher.network_id, launcher.el_genesis_data,
image, existing_el_clients, log_level, extra_params) image, existing_el_clients, log_level, extra_params)
...@@ -65,7 +65,7 @@ def launch( ...@@ -65,7 +65,7 @@ def launch(
define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID)) define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID))
enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME) enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME)
return new_el_client_context( return el_client_context.new_el_client_context(
"besu", "besu",
"", # besu has no ENR "", # besu has no ENR
enode, enode,
...@@ -83,8 +83,8 @@ def get_config(network_id, genesis_data, image, existing_el_clients, log_level, ...@@ -83,8 +83,8 @@ def get_config(network_id, genesis_data, image, existing_el_clients, log_level,
boot_node_1 = existing_el_clients[0] boot_node_1 = existing_el_clients[0]
boot_node_2 = existing_el_clients[1] boot_node_2 = existing_el_clients[1]
genesis_json_filepath_on_client = path_join(GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER, genesis_data.besu_genesis_json_relative_filepath) genesis_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER, genesis_data.besu_genesis_json_relative_filepath)
jwt_secret_json_filepath_on_client = path_join(GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER, genesis_data.jwt_secret_relative_filepath) jwt_secret_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER, genesis_data.jwt_secret_relative_filepath)
launch_node_command = [ launch_node_command = [
"besu", "besu",
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star", "new_el_client_context") el_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -25,10 +25,10 @@ ENGINE_RPC_PORT_ID = "engine-rpc" ...@@ -25,10 +25,10 @@ ENGINE_RPC_PORT_ID = "engine-rpc"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
USED_PORTS = { USED_PORTS = {
RPC_PORT_ID: new_port_spec(RPC_PORT_NUM, TCP_PROTOCOL), RPC_PORT_ID: shared_utils.new_port_spec(RPC_PORT_NUM, shared_utils.TCP_PROTOCOL),
WS_PORT_ID: new_port_spec(WS_PORT_NUM, TCP_PROTOCOL), WS_PORT_ID: shared_utils.new_port_spec(WS_PORT_NUM, shared_utils.TCP_PROTOCOL),
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
} }
ENTRYPOINT_ARGS = ["sh", "-c"] ENTRYPOINT_ARGS = ["sh", "-c"]
...@@ -53,7 +53,7 @@ def launch( ...@@ -53,7 +53,7 @@ def launch(
existing_el_clients, existing_el_clients,
extra_params): extra_params):
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, ERIGON_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, ERIGON_LOG_LEVELS)
config = get_config(launcher.network_id, launcher.el_genesis_data, config = get_config(launcher.network_id, launcher.el_genesis_data,
image, existing_el_clients, log_level, extra_params) image, existing_el_clients, log_level, extra_params)
...@@ -66,7 +66,7 @@ def launch( ...@@ -66,7 +66,7 @@ def launch(
define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID)) define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID))
enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME) enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME)
return new_el_client_context( return el_client_context.new_el_client_context(
"erigon", "erigon",
enr, enr,
enode, enode,
...@@ -80,8 +80,8 @@ def launch( ...@@ -80,8 +80,8 @@ def launch(
def get_config(network_id, genesis_data, image, existing_el_clients, verbosity_level, extra_params): def get_config(network_id, genesis_data, image, existing_el_clients, verbosity_level, extra_params):
network_id = network_id network_id = network_id
genesis_json_filepath_on_client = path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.erigon_genesis_json_relative_filepath) genesis_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.erigon_genesis_json_relative_filepath)
jwt_secret_json_filepath_on_client = path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.jwt_secret_relative_filepath) jwt_secret_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.jwt_secret_relative_filepath)
init_datadir_cmd_str = "erigon init --datadir={0} {1}".format( init_datadir_cmd_str = "erigon init --datadir={0} {1}".format(
EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER, EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER,
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star", "new_el_client_context") el_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -35,11 +35,11 @@ GETH_ACCOUNT_PASSWORDS_FILE = "/tmp/password.txt" # Importing an account to ...@@ -35,11 +35,11 @@ GETH_ACCOUNT_PASSWORDS_FILE = "/tmp/password.txt" # Importing an account to
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
USED_PORTS = { USED_PORTS = {
RPC_PORT_ID: new_port_spec(RPC_PORT_NUM, TCP_PROTOCOL), RPC_PORT_ID: shared_utils.new_port_spec(RPC_PORT_NUM, shared_utils.TCP_PROTOCOL),
WS_PORT_ID: new_port_spec(WS_PORT_NUM, TCP_PROTOCOL), WS_PORT_ID: shared_utils.new_port_spec(WS_PORT_NUM, shared_utils.TCP_PROTOCOL),
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
ENGINE_RPC_PORT_ID: new_port_spec(ENGINE_RPC_PORT_NUM, TCP_PROTOCOL) ENGINE_RPC_PORT_ID: shared_utils.new_port_spec(ENGINE_RPC_PORT_NUM, shared_utils.TCP_PROTOCOL)
} }
ENTRYPOINT_ARGS = ["sh", "-c"] ENTRYPOINT_ARGS = ["sh", "-c"]
...@@ -66,7 +66,7 @@ def launch( ...@@ -66,7 +66,7 @@ def launch(
extra_params): extra_params):
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, VERBOSITY_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, VERBOSITY_LEVELS)
config = get_config(launcher.network_id, launcher.el_genesis_data, launcher.prefunded_geth_keys_artifact_uuid, config = get_config(launcher.network_id, launcher.el_genesis_data, launcher.prefunded_geth_keys_artifact_uuid,
launcher.prefunded_account_info, image, existing_el_clients, log_level, extra_params) launcher.prefunded_account_info, image, existing_el_clients, log_level, extra_params)
...@@ -79,7 +79,7 @@ def launch( ...@@ -79,7 +79,7 @@ def launch(
define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID)) define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID))
enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME) enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME)
return new_el_client_context( return el_client_context.new_el_client_context(
"geth", "geth",
enr, enr,
enode, enode,
...@@ -91,8 +91,8 @@ def launch( ...@@ -91,8 +91,8 @@ def launch(
def get_config(network_id, genesis_data, prefunded_geth_keys_artifact_uuid, prefunded_account_info, image, existing_el_clients, verbosity_level, extra_params): def get_config(network_id, genesis_data, prefunded_geth_keys_artifact_uuid, prefunded_account_info, image, existing_el_clients, verbosity_level, extra_params):
genesis_json_filepath_on_client = path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.geth_genesis_json_relative_filepath) genesis_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.geth_genesis_json_relative_filepath)
jwt_secret_json_filepath_on_client = path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.jwt_secret_relative_filepath) jwt_secret_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.jwt_secret_relative_filepath)
account_addresses_to_unlock = [] account_addresses_to_unlock = []
for prefunded_account in prefunded_account_info: for prefunded_account in prefunded_account_info:
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "path_join", "TCP_PROTOCOL", "UDP_PROTOCOL") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star", "get_client_log_level_or_default") parse_input = import_module("github.com/kurtosis-tech/eth2-module/src/module_io/parse_input.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star", "new_el_client_context") el_client_context = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/el/el_client_context.star")
module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto") module_io = import_types("github.com/kurtosis-tech/eth2-module/types.proto")
...@@ -24,11 +24,11 @@ ENGINE_RPC_PORT_ID = "engine-rpc" ...@@ -24,11 +24,11 @@ ENGINE_RPC_PORT_ID = "engine-rpc"
PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER" PRIVATE_IP_ADDRESS_PLACEHOLDER = "KURTOSIS_IP_ADDR_PLACEHOLDER"
USED_PORTS = { USED_PORTS = {
RPC_PORT_ID: new_port_spec(RPC_PORT_NUM, TCP_PROTOCOL), RPC_PORT_ID: shared_utils.new_port_spec(RPC_PORT_NUM, shared_utils.TCP_PROTOCOL),
WS_PORT_ID: new_port_spec(WS_PORT_NUM, TCP_PROTOCOL), WS_PORT_ID: shared_utils.new_port_spec(WS_PORT_NUM, shared_utils.TCP_PROTOCOL),
TCP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, TCP_PROTOCOL), TCP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.TCP_PROTOCOL),
UDP_DISCOVERY_PORT_ID: new_port_spec(DISCOVERY_PORT_NUM, UDP_PROTOCOL), UDP_DISCOVERY_PORT_ID: shared_utils.new_port_spec(DISCOVERY_PORT_NUM, shared_utils.UDP_PROTOCOL),
ENGINE_RPC_PORT_ID: new_port_spec(ENGINE_RPC_PORT_NUM, TCP_PROTOCOL) ENGINE_RPC_PORT_ID: shared_utils.new_port_spec(ENGINE_RPC_PORT_NUM, shared_utils.TCP_PROTOCOL)
} }
NETHERMIND_LOG_LEVELS = { NETHERMIND_LOG_LEVELS = {
...@@ -51,7 +51,7 @@ def launch( ...@@ -51,7 +51,7 @@ def launch(
existing_el_clients, existing_el_clients,
extra_params): extra_params):
log_level = get_client_log_level_or_default(participant_log_level, global_log_level, NETHERMIND_LOG_LEVELS) log_level = parse_input.get_client_log_level_or_default(participant_log_level, global_log_level, NETHERMIND_LOG_LEVELS)
config = get_config(launcher.el_genesis_data, image, existing_el_clients, log_level, extra_params) config = get_config(launcher.el_genesis_data, image, existing_el_clients, log_level, extra_params)
...@@ -60,7 +60,7 @@ def launch( ...@@ -60,7 +60,7 @@ def launch(
define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID)) define_fact(service_id = service_id, fact_name = ENODE_FACT_NAME, fact_recipe = struct(method= "POST", endpoint = "", field_extractor = ".result.enode", body = '{"method":"admin_nodeInfo","params":[],"id":1,"jsonrpc":"2.0"}', content_type = "application/json", port_id = RPC_PORT_ID))
enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME) enode = wait(service_id = service_id, fact_name = ENODE_FACT_NAME)
return new_el_client_context( return el_client_context.new_el_client_context(
"nethermind", "nethermind",
"", # nethermind has no ENR in the eth2-merge-kurtosis-module either "", # nethermind has no ENR in the eth2-merge-kurtosis-module either
# Nethermind node info endpoint doesn't return ENR field https://docs.nethermind.io/nethermind/ethereum-client/json-rpc/admin # Nethermind node info endpoint doesn't return ENR field https://docs.nethermind.io/nethermind/ethereum-client/json-rpc/admin
...@@ -79,8 +79,8 @@ def get_config(genesis_data, image, existing_el_clients, log_level, extra_params ...@@ -79,8 +79,8 @@ def get_config(genesis_data, image, existing_el_clients, log_level, extra_params
bootnode_1 = existing_el_clients[0] bootnode_1 = existing_el_clients[0]
bootnode_2 = existing_el_clients[1] bootnode_2 = existing_el_clients[1]
genesis_json_filepath_on_client = path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.nethermind_genesis_json_relative_filepath) genesis_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.nethermind_genesis_json_relative_filepath)
jwt_secret_json_filepath_on_client = path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.jwt_secret_relative_filepath) jwt_secret_json_filepath_on_client = shared_utils.path_join(GENESIS_DATA_MOUNT_DIRPATH, genesis_data.jwt_secret_relative_filepath)
command_args = [ command_args = [
"--config=kiln", "--config=kiln",
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star", "new_mev_boost_context") mev_boost_context = ("github.com/kurtosis-tech/eth2-module/src/participant_network/mev_boost/mev_boost_context.star")
FLASHBOTS_MEV_BOOST_IMAGE = "flashbots/mev-boost" FLASHBOTS_MEV_BOOST_IMAGE = "flashbots/mev-boost"
FLASHBOTS_MEV_BOOST_PORT = 18550 FLASHBOTS_MEV_BOOST_PORT = 18550
FLASHBOTS_MEV_BOOST_PROTOCOL = "TCP" FLASHBOTS_MEV_BOOST_PROTOCOL = "TCP"
USED_PORTS = { USED_PORTS = {
"api": new_port_spec(FLASHBOTS_MEV_BOOST_PORT, FLASHBOTS_MEV_BOOST_PROTOCOL) "api": shared_utils.new_port_spec(FLASHBOTS_MEV_BOOST_PORT, FLASHBOTS_MEV_BOOST_PROTOCOL)
} }
NETWORK_ID_TO_NAME = { NETWORK_ID_TO_NAME = {
...@@ -20,7 +20,7 @@ def launch(mev_boost_launcher, service_id, network_id): ...@@ -20,7 +20,7 @@ def launch(mev_boost_launcher, service_id, network_id):
mev_boost_service = add_service(service_id, config) mev_boost_service = add_service(service_id, config)
return new_mev_boost_context(mev_boost_service.ip_address, FLASHBOTS_MEV_BOOST_PORT) return mev_boost_context.new_mev_boost_context(mev_boost_service.ip_address, FLASHBOTS_MEV_BOOST_PORT)
def get_config(mev_boost_launcher, network_id): def get_config(mev_boost_launcher, network_id):
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_template_and_data", "path_join", "path_base") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/cl_genesis/cl_genesis_data.star", "new_cl_genesis_data") cl_genesis_data = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/cl_genesis/cl_genesis_data.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/prelaunch_data_generator_launcher/prelaunch_data_generator_launcher.star", "launch_prelaunch_data_generator") prelaunch_data_generator_launcher = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/prelaunch_data_generator_launcher/prelaunch_data_generator_launcher.star")
# Needed to copy the JWT secret and the EL genesis.json file # Needed to copy the JWT secret and the EL genesis.json file
...@@ -43,8 +43,8 @@ def generate_cl_genesis_data( ...@@ -43,8 +43,8 @@ def generate_cl_genesis_data(
deposit_contract_address, deposit_contract_address,
)) ))
genesis_generation_mnemonics_template_and_data = new_template_and_data(genesis_generation_mnemonics_yml_template, template_data) genesis_generation_mnemonics_template_and_data = shared_utils.new_template_and_data(genesis_generation_mnemonics_yml_template, template_data)
genesis_generation_config_template_and_data = new_template_and_data(genesis_generation_config_yml_template, template_data) genesis_generation_config_template_and_data = shared_utils.new_template_and_data(genesis_generation_config_yml_template, template_data)
template_and_data_by_rel_dest_filepath = {} template_and_data_by_rel_dest_filepath = {}
template_and_data_by_rel_dest_filepath[MNEMONICS_YML_FILENAME] = genesis_generation_mnemonics_template_and_data template_and_data_by_rel_dest_filepath[MNEMONICS_YML_FILENAME] = genesis_generation_mnemonics_template_and_data
...@@ -53,7 +53,7 @@ def generate_cl_genesis_data( ...@@ -53,7 +53,7 @@ def generate_cl_genesis_data(
genesis_generation_config_artifact_uuid = render_templates(template_and_data_by_rel_dest_filepath) genesis_generation_config_artifact_uuid = render_templates(template_and_data_by_rel_dest_filepath)
# TODO(old) Make this the actual data generator - comment copied from the original module # TODO(old) Make this the actual data generator - comment copied from the original module
launcher_service_id = launch_prelaunch_data_generator( launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{ {
genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR, genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR,
el_genesis_data.files_artifact_uuid: EL_GENESIS_DIRPATH_ON_GENERATOR, el_genesis_data.files_artifact_uuid: EL_GENESIS_DIRPATH_ON_GENERATOR,
...@@ -81,9 +81,9 @@ def generate_cl_genesis_data( ...@@ -81,9 +81,9 @@ def generate_cl_genesis_data(
# Copy files to output # Copy files to output
all_filepaths_to_copy_to_ouptut_directory = [ all_filepaths_to_copy_to_ouptut_directory = [
path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_YML_FILENAME), shared_utils.path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_YML_FILENAME),
path_join(CONFIG_DIRPATH_ON_GENERATOR, MNEMONICS_YML_FILENAME), shared_utils.path_join(CONFIG_DIRPATH_ON_GENERATOR, MNEMONICS_YML_FILENAME),
path_join(EL_GENESIS_DIRPATH_ON_GENERATOR, el_genesis_data.jwt_secret_relative_filepath), shared_utils.path_join(EL_GENESIS_DIRPATH_ON_GENERATOR, el_genesis_data.jwt_secret_relative_filepath),
] ]
for filepath_on_generator in all_filepaths_to_copy_to_ouptut_directory: for filepath_on_generator in all_filepaths_to_copy_to_ouptut_directory:
...@@ -100,7 +100,7 @@ def generate_cl_genesis_data( ...@@ -100,7 +100,7 @@ def generate_cl_genesis_data(
deposit_contract_address: DEPOSIT_CONTRACT_FILENAME, deposit_contract_address: DEPOSIT_CONTRACT_FILENAME,
} }
for content, destFilename in content_to_write_to_output_filename.items(): for content, destFilename in content_to_write_to_output_filename.items():
destFilepath = path_join(OUTPUT_DIRPATH_ON_GENERATOR, destFilename) destFilepath = shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, destFilename)
cmd = [ cmd = [
"sh", "sh",
"-c", "-c",
...@@ -115,30 +115,30 @@ def generate_cl_genesis_data( ...@@ -115,30 +115,30 @@ def generate_cl_genesis_data(
cl_genesis_generation_cmd = [ cl_genesis_generation_cmd = [
CL_GENESIS_GENERATION_BINARY_FILEPATH_ON_CONTAINER, CL_GENESIS_GENERATION_BINARY_FILEPATH_ON_CONTAINER,
"merge", "merge",
"--config", path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_YML_FILENAME), "--config", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_YML_FILENAME),
"--mnemonics", path_join(OUTPUT_DIRPATH_ON_GENERATOR, MNEMONICS_YML_FILENAME), "--mnemonics", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, MNEMONICS_YML_FILENAME),
"--eth1-config", path_join(EL_GENESIS_DIRPATH_ON_GENERATOR, el_genesis_data.geth_genesis_json_relative_filepath), "--eth1-config", shared_utils.path_join(EL_GENESIS_DIRPATH_ON_GENERATOR, el_genesis_data.geth_genesis_json_relative_filepath),
"--tranches-dir", path_join(OUTPUT_DIRPATH_ON_GENERATOR, TRANCHES_DIRANME), "--tranches-dir", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, TRANCHES_DIRANME),
"--state-output", path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_STATE_FILENAME) "--state-output", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_STATE_FILENAME)
] ]
exec(launcher_service_id, cl_genesis_generation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) exec(launcher_service_id, cl_genesis_generation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cl_genesis_data_artifact_uuid = store_file_from_service(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR) cl_genesis_data_artifact_uuid = store_file_from_service(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR)
jwt_secret_rel_filepath = path_join( jwt_secret_rel_filepath = shared_utils.path_join(
path_base(OUTPUT_DIRPATH_ON_GENERATOR), shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR),
path_base(el_genesis_data.jwt_secret_relative_filepath), shared_utils.path_base(el_genesis_data.jwt_secret_relative_filepath),
) )
genesis_config_rel_filepath = path_join( genesis_config_rel_filepath = shared_utils.path_join(
path_base(OUTPUT_DIRPATH_ON_GENERATOR), shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR),
GENESIS_CONFIG_YML_FILENAME, GENESIS_CONFIG_YML_FILENAME,
) )
genesis_ssz_rel_filepath = path_join( genesis_ssz_rel_filepath = shared_utils.path_join(
path_base(OUTPUT_DIRPATH_ON_GENERATOR), shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR),
GENESIS_STATE_FILENAME, GENESIS_STATE_FILENAME,
) )
result = new_cl_genesis_data( result = cl_genesis_data.new_cl_genesis_data(
cl_genesis_data_artifact_uuid, cl_genesis_data_artifact_uuid,
jwt_secret_rel_filepath, jwt_secret_rel_filepath,
genesis_config_rel_filepath, genesis_config_rel_filepath,
......
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/prelaunch_data_generator_launcher/prelaunch_data_generator_launcher.star", "launch_prelaunch_data_generator") prelaunch_data_generator_launcher = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/prelaunch_data_generator_launcher/prelaunch_data_generator_launcher.star")
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "path_join", "path_base") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/cl_validator_keystores/keystore_files.star", "new_keystore_files") keystore_files_module = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/cl_validator_keystores/keystore_files.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/cl_validator_keystores/generate_keystores_result.star", "new_generate_keystores_result") keystores_result = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/cl_validator_keystores/generate_keystores_result.star")
NODE_KEYSTORES_OUTPUT_DIRPATH_FORMAT_STR = "/node-{0}-keystores" NODE_KEYSTORES_OUTPUT_DIRPATH_FORMAT_STR = "/node-{0}-keystores"
...@@ -33,7 +33,7 @@ def generate_cl_validator_keystores( ...@@ -33,7 +33,7 @@ def generate_cl_validator_keystores(
num_nodes, num_nodes,
num_validators_per_node): num_validators_per_node):
service_id = launch_prelaunch_data_generator( service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{}, {},
) )
...@@ -72,15 +72,15 @@ def generate_cl_validator_keystores( ...@@ -72,15 +72,15 @@ def generate_cl_validator_keystores(
artifact_uuid = store_file_from_service(service_id, output_dirpath) artifact_uuid = store_file_from_service(service_id, output_dirpath)
# This is necessary because the way Kurtosis currently implements artifact-storing is # This is necessary because the way Kurtosis currently implements artifact-storing is
base_dirname_in_artifact = path_base(output_dirpath) base_dirname_in_artifact = shared_utils.path_base(output_dirpath)
to_add = new_keystore_files( to_add = keystore_files_module.new_keystore_files(
artifact_uuid, artifact_uuid,
path_join(base_dirname_in_artifact, RAW_KEYS_DIRNAME), shared_utils.path_join(base_dirname_in_artifact, RAW_KEYS_DIRNAME),
path_join(base_dirname_in_artifact, RAW_SECRETS_DIRNAME), shared_utils.path_join(base_dirname_in_artifact, RAW_SECRETS_DIRNAME),
path_join(base_dirname_in_artifact, NIMBUS_KEYS_DIRNAME), shared_utils.path_join(base_dirname_in_artifact, NIMBUS_KEYS_DIRNAME),
path_join(base_dirname_in_artifact, PRYSM_DIRNAME), shared_utils.path_join(base_dirname_in_artifact, PRYSM_DIRNAME),
path_join(base_dirname_in_artifact, TEKU_KEYS_DIRNAME), shared_utils.path_join(base_dirname_in_artifact, TEKU_KEYS_DIRNAME),
path_join(base_dirname_in_artifact, TEKU_SECRETS_DIRNAME), shared_utils.path_join(base_dirname_in_artifact, TEKU_SECRETS_DIRNAME),
) )
keystore_files.append(to_add) keystore_files.append(to_add)
...@@ -98,9 +98,9 @@ def generate_cl_validator_keystores( ...@@ -98,9 +98,9 @@ def generate_cl_validator_keystores(
prysm_password_artifact_uuid = store_file_from_service(service_id, PRYSM_PASSWORD_FILEPATH_ON_GENERATOR) prysm_password_artifact_uuid = store_file_from_service(service_id, PRYSM_PASSWORD_FILEPATH_ON_GENERATOR)
result = new_generate_keystores_result( result = keystores_result.new_generate_keystores_result(
prysm_password_artifact_uuid, prysm_password_artifact_uuid,
path_base(PRYSM_PASSWORD_FILEPATH_ON_GENERATOR), shared_utils.path_base(PRYSM_PASSWORD_FILEPATH_ON_GENERATOR),
keystore_files, keystore_files,
) )
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_template_and_data", "path_join", "path_base") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/el_genesis/el_genesis_data.star", "new_el_genesis_data") el_genesis = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/el_genesis/el_genesis_data.star")
load("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/prelaunch_data_generator_launcher/prelaunch_data_generator_launcher.star", "launch_prelaunch_data_generator") prelaunch_data_generator_launcher = import_module("github.com/kurtosis-tech/eth2-module/src/participant_network/prelaunch_data_generator/prelaunch_data_generator_launcher/prelaunch_data_generator_launcher.star")
CONFIG_DIRPATH_ON_GENERATOR = "/config" CONFIG_DIRPATH_ON_GENERATOR = "/config"
GENESIS_CONFIG_FILENAME = "genesis-config.yaml" GENESIS_CONFIG_FILENAME = "genesis-config.yaml"
...@@ -37,7 +37,7 @@ def generate_el_genesis_data( ...@@ -37,7 +37,7 @@ def generate_el_genesis_data(
genesis_unix_timestamp, genesis_unix_timestamp,
)) ))
genesis_config_file_template_and_data = new_template_and_data(genesis_generation_config_template, template_data) genesis_config_file_template_and_data = shared_utils.new_template_and_data(genesis_generation_config_template, template_data)
template_and_data_by_rel_dest_filepath = {} template_and_data_by_rel_dest_filepath = {}
template_and_data_by_rel_dest_filepath[GENESIS_CONFIG_FILENAME] = genesis_config_file_template_and_data template_and_data_by_rel_dest_filepath[GENESIS_CONFIG_FILENAME] = genesis_config_file_template_and_data
...@@ -46,7 +46,7 @@ def generate_el_genesis_data( ...@@ -46,7 +46,7 @@ def generate_el_genesis_data(
# TODO(old) Make this the actual data generator - comment copied from the original module # TODO(old) Make this the actual data generator - comment copied from the original module
launcher_service_id = launch_prelaunch_data_generator( launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{ {
genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR, genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR,
}, },
...@@ -75,11 +75,11 @@ def generate_el_genesis_data( ...@@ -75,11 +75,11 @@ def generate_el_genesis_data(
exec(launcher_service_id, dir_creation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) exec(launcher_service_id, dir_creation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_config_filepath_on_generator = path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_FILENAME) genesis_config_filepath_on_generator = shared_utils.path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_FILENAME)
genesis_filename_to_relative_filepath_in_artifact = {} genesis_filename_to_relative_filepath_in_artifact = {}
for output_filename, generation_cmd in all_genesis_generation_cmds.items(): for output_filename, generation_cmd in all_genesis_generation_cmds.items():
cmd = generation_cmd(genesis_config_filepath_on_generator) cmd = generation_cmd(genesis_config_filepath_on_generator)
output_filepath_on_generator = path_join(OUTPUT_DIRPATH_ON_GENERATOR, output_filename) output_filepath_on_generator = shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, output_filename)
cmd.append(">") cmd.append(">")
cmd.append(output_filepath_on_generator) cmd.append(output_filepath_on_generator)
cmd_to_execute = [ cmd_to_execute = [
...@@ -90,13 +90,13 @@ def generate_el_genesis_data( ...@@ -90,13 +90,13 @@ def generate_el_genesis_data(
exec(launcher_service_id, cmd_to_execute, SUCCESSFUL_EXEC_CMD_EXIT_CODE) exec(launcher_service_id, cmd_to_execute, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_filename_to_relative_filepath_in_artifact[output_filename] = path_join( genesis_filename_to_relative_filepath_in_artifact[output_filename] = shared_utils.path_join(
path_base(OUTPUT_DIRPATH_ON_GENERATOR), shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR),
output_filename, output_filename,
) )
jwt_secret_filepath_on_generator = path_join(OUTPUT_DIRPATH_ON_GENERATOR, JWT_SECRET_FILENAME) jwt_secret_filepath_on_generator = shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, JWT_SECRET_FILENAME)
jwt_secret_generation_cmd = [ jwt_secret_generation_cmd = [
"bash", "bash",
"-c", "-c",
...@@ -109,9 +109,9 @@ def generate_el_genesis_data( ...@@ -109,9 +109,9 @@ def generate_el_genesis_data(
elGenesisDataArtifactUuid = store_file_from_service(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR) elGenesisDataArtifactUuid = store_file_from_service(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR)
result = new_el_genesis_data( result = el_genesis.new_el_genesis_data(
elGenesisDataArtifactUuid, elGenesisDataArtifactUuid,
path_join(path_base(OUTPUT_DIRPATH_ON_GENERATOR), JWT_SECRET_FILENAME), shared_utils.path_join(shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR), JWT_SECRET_FILENAME),
genesis_filename_to_relative_filepath_in_artifact[GETH_GENESIS_FILENAME], genesis_filename_to_relative_filepath_in_artifact[GETH_GENESIS_FILENAME],
genesis_filename_to_relative_filepath_in_artifact[ERIGON_GENESIS_FILENAME], genesis_filename_to_relative_filepath_in_artifact[ERIGON_GENESIS_FILENAME],
genesis_filename_to_relative_filepath_in_artifact[NETHERMIND_GENESIS_FILENAME], genesis_filename_to_relative_filepath_in_artifact[NETHERMIND_GENESIS_FILENAME],
......
load("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star", "new_port_spec", "new_template_and_data", "path_join", "path_base") shared_utils = import_module("github.com/kurtosis-tech/eth2-module/src/shared_utils/shared_utils.star")
SERVICE_ID = "prometheus" SERVICE_ID = "prometheus"
...@@ -14,7 +14,7 @@ CONFIG_FILENAME = "prometheus-config.yml" ...@@ -14,7 +14,7 @@ CONFIG_FILENAME = "prometheus-config.yml"
CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS = "/config" CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS = "/config"
USED_PORTS = { USED_PORTS = {
HTTP_PORT_ID: new_port_spec(HTTP_PORT_NUMBER, HTTP_PORT_PROTOCOL) HTTP_PORT_ID: shared_utils.new_port_spec(HTTP_PORT_NUMBER, HTTP_PORT_PROTOCOL)
} }
...@@ -26,7 +26,7 @@ def launch_prometheus(config_template, cl_client_contexts): ...@@ -26,7 +26,7 @@ def launch_prometheus(config_template, cl_client_contexts):
template_data = new_config_template_data(all_cl_nodes_metrics_info) template_data = new_config_template_data(all_cl_nodes_metrics_info)
template_data_json = json.encode(template_data) template_data_json = json.encode(template_data)
template_and_data = new_template_and_data(config_template, template_data_json) template_and_data = shared_utils.new_template_and_data(config_template, template_data_json)
template_and_data_by_rel_dest_filepath = {} template_and_data_by_rel_dest_filepath = {}
template_and_data_by_rel_dest_filepath[CONFIG_FILENAME] = template_and_data template_and_data_by_rel_dest_filepath[CONFIG_FILENAME] = template_and_data
...@@ -42,7 +42,7 @@ def launch_prometheus(config_template, cl_client_contexts): ...@@ -42,7 +42,7 @@ def launch_prometheus(config_template, cl_client_contexts):
def get_config(config_files_artifact_uuid): def get_config(config_files_artifact_uuid):
config_file_path = path_join(CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS, path_base(CONFIG_FILENAME)) config_file_path = shared_utils.path_join(CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS, shared_utils.path_base(CONFIG_FILENAME))
return struct( return struct(
image = IMAGE_NAME, image = IMAGE_NAME,
ports = USED_PORTS, ports = USED_PORTS,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment