Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/tests/assertoor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ participants:
count: 1
additional_services:
- assertoor
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
54 changes: 33 additions & 21 deletions .github/tests/bpo.yaml
Original file line number Diff line number Diff line change
@@ -1,37 +1,50 @@
participants_matrix:
el:
- el_type: nethermind
el_image: ethpandaops/nethermind:feature-peerdas
- el_type: reth
el_image: ethpandaops/reth:rkrasiuk-peerdas
# - el_type: nethermind
# el_image: ethpandaops/nethermind:feature-peerdas
# - el_type: reth
# el_image: ethpandaops/reth:rkrasiuk-peerdas
- el_type: geth
el_image: ethpandaops/geth:peerdas-devnet-7
el_image: ethpandaops/geth:fusaka-devnet-0
cl:
- cl_type: teku
cl_image: ethpandaops/teku:das
supernode: true
- cl_type: nimbus
cl_image: ethpandaops/nimbus-eth2:gbv2
supernode: true
# - cl_type: teku
# cl_image: ethpandaops/teku:das
# supernode: true
# - cl_type: nimbus
# cl_image: ethpandaops/nimbus-eth2:gbv2
# supernode: true
- cl_type: grandine
cl_image: ethpandaops/grandine:hangleang-peerdas-devnet-7
cl_image: ethpandaops/grandine:add-bpo-blob-schedule
supernode: true
cl_extra_env_vars: {"RUST_MIN_STACK": "5242880"}
- cl_type: prysm
cl_image: ethpandaops/prysm-beacon-chain:peerDAS
supernode: true
- cl_type: lighthouse
cl_image: ethpandaops/lighthouse:peerdas-devnet-7
supernode: true
# - cl_type: prysm
# cl_image: ethpandaops/prysm-beacon-chain:peerDAS
# supernode: true
# - cl_type: lighthouse
# cl_image: ethpandaops/lighthouse:peerdas-devnet-7
# supernode: true
- cl_type: lodestar
cl_image: ethpandaops/lodestar:peerDAS
supernode: true
cl_image: ethpandaops/lodestar:nc-BPO
# supernode: true

network_params:
fulu_fork_epoch: 1
bpo_1_epoch: 1
bpo_1_max_blobs: 9
bpo_1_target_blobs: 6
bpo_2_epoch: 2
bpo_2_max_blobs: 18
bpo_2_target_blobs: 12
bpo_3_epoch: 3
bpo_3_max_blobs: 9
bpo_3_target_blobs: 6
bpo_4_epoch: 4
bpo_4_max_blobs: 18
bpo_4_target_blobs: 12
bpo_5_epoch: 5
bpo_5_max_blobs: 9
bpo_5_target_blobs: 6

additional_services:
- dora
- spamoor
Expand All @@ -46,4 +59,3 @@ spamoor_params:
- scenario: blobs
config:
throughput: 20

3 changes: 3 additions & 0 deletions .github/tests/mev-mock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ additional_services:
- tx_fuzz
mev_params:
mock_mev_image: "ethpandaops/rustic-builder:main"
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ additional_services:
- prometheus_grafana
network_params:
seconds_per_slot: 6
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ participants:
cl_type: grandine
network_params:
preset: minimal
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mix-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ additional_services:
assertoor_params:
run_stability_check: false
run_block_proposal_check: true
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mix-persistence-k8s.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@ participants:
- el_type: ethereumjs
cl_type: nimbus
persistent: true
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mix-persistence.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@ participants:
- el_type: ethereumjs
cl_type: nimbus
persistent: true
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
21 changes: 21 additions & 0 deletions .github/tests/mix-public.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,24 @@ port_publisher:
mev:
enabled: true
public_port_start: 45000
other:
enabled: true
public_port_start: 46000
additional_services:
- tx_fuzz
- forkmon
- dora
- prometheus_grafana
- custom_flood
- blobscan
- dugtrio
- blutgang
- apache
- tracoor
- spamoor
ethereum_metrics_exporter_enabled: true
snooper_enabled: true
keymanager_enabled: true
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mix-with-tools-mev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,6 @@ mev_type: flashbots
mev_params:
mev_relay_image: ethpandaops/mev-boost-relay:main
persistent: True
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mix-with-tools.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ additional_services:
ethereum_metrics_exporter_enabled: true
snooper_enabled: true
keymanager_enabled: true
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
3 changes: 3 additions & 0 deletions .github/tests/mix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ participants:
cl_type: teku
- el_type: ethereumjs
cl_type: grandine
docker_cache_params:
enabled: true
url: "docker.ethquokkaops.io"
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1100,6 +1100,14 @@ port_publisher:
mev:
enabled: false
public_port_start: 37000

# Other public port exposed to your local machine (like ethereum metrics exporter, snooper)
# Disabled by default
# Public port start defaults to 38000
# You can't run multiple enclaves on the same port settings
other:
enabled: false
public_port_start: 38000
```

#### Example configurations
Expand Down
5 changes: 3 additions & 2 deletions main.star
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,7 @@ def run(plan, args={}):
elif additional_service == "prometheus_grafana":
# Allow prometheus to be launched last so is able to collect metrics from other services
launch_prometheus_grafana = True
prometheus_grafana_index = index
elif additional_service == "assertoor":
plan.print("Launching assertoor")
assertoor_config_template = read_file(
Expand Down Expand Up @@ -705,7 +706,7 @@ def run(plan, args={}):
global_node_selectors,
args_with_right_defaults.prometheus_params,
args_with_right_defaults.port_publisher,
index,
prometheus_grafana_index,
)
plan.print("Launching grafana...")
grafana.launch_grafana(
Expand All @@ -716,7 +717,7 @@ def run(plan, args={}):
global_node_selectors,
args_with_right_defaults.grafana_params,
args_with_right_defaults.port_publisher,
index + 1,
prometheus_grafana_index,
)
plan.print("Successfully launched grafana")

Expand Down
5 changes: 5 additions & 0 deletions src/cl/cl_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def launch(
validator_data,
prysm_password_relative_filepath,
prysm_password_artifact_uuid,
global_other_index,
):
plan.print("Launching CL network")

Expand Down Expand Up @@ -130,8 +131,11 @@ def launch(
snooper_service_name,
el_context,
node_selectors,
args_with_right_defaults.port_publisher,
global_other_index,
args_with_right_defaults.docker_cache_params,
)
global_other_index += 1
plan.print(
"Successfully added {0} snooper participants".format(
snooper_engine_context
Expand Down Expand Up @@ -214,4 +218,5 @@ def launch(
all_cl_contexts,
all_snooper_engine_contexts,
preregistered_validator_keys_for_nodes,
global_other_index,
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ static_files = import_module("../static_files/static_files.star")
ethereum_metrics_exporter_context = import_module(
"../ethereum_metrics_exporter/ethereum_metrics_exporter_context.star"
)

HTTP_PORT_ID = "http"
METRICS_PORT_NUMBER = 9090

Expand All @@ -23,8 +22,17 @@ def launch(
el_context,
cl_context,
node_selectors,
port_publisher,
global_other_index,
docker_cache_params,
):
public_ports = shared_utils.get_other_public_port(
port_publisher,
HTTP_PORT_ID,
global_other_index,
0,
)

exporter_service = plan.add_service(
ethereum_metrics_exporter_service_name,
ServiceConfig(
Expand All @@ -39,6 +47,7 @@ def launch(
shared_utils.HTTP_APPLICATION_PROTOCOL,
)
},
public_ports=public_ports,
cmd=[
"--metrics-port",
str(METRICS_PORT_NUMBER),
Expand Down
4 changes: 2 additions & 2 deletions src/grafana/grafana_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ def launch_grafana(

public_ports = shared_utils.get_additional_service_standard_public_port(
port_publisher,
constants.HTTP_PORT_ID,
HTTP_PORT_ID,
index,
0,
1,
)

config = get_config(
Expand Down
5 changes: 5 additions & 0 deletions src/package_io/input_parser.star
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,10 @@ def input_parser(plan, input_args):
]["public_port_start"],
mev_enabled=result["port_publisher"]["mev"]["enabled"],
mev_public_port_start=result["port_publisher"]["mev"]["public_port_start"],
other_enabled=result["port_publisher"]["other"]["enabled"],
other_public_port_start=result["port_publisher"]["other"][
"public_port_start"
],
),
)

Expand Down Expand Up @@ -1363,6 +1367,7 @@ def get_port_publisher_params(parameter_type, input_args=None):
"remote_signer": {"enabled": False, "public_port_start": 35000},
"additional_services": {"enabled": False, "public_port_start": 36000},
"mev": {"enabled": False, "public_port_start": 37000},
"other": {"enabled": False, "public_port_start": 38000},
}
if parameter_type == "default":
return port_publisher_parameters
Expand Down
1 change: 1 addition & 0 deletions src/package_io/sanity_check.star
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ SUBCATEGORY_PARAMS = {
"remote_signer",
"additional_services",
"mev",
"other",
],
}

Expand Down
9 changes: 9 additions & 0 deletions src/participant_network.star
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def launch_participant_network(
num_participants = len(args_with_right_defaults.participants)
total_number_of_validator_keys = 0
latest_block = ""
global_other_index = 0
if (
network_params.network == constants.NETWORK_NAME.kurtosis
or constants.NETWORK_NAME.shadowfork in network_params.network
Expand Down Expand Up @@ -160,6 +161,7 @@ def launch_participant_network(
all_cl_contexts,
all_snooper_engine_contexts,
preregistered_validator_keys_for_nodes,
global_other_index,
) = cl_client_launcher.launch(
plan,
network_params,
Expand All @@ -175,6 +177,7 @@ def launch_participant_network(
validator_data,
prysm_password_relative_filepath,
prysm_password_artifact_uuid,
global_other_index,
)

ethereum_metrics_exporter_context = None
Expand Down Expand Up @@ -224,8 +227,11 @@ def launch_participant_network(
el_context,
cl_context,
node_selectors,
args_with_right_defaults.port_publisher,
global_other_index,
args_with_right_defaults.docker_cache_params,
)
global_other_index += 1
plan.print(
"Successfully added {0} ethereum metrics exporter participants".format(
ethereum_metrics_exporter_context
Expand Down Expand Up @@ -303,8 +309,11 @@ def launch_participant_network(
snooper_service_name,
cl_context,
node_selectors,
args_with_right_defaults.port_publisher,
global_other_index,
args_with_right_defaults.docker_cache_params,
)
global_other_index += 1
plan.print(
"Successfully added {0} snooper participants".format(
snooper_beacon_context
Expand Down
19 changes: 19 additions & 0 deletions src/shared_utils/shared_utils.star
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ MAX_PORTS_PER_VC_NODE = 3
MAX_PORTS_PER_REMOTE_SIGNER_NODE = 2
MAX_PORTS_PER_ADDITIONAL_SERVICE = 2
MAX_PORTS_PER_MEV_NODE = 2
MAX_PORTS_PER_OTHER_NODE = 1


def new_template_and_data(template, template_data_json):
Expand Down Expand Up @@ -253,6 +254,12 @@ def get_public_ports_for_component(
MAX_PORTS_PER_MEV_NODE,
participant_index,
)
elif component == "other":
public_port_range = __get_port_range(
port_publisher_params.other_public_port_start,
MAX_PORTS_PER_OTHER_NODE,
participant_index,
)
return [port for port in range(public_port_range[0], public_port_range[1], 1)]


Expand Down Expand Up @@ -321,6 +328,18 @@ def get_mev_public_port(port_publisher, port_id, additional_service_index, port_
return public_ports


def get_other_public_port(
port_publisher, port_id, additional_service_index, port_index
):
public_ports = {}
if port_publisher.other_enabled:
public_ports_for_component = get_public_ports_for_component(
"other", port_publisher, additional_service_index
)
public_ports = get_port_specs({port_id: public_ports_for_component[port_index]})
return public_ports


def get_cpu_mem_resource_limits(
min_cpu, max_cpu, min_mem, max_mem, volume_size, network_name, client_type
):
Expand Down
Loading
Loading