Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ethereum-package
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
ethereum-package
Commits
cb33648d
Unverified
Commit
cb33648d
authored
Dec 13, 2023
by
Barnabas Busa
Committed by
GitHub
Dec 13, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: split nimbus CL-validator (#404)
parent
21eae3b5
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
291 additions
and
129 deletions
+291
-129
split-nimbus.yaml
.github/tests/split-nimbus.yaml
+21
-0
README.md
README.md
+5
-0
lighthouse_launcher.star
src/cl/lighthouse/lighthouse_launcher.star
+1
-0
lodestar_launcher.star
src/cl/lodestar/lodestar_launcher.star
+1
-0
nimbus_launcher.star
src/cl/nimbus/nimbus_launcher.star
+245
-128
prysm_launcher.star
src/cl/prysm/prysm_launcher.star
+1
-0
teku_launcher.star
src/cl/teku/teku_launcher.star
+1
-0
input_parser.star
src/package_io/input_parser.star
+14
-1
participant_network.star
src/participant_network.star
+2
-0
No files found.
.github/tests/split-nimbus.yaml
0 → 100644
View file @
cb33648d
participants
:
-
el_client_type
:
geth
cl_client_type
:
nimbus
cl_split_mode_enabled
:
true
validator_count
:
0
-
el_client_type
:
nethermind
cl_client_type
:
nimbus
cl_split_mode_enabled
:
true
-
el_client_type
:
erigon
cl_client_type
:
nimbus
cl_split_mode_enabled
:
true
-
el_client_type
:
besu
cl_client_type
:
nimbus
cl_split_mode_enabled
:
true
-
el_client_type
:
reth
cl_client_type
:
nimbus
cl_split_mode_enabled
:
true
-
el_client_type
:
ethereumjs
cl_client_type
:
nimbus
cl_split_mode_enabled
:
true
additional_services
:
[]
README.md
View file @
cb33648d
...
@@ -147,6 +147,11 @@ participants:
...
@@ -147,6 +147,11 @@ participants:
# over a specific participant's logging
# over a specific participant's logging
cl_client_log_level
:
"
"
cl_client_log_level
:
"
"
# A list of optional extra params that will be passed to the CL to run separate Beacon and validator nodes
# Only possible for nimbus or teku (coming soon)
# Defaults to false
cl_split_mode_enabled
:
false
# A list of optional extra params that will be passed to the CL client Beacon container for modifying its behaviour
# A list of optional extra params that will be passed to the CL client Beacon container for modifying its behaviour
# If the client combines the Beacon & validator nodes (e.g. Teku, Nimbus), then this list will be passed to the combined Beacon-validator node
# If the client combines the Beacon & validator nodes (e.g. Teku, Nimbus), then this list will be passed to the combined Beacon-validator node
beacon_extra_params
:
[]
beacon_extra_params
:
[]
...
...
src/cl/lighthouse/lighthouse_launcher.star
View file @
cb33648d
...
@@ -121,6 +121,7 @@ def launch(
...
@@ -121,6 +121,7 @@ def launch(
extra_validator_params,
extra_validator_params,
extra_beacon_labels,
extra_beacon_labels,
extra_validator_labels,
extra_validator_labels,
split_mode_enabled=False,
):
):
beacon_node_service_name = "{0}".format(service_name)
beacon_node_service_name = "{0}".format(service_name)
validator_node_service_name = "{0}-{1}".format(
validator_node_service_name = "{0}-{1}".format(
...
...
src/cl/lodestar/lodestar_launcher.star
View file @
cb33648d
...
@@ -97,6 +97,7 @@ def launch(
...
@@ -97,6 +97,7 @@ def launch(
extra_validator_params,
extra_validator_params,
extra_beacon_labels,
extra_beacon_labels,
extra_validator_labels,
extra_validator_labels,
split_mode_enabled=False,
):
):
beacon_node_service_name = "{0}".format(service_name)
beacon_node_service_name = "{0}".format(service_name)
validator_node_service_name = "{0}-{1}".format(
validator_node_service_name = "{0}-{1}".format(
...
...
src/cl/nimbus/nimbus_launcher.star
View file @
cb33648d
This diff is collapsed.
Click to expand it.
src/cl/prysm/prysm_launcher.star
View file @
cb33648d
...
@@ -109,6 +109,7 @@ def launch(
...
@@ -109,6 +109,7 @@ def launch(
extra_validator_params,
extra_validator_params,
extra_beacon_labels,
extra_beacon_labels,
extra_validator_labels,
extra_validator_labels,
split_mode_enabled=False,
):
):
split_images = images.split(IMAGE_SEPARATOR_DELIMITER)
split_images = images.split(IMAGE_SEPARATOR_DELIMITER)
if len(split_images) != EXPECTED_NUM_IMAGES:
if len(split_images) != EXPECTED_NUM_IMAGES:
...
...
src/cl/teku/teku_launcher.star
View file @
cb33648d
...
@@ -98,6 +98,7 @@ def launch(
...
@@ -98,6 +98,7 @@ def launch(
extra_validator_params,
extra_validator_params,
extra_beacon_labels,
extra_beacon_labels,
extra_validator_labels,
extra_validator_labels,
split_mode_enabled,
):
):
log_level = input_parser.get_client_log_level_or_default(
log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, TEKU_LOG_LEVELS
participant_log_level, global_log_level, TEKU_LOG_LEVELS
...
...
src/package_io/input_parser.star
View file @
cb33648d
...
@@ -16,7 +16,7 @@ DEFAULT_EL_IMAGES = {
...
@@ -16,7 +16,7 @@ DEFAULT_EL_IMAGES = {
DEFAULT_CL_IMAGES = {
DEFAULT_CL_IMAGES = {
"lighthouse": "sigp/lighthouse:latest",
"lighthouse": "sigp/lighthouse:latest",
"teku": "consensys/teku:latest",
"teku": "consensys/teku:latest",
"nimbus": "
statusim/nimbus-eth2:multiarch-latest
",
"nimbus": "
ethpandaops/nimbus:unstable
",
"prysm": "prysmaticlabs/prysm-beacon-chain:latest,prysmaticlabs/prysm-validator:latest",
"prysm": "prysmaticlabs/prysm-beacon-chain:latest,prysmaticlabs/prysm-validator:latest",
"lodestar": "chainsafe/lodestar:latest",
"lodestar": "chainsafe/lodestar:latest",
}
}
...
@@ -125,6 +125,7 @@ def input_parser(plan, input_args):
...
@@ -125,6 +125,7 @@ def input_parser(plan, input_args):
cl_client_type=participant["cl_client_type"],
cl_client_type=participant["cl_client_type"],
cl_client_image=participant["cl_client_image"],
cl_client_image=participant["cl_client_image"],
cl_client_log_level=participant["cl_client_log_level"],
cl_client_log_level=participant["cl_client_log_level"],
cl_split_mode_enabled=participant["cl_split_mode_enabled"],
beacon_extra_params=participant["beacon_extra_params"],
beacon_extra_params=participant["beacon_extra_params"],
beacon_extra_labels=participant["beacon_extra_labels"],
beacon_extra_labels=participant["beacon_extra_labels"],
validator_extra_params=participant["validator_extra_params"],
validator_extra_params=participant["validator_extra_params"],
...
@@ -252,6 +253,17 @@ def parse_network_params(input_args):
...
@@ -252,6 +253,17 @@ def parse_network_params(input_args):
result["network_params"]["seconds_per_slot"] < 12
result["network_params"]["seconds_per_slot"] < 12
):
):
fail("nimbus can't be run with slot times below 12 seconds")
fail("nimbus can't be run with slot times below 12 seconds")
if participant["cl_split_mode_enabled"] and cl_client_type not in (
"nimbus",
"teku",
):
fail(
"split mode is only supported for nimbus and teku clients, but you specified {0}".format(
cl_client_type
)
)
el_image = participant["el_client_image"]
el_image = participant["el_client_image"]
if el_image == "":
if el_image == "":
default_image = DEFAULT_EL_IMAGES.get(el_client_type, "")
default_image = DEFAULT_EL_IMAGES.get(el_client_type, "")
...
@@ -421,6 +433,7 @@ def default_participant():
...
@@ -421,6 +433,7 @@ def default_participant():
"cl_client_type": "lighthouse",
"cl_client_type": "lighthouse",
"cl_client_image": "",
"cl_client_image": "",
"cl_client_log_level": "",
"cl_client_log_level": "",
"cl_split_mode_enabled": False,
"beacon_extra_params": [],
"beacon_extra_params": [],
"beacon_extra_labels": {},
"beacon_extra_labels": {},
"validator_extra_params": [],
"validator_extra_params": [],
...
...
src/participant_network.star
View file @
cb33648d
...
@@ -340,6 +340,7 @@ def launch_participant_network(
...
@@ -340,6 +340,7 @@ def launch_participant_network(
participant.validator_extra_params,
participant.validator_extra_params,
participant.beacon_extra_labels,
participant.beacon_extra_labels,
participant.validator_extra_labels,
participant.validator_extra_labels,
participant.cl_split_mode_enabled,
)
)
else:
else:
boot_cl_client_ctx = all_cl_client_contexts
boot_cl_client_ctx = all_cl_client_contexts
...
@@ -369,6 +370,7 @@ def launch_participant_network(
...
@@ -369,6 +370,7 @@ def launch_participant_network(
participant.validator_extra_params,
participant.validator_extra_params,
participant.beacon_extra_labels,
participant.beacon_extra_labels,
participant.validator_extra_labels,
participant.validator_extra_labels,
participant.cl_split_mode_enabled,
)
)
# Add participant cl additional prometheus labels
# Add participant cl additional prometheus labels
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment