Commit 0ed1c9c8 authored by Barnabas Busa's avatar Barnabas Busa Committed by GitHub

fix: blobscan redis dependency (#712)

parent a4ba9a65
...@@ -22,7 +22,7 @@ additional_services: ...@@ -22,7 +22,7 @@ additional_services:
- prometheus_grafana - prometheus_grafana
- goomy_blob - goomy_blob
- custom_flood - custom_flood
#- blobscan - blobscan
- blockscout - blockscout
- dugtrio - dugtrio
- blutgang - blutgang
......
...@@ -22,7 +22,7 @@ additional_services: ...@@ -22,7 +22,7 @@ additional_services:
- prometheus_grafana - prometheus_grafana
- goomy_blob - goomy_blob
- custom_flood - custom_flood
# - blobscan - blobscan
- blockscout - blockscout
- dugtrio - dugtrio
- blutgang - blutgang
......
...@@ -527,6 +527,7 @@ def run(plan, args={}): ...@@ -527,6 +527,7 @@ def run(plan, args={}):
all_cl_contexts, all_cl_contexts,
all_el_contexts, all_el_contexts,
network_id, network_id,
network_params,
persistent, persistent,
global_node_selectors, global_node_selectors,
args_with_right_defaults.port_publisher, args_with_right_defaults.port_publisher,
......
shared_utils = import_module("../shared_utils/shared_utils.star") shared_utils = import_module("../shared_utils/shared_utils.star")
postgres = import_module("github.com/kurtosis-tech/postgres-package/main.star") postgres = import_module("github.com/kurtosis-tech/postgres-package/main.star")
redis = import_module("github.com/kurtosis-tech/redis-package/main.star")
constants = import_module("../package_io/constants.star") constants = import_module("../package_io/constants.star")
WEB_SERVICE_NAME = "blobscan-web" WEB_SERVICE_NAME = "blobscan-web"
API_SERVICE_NAME = "blobscan-api" API_SERVICE_NAME = "blobscan-api"
INDEXER_SERVICE_NAME = "blobscan-indexer" INDEXER_SERVICE_NAME = "blobscan-indexer"
SECRET_KEY = "supersecure"
WEB_HTTP_PORT_NUMBER = 3000 WEB_HTTP_PORT_NUMBER = 3000
API_HTTP_PORT_NUMBER = 3001 API_HTTP_PORT_NUMBER = 3001
...@@ -51,12 +52,19 @@ POSTGRES_MAX_CPU = 1000 ...@@ -51,12 +52,19 @@ POSTGRES_MAX_CPU = 1000
POSTGRES_MIN_MEMORY = 32 POSTGRES_MIN_MEMORY = 32
POSTGRES_MAX_MEMORY = 1024 POSTGRES_MAX_MEMORY = 1024
# The min/max CPU/memory that redis can use
REDIS_MIN_CPU = 10
REDIS_MAX_CPU = 1000
REDIS_MIN_MEMORY = 32
REDIS_MAX_MEMORY = 1024
def launch_blobscan( def launch_blobscan(
plan, plan,
cl_contexts, cl_contexts,
el_contexts, el_contexts,
chain_id, network_id,
network_params,
persistent, persistent,
global_node_selectors, global_node_selectors,
port_publisher, port_publisher,
...@@ -64,9 +72,7 @@ def launch_blobscan( ...@@ -64,9 +72,7 @@ def launch_blobscan(
): ):
node_selectors = global_node_selectors node_selectors = global_node_selectors
beacon_node_rpc_uri = "{0}".format(cl_contexts[0].beacon_http_url) beacon_node_rpc_uri = "{0}".format(cl_contexts[0].beacon_http_url)
execution_node_rpc_uri = "http://{0}:{1}".format( execution_node_rpc_uri = "{0}".format(el_contexts[0].rpc_http_url)
el_contexts[0].ip_addr, el_contexts[0].rpc_port_num
)
postgres_output = postgres.run( postgres_output = postgres.run(
plan, plan,
...@@ -78,10 +84,23 @@ def launch_blobscan( ...@@ -78,10 +84,23 @@ def launch_blobscan(
persistent=persistent, persistent=persistent,
node_selectors=node_selectors, node_selectors=node_selectors,
) )
redis_output = redis.run(
plan,
service_name="blobscan-redis",
min_cpu=REDIS_MIN_CPU,
max_cpu=REDIS_MAX_CPU,
min_memory=REDIS_MIN_MEMORY,
max_memory=REDIS_MAX_MEMORY,
persistent=persistent,
node_selectors=node_selectors,
)
api_config = get_api_config( api_config = get_api_config(
network_id,
postgres_output.url, postgres_output.url,
beacon_node_rpc_uri, network_params.network,
chain_id, redis_output.url,
node_selectors, node_selectors,
port_publisher, port_publisher,
additional_service_index, additional_service_index,
...@@ -94,8 +113,9 @@ def launch_blobscan( ...@@ -94,8 +113,9 @@ def launch_blobscan(
web_config = get_web_config( web_config = get_web_config(
postgres_output.url, postgres_output.url,
network_params.network,
beacon_node_rpc_uri, beacon_node_rpc_uri,
chain_id, execution_node_rpc_uri,
node_selectors, node_selectors,
port_publisher, port_publisher,
additional_service_index, additional_service_index,
...@@ -104,17 +124,19 @@ def launch_blobscan( ...@@ -104,17 +124,19 @@ def launch_blobscan(
indexer_config = get_indexer_config( indexer_config = get_indexer_config(
beacon_node_rpc_uri, beacon_node_rpc_uri,
execution_node_rpc_uri,
blobscan_api_url, blobscan_api_url,
execution_node_rpc_uri,
network_params.network,
node_selectors, node_selectors,
) )
plan.add_service(INDEXER_SERVICE_NAME, indexer_config) plan.add_service(INDEXER_SERVICE_NAME, indexer_config)
def get_api_config( def get_api_config(
database_url, network_id,
beacon_node_rpc, postgres_url,
chain_id, network_name,
redis_url,
node_selectors, node_selectors,
port_publisher, port_publisher,
additional_service_index, additional_service_index,
...@@ -133,11 +155,15 @@ def get_api_config( ...@@ -133,11 +155,15 @@ def get_api_config(
ports=API_PORTS, ports=API_PORTS,
public_ports=public_ports, public_ports=public_ports,
env_vars={ env_vars={
"BEACON_NODE_ENDPOINT": beacon_node_rpc, "CHAIN_ID": network_id,
"CHAIN_ID": chain_id, "DATABASE_URL": postgres_url,
"DATABASE_URL": database_url, "REDIS_URI": redis_url,
"SECRET_KEY": "supersecret", "SECRET_KEY": SECRET_KEY,
"BLOBSCAN_API_PORT": str(API_HTTP_PORT_NUMBER), "BLOBSCAN_API_PORT": str(API_HTTP_PORT_NUMBER),
"POSTGRES_STORAGE_ENABLED": "true",
"NETWORK_NAME": network_name
if network_name in constants.PUBLIC_NETWORKS
else "devnet",
}, },
cmd=["api"], cmd=["api"],
ready_conditions=ReadyCondition( ready_conditions=ReadyCondition(
...@@ -160,9 +186,10 @@ def get_api_config( ...@@ -160,9 +186,10 @@ def get_api_config(
def get_web_config( def get_web_config(
database_url, postgres_url,
network_name,
beacon_node_rpc, beacon_node_rpc,
chain_id, execution_node_rpc,
node_selectors, node_selectors,
port_publisher, port_publisher,
additional_service_index, additional_service_index,
...@@ -184,11 +211,12 @@ def get_web_config( ...@@ -184,11 +211,12 @@ def get_web_config(
ports=WEB_PORTS, ports=WEB_PORTS,
public_ports=public_ports, public_ports=public_ports,
env_vars={ env_vars={
"DATABASE_URL": database_url, "DATABASE_URL": postgres_url,
"SECRET_KEY": "supersecret", "NEXT_PUBLIC_NETWORK_NAME": network_name
"NEXT_PUBLIC_NETWORK_NAME": "devnet", if network_name in constants.PUBLIC_NETWORKS
"BEACON_NODE_ENDPOINT": beacon_node_rpc, else "devnet",
"CHAIN_ID": chain_id, "SECRET_KEY": SECRET_KEY,
"POSTGRES_STORAGE_ENABLED": "true",
}, },
cmd=["web"], cmd=["web"],
min_cpu=WEB_MIN_CPU, min_cpu=WEB_MIN_CPU,
...@@ -201,8 +229,9 @@ def get_web_config( ...@@ -201,8 +229,9 @@ def get_web_config(
def get_indexer_config( def get_indexer_config(
beacon_node_rpc, beacon_node_rpc,
execution_node_rpc,
blobscan_api_url, blobscan_api_url,
execution_node_rpc,
network_name,
node_selectors, node_selectors,
): ):
IMAGE_NAME = "blossomlabs/blobscan-indexer:master" IMAGE_NAME = "blossomlabs/blobscan-indexer:master"
...@@ -210,10 +239,13 @@ def get_indexer_config( ...@@ -210,10 +239,13 @@ def get_indexer_config(
return ServiceConfig( return ServiceConfig(
image=IMAGE_NAME, image=IMAGE_NAME,
env_vars={ env_vars={
"SECRET_KEY": "supersecret", "BEACON_NODE_ENDPOINT": beacon_node_rpc,
"BLOBSCAN_API_ENDPOINT": blobscan_api_url, "BLOBSCAN_API_ENDPOINT": blobscan_api_url,
"EXECUTION_NODE_ENDPOINT": execution_node_rpc, "EXECUTION_NODE_ENDPOINT": execution_node_rpc,
"BEACON_NODE_ENDPOINT": beacon_node_rpc, "NETWORK_NAME": network_name
if network_name in constants.PUBLIC_NETWORKS
else "devnet",
"SECRET_KEY": SECRET_KEY,
}, },
entrypoint=ENTRYPOINT_ARGS, entrypoint=ENTRYPOINT_ARGS,
cmd=[" && ".join(["sleep 90", "/app/blob-indexer"])], cmd=[" && ".join(["sleep 90", "/app/blob-indexer"])],
......
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