Commit 777ec065 authored by ZT's avatar ZT Committed by GitHub

feat: Add-blockscout_params (#838)

fix #837 
the default blockscout image version does not work on my machine. 
so i added the blockscout_params for blockscout service. now user can
customize the image versions they want to use.
it contains two params:
```yaml
blockscout_params:
  # blockscout docker image to use
  # Defaults to the latest image
  image: "blockscout/blockscout:latest"
  # blockscout smart contract verifier image to use
  # Defaults to ghcr.io/blockscout/smart-contract-verifier:v1.9.0
  verif_image: "ghcr.io/blockscout/smart-contract-verifier:v1.9.0"
```

i already tested it on my machine and it worke well.

---------
Co-authored-by: default avatarBarnabas Busa <barnabas.busa@ethereum.org>
Co-authored-by: default avatarBarnabas Busa <busa.barnabas@gmail.com>
parent 3ba9e51f
......@@ -634,6 +634,15 @@ additional_services:
- apache
- tracoor
# Configuration place for blockscout explorer - https://github.com/blockscout/blockscout
blockscout_params:
# blockscout docker image to use
# Defaults to blockscout/blockscout:6.8.0
image: "blockscout/blockscout:6.8.0"
# blockscout smart contract verifier image to use
# Defaults to ghcr.io/blockscout/smart-contract-verifier:v1.9.0
verif_image: "ghcr.io/blockscout/smart-contract-verifier:v1.9.0"
# Configuration place for dora the explorer - https://github.com/ethpandaops/dora
dora_params:
# Dora docker image to use
......
......@@ -508,6 +508,7 @@ def run(plan, args={}):
plan.print("Successfully launched beacon metrics gazer")
elif additional_service == "blockscout":
plan.print("Launching blockscout")
blockscout_params = args_with_right_defaults.blockscout_params
blockscout_sc_verif_url = blockscout.launch_blockscout(
plan,
all_el_contexts,
......@@ -516,6 +517,7 @@ def run(plan, args={}):
args_with_right_defaults.port_publisher,
index,
args_with_right_defaults.docker_cache_params,
blockscout_params,
)
plan.print("Successfully launched blockscout")
elif additional_service == "dora":
......
......@@ -2,8 +2,6 @@ shared_utils = import_module("../shared_utils/shared_utils.star")
constants = import_module("../package_io/constants.star")
postgres = import_module("github.com/kurtosis-tech/postgres-package/main.star")
IMAGE_NAME_BLOCKSCOUT = "blockscout/blockscout:6.8.0"
IMAGE_NAME_BLOCKSCOUT_VERIF = "ghcr.io/blockscout/smart-contract-verifier:v1.9.0"
POSTGRES_IMAGE = "library/postgres:alpine"
SERVICE_NAME_BLOCKSCOUT = "blockscout"
......@@ -46,6 +44,7 @@ def launch_blockscout(
port_publisher,
additional_service_index,
docker_cache_params,
blockscout_params,
):
postgres_output = postgres.run(
plan,
......@@ -68,6 +67,7 @@ def launch_blockscout(
port_publisher,
additional_service_index,
docker_cache_params,
blockscout_params,
)
verif_service_name = "{}-verif".format(SERVICE_NAME_BLOCKSCOUT)
verif_service = plan.add_service(verif_service_name, config_verif)
......@@ -84,6 +84,7 @@ def launch_blockscout(
port_publisher,
additional_service_index,
docker_cache_params,
blockscout_params,
)
blockscout_service = plan.add_service(SERVICE_NAME_BLOCKSCOUT, config_backend)
plan.print(blockscout_service)
......@@ -96,7 +97,11 @@ def launch_blockscout(
def get_config_verif(
node_selectors, port_publisher, additional_service_index, docker_cache_params
node_selectors,
port_publisher,
additional_service_index,
docker_cache_params,
blockscout_params,
):
public_ports = shared_utils.get_additional_service_standard_public_port(
port_publisher,
......@@ -105,6 +110,7 @@ def get_config_verif(
0,
)
IMAGE_NAME_BLOCKSCOUT_VERIF = blockscout_params.verif_image
return ServiceConfig(
image=shared_utils.docker_cache_image_calc(
docker_cache_params,
......@@ -134,6 +140,7 @@ def get_config_backend(
port_publisher,
additional_service_index,
docker_cache_params,
blockscout_params,
):
database_url = "{protocol}://{user}:{password}@{hostname}:{port}/{database}".format(
protocol="postgresql",
......@@ -151,6 +158,8 @@ def get_config_backend(
1,
)
IMAGE_NAME_BLOCKSCOUT = blockscout_params.image
return ServiceConfig(
image=shared_utils.docker_cache_image_calc(
docker_cache_params,
......
......@@ -75,6 +75,7 @@ ATTR_TO_BE_SKIPPED_AT_ROOT = (
"network_params",
"participants",
"mev_params",
"blockscout_params",
"dora_params",
"docker_cache_params",
"assertoor_params",
......@@ -92,6 +93,7 @@ def input_parser(plan, input_args):
sanity_check.sanity_check(plan, input_args)
result = parse_network_params(plan, input_args)
# add default eth2 input params
result["blockscout_params"] = get_default_blockscout_params()
result["dora_params"] = get_default_dora_params()
result["docker_cache_params"] = get_default_docker_cache_params()
result["mev_params"] = get_default_mev_params(
......@@ -136,6 +138,10 @@ def input_parser(plan, input_args):
if attr not in ATTR_TO_BE_SKIPPED_AT_ROOT and attr in input_args:
result[attr] = value
# custom eth2 attributes config
elif attr == "blockscout_params":
for sub_attr in input_args["blockscout_params"]:
sub_value = input_args["blockscout_params"][sub_attr]
result["blockscout_params"][sub_attr] = sub_value
elif attr == "dora_params":
for sub_attr in input_args["dora_params"]:
sub_value = input_args["dora_params"][sub_attr]
......@@ -355,6 +361,10 @@ def input_parser(plan, input_args):
)
if result["mev_params"]
else None,
blockscout_params=struct(
image=result["blockscout_params"]["image"],
verif_image=result["blockscout_params"]["verif_image"],
),
dora_params=struct(
image=result["dora_params"]["image"],
env=result["dora_params"]["env"],
......@@ -999,6 +1009,13 @@ def default_participant():
}
def get_default_blockscout_params():
return {
"image": "blockscout/blockscout:6.8.0",
"verif_image": "ghcr.io/blockscout/smart-contract-verifier:v1.9.0",
}
def get_default_dora_params():
return {
"image": "ethpandaops/dora:latest",
......
......@@ -171,6 +171,10 @@ SUBCATEGORY_PARAMS = {
"devnet_repo",
"prefunded_accounts",
],
"blockscout_params": [
"image",
"verif_image",
],
"dora_params": [
"image",
"env",
......
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