From 181dd04c2db17c58cb9370b0d24e12e4c191a13d Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Thu, 29 Feb 2024 18:21:51 +0100 Subject: [PATCH] fix: use the cl as the default validator image if none are defined (#503) This PR ensures that the validator image will be the same as CL image (if one is defined) and only fallback to the default validator image if there is no validator image nor beacon image is defined. --- .github/tests/dencun-devnet-12.yaml | 12 ------------ .github/tests/dencun-genesis.yaml | 12 ------------ .github/tests/ephemery.yaml | 12 ------------ .github/tests/mev.yaml | 2 +- .github/tests/mix-persistence-k8s.yaml | 1 - .github/tests/mix-persistence.yaml | 1 - .github/tests/mix-with-tools-mev.yaml | 2 +- .github/tests/sepolia-mix.yaml | 2 +- .github/tests/split-nimbus.yaml | 6 ------ src/package_io/input_parser.star | 13 ++++++++++++- src/participant_network.star | 4 ++-- 11 files changed, 17 insertions(+), 50 deletions(-) diff --git a/.github/tests/dencun-devnet-12.yaml b/.github/tests/dencun-devnet-12.yaml index 755ae74c6..7d63d6233 100644 --- a/.github/tests/dencun-devnet-12.yaml +++ b/.github/tests/dencun-devnet-12.yaml @@ -1,28 +1,16 @@ participants: - el_client_type: geth - el_client_image: ethpandaops/geth:master cl_client_type: teku - cl_client_image: ethpandaops/teku:master - el_client_type: nethermind - el_client_image: ethpandaops/nethermind:master cl_client_type: prysm - cl_client_image: gcr.io/prysmaticlabs/prysm/beacon-chain:latest - el_client_type: erigon - el_client_image: ethpandaops/erigon:devel cl_client_type: nimbus - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: besu - el_client_image: ethpandaops/besu:main cl_client_type: lighthouse - cl_client_image: ethpandaops/lighthouse:unstable - el_client_type: reth - el_client_image: ethpandaops/reth:main cl_client_type: lodestar - cl_client_image: ethpandaops/lodestar:unstable - el_client_type: ethereumjs - el_client_image: ethpandaops/ethereumjs:master cl_client_type: teku - cl_client_image: ethpandaops/teku:master network_params: network: "dencun-devnet-12" additional_services: [] diff --git a/.github/tests/dencun-genesis.yaml b/.github/tests/dencun-genesis.yaml index 1c38e6597..6c7709760 100644 --- a/.github/tests/dencun-genesis.yaml +++ b/.github/tests/dencun-genesis.yaml @@ -1,28 +1,16 @@ participants: - el_client_type: geth - el_client_image: ethpandaops/geth:master cl_client_type: teku - cl_client_image: ethpandaops/teku:master - el_client_type: nethermind - el_client_image: ethpandaops/nethermind:master cl_client_type: prysm - cl_client_image: gcr.io/prysmaticlabs/prysm/beacon-chain:latest - el_client_type: erigon - el_client_image: ethpandaops/erigon:devel cl_client_type: nimbus - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: besu - el_client_image: ethpandaops/besu:main cl_client_type: lighthouse - cl_client_image: ethpandaops/lighthouse:unstable - el_client_type: reth - el_client_image: ethpandaops/reth:main cl_client_type: lodestar - cl_client_image: ethpandaops/lodestar:unstable - el_client_type: ethereumjs - el_client_image: ethpandaops/ethereumjs:master cl_client_type: teku - cl_client_image: ethpandaops/teku:master network_params: deneb_fork_epoch: 0 additional_services: [] diff --git a/.github/tests/ephemery.yaml b/.github/tests/ephemery.yaml index ac54f2ed9..e9b93177f 100644 --- a/.github/tests/ephemery.yaml +++ b/.github/tests/ephemery.yaml @@ -1,28 +1,16 @@ participants: - el_client_type: geth - el_client_image: ethpandaops/geth:master cl_client_type: teku - cl_client_image: ethpandaops/teku:master - el_client_type: nethermind - el_client_image: ethpandaops/nethermind:master cl_client_type: prysm - cl_client_image: gcr.io/prysmaticlabs/prysm/beacon-chain:latest - el_client_type: erigon - el_client_image: ethpandaops/erigon:devel cl_client_type: nimbus - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: besu - el_client_image: ethpandaops/besu:main cl_client_type: lighthouse - cl_client_image: ethpandaops/lighthouse:unstable - el_client_type: reth - el_client_image: ethpandaops/reth:main cl_client_type: lodestar - cl_client_image: ethpandaops/lodestar:unstable - el_client_type: ethereumjs - el_client_image: ethpandaops/ethereumjs:master cl_client_type: teku - cl_client_image: ethpandaops/teku:master network_params: network: "ephemery" additional_services: [] diff --git a/.github/tests/mev.yaml b/.github/tests/mev.yaml index 966cbc1ac..f1d515051 100644 --- a/.github/tests/mev.yaml +++ b/.github/tests/mev.yaml @@ -9,6 +9,6 @@ additional_services: - prometheus_grafana mev_params: launch_custom_flood: true - mev_relay_image: flashbots/mev-boost-relay:0.28.0a2 + mev_relay_image: flashbots/mev-boost-relay:latest network_params: seconds_per_slot: 3 diff --git a/.github/tests/mix-persistence-k8s.yaml b/.github/tests/mix-persistence-k8s.yaml index 4c6d8443e..6b83832a9 100644 --- a/.github/tests/mix-persistence-k8s.yaml +++ b/.github/tests/mix-persistence-k8s.yaml @@ -6,7 +6,6 @@ participants: cl_client_type: prysm - el_client_type: erigon cl_client_type: nimbus - cl_client_image: ethpandaops/nimbus:unstable use_separate_validator_client: true - el_client_type: besu cl_client_type: lighthouse diff --git a/.github/tests/mix-persistence.yaml b/.github/tests/mix-persistence.yaml index 4c6d8443e..6b83832a9 100644 --- a/.github/tests/mix-persistence.yaml +++ b/.github/tests/mix-persistence.yaml @@ -6,7 +6,6 @@ participants: cl_client_type: prysm - el_client_type: erigon cl_client_type: nimbus - cl_client_image: ethpandaops/nimbus:unstable use_separate_validator_client: true - el_client_type: besu cl_client_type: lighthouse diff --git a/.github/tests/mix-with-tools-mev.yaml b/.github/tests/mix-with-tools-mev.yaml index 51aaccc45..2c287081f 100644 --- a/.github/tests/mix-with-tools-mev.yaml +++ b/.github/tests/mix-with-tools-mev.yaml @@ -26,5 +26,5 @@ ethereum_metrics_exporter_enabled: true snooper_enabled: true mev_type: full mev_params: - mev_relay_image: flashbots/mev-boost-relay:0.27 + mev_relay_image: flashbots/mev-boost-relay:latest persistent: True diff --git a/.github/tests/sepolia-mix.yaml b/.github/tests/sepolia-mix.yaml index 768ee7e57..9376be804 100644 --- a/.github/tests/sepolia-mix.yaml +++ b/.github/tests/sepolia-mix.yaml @@ -12,5 +12,5 @@ participants: - el_client_type: ethereumjs cl_client_type: nimbus network_params: - network: "sepolia" + network: sepolia additional_services: [] diff --git a/.github/tests/split-nimbus.yaml b/.github/tests/split-nimbus.yaml index 21720cf85..d41d27d0b 100644 --- a/.github/tests/split-nimbus.yaml +++ b/.github/tests/split-nimbus.yaml @@ -1,27 +1,21 @@ participants: - el_client_type: geth cl_client_type: nimbus - cl_client_image: ethpandaops/nimbus:unstable use_separate_validator_client: true validator_count: 0 - el_client_type: nethermind cl_client_type: nimbus use_separate_validator_client: true - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: erigon cl_client_type: nimbus use_separate_validator_client: true - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: besu cl_client_type: nimbus use_separate_validator_client: true - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: reth cl_client_type: nimbus use_separate_validator_client: true - cl_client_image: ethpandaops/nimbus:unstable - el_client_type: ethereumjs cl_client_type: nimbus use_separate_validator_client: true - cl_client_image: ethpandaops/nimbus:unstable additional_services: [] diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index e29b91028..7b4e050dd 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -392,7 +392,18 @@ def parse_network_params(input_args): validator_client_image = participant["validator_client_image"] if validator_client_image == "": - default_image = DEFAULT_VC_IMAGES.get(validator_client_type, "") + if cl_image == "": + # If the validator client image is also empty, default to the image for the chosen CL client + default_image = DEFAULT_VC_IMAGES.get(validator_client_type, "") + else: + if cl_client_type == "prysm": + default_image = cl_image.replace("beacon-chain", "validator") + elif cl_client_type == "nimbus": + default_image = cl_image.replace( + "nimbus-eth2", "nimbus-validator-client" + ) + else: + default_image = cl_image if default_image == "": fail( "{0} received an empty image name and we don't have a default for it".format( diff --git a/src/participant_network.star b/src/participant_network.star index 2364a46d6..696ee53a5 100644 --- a/src/participant_network.star +++ b/src/participant_network.star @@ -775,8 +775,8 @@ def launch_participant_network( launcher=validator_client.new_validator_client_launcher( el_cl_genesis_data=el_cl_data ), - service_name="validator-client-{0}-{1}".format( - index_str, validator_client_type + service_name="vc-{0}-{1}-{2}".format( + index_str, validator_client_type, el_client_type ), validator_client_type=validator_client_type, image=participant.validator_client_image,