Skip to content

Commit

Permalink
fix: blobscan redis dependency (#712)
Browse files Browse the repository at this point in the history
  • Loading branch information
barnabasbusa authored Jul 31, 2024
1 parent a4ba9a6 commit 0ed1c9c
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 28 deletions.
2 changes: 1 addition & 1 deletion .github/tests/mix-with-tools-minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ additional_services:
- prometheus_grafana
- goomy_blob
- custom_flood
#- blobscan
- blobscan
- blockscout
- dugtrio
- blutgang
Expand Down
2 changes: 1 addition & 1 deletion .github/tests/mix-with-tools.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ additional_services:
- prometheus_grafana
- goomy_blob
- custom_flood
# - blobscan
- blobscan
- blockscout
- dugtrio
- blutgang
Expand Down
1 change: 1 addition & 0 deletions main.star
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,7 @@ def run(plan, args={}):
all_cl_contexts,
all_el_contexts,
network_id,
network_params,
persistent,
global_node_selectors,
args_with_right_defaults.port_publisher,
Expand Down
84 changes: 58 additions & 26 deletions src/blobscan/blobscan_launcher.star
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
shared_utils = import_module("../shared_utils/shared_utils.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")

WEB_SERVICE_NAME = "blobscan-web"
API_SERVICE_NAME = "blobscan-api"
INDEXER_SERVICE_NAME = "blobscan-indexer"

SECRET_KEY = "supersecure"
WEB_HTTP_PORT_NUMBER = 3000
API_HTTP_PORT_NUMBER = 3001

Expand Down Expand Up @@ -51,22 +52,27 @@ POSTGRES_MAX_CPU = 1000
POSTGRES_MIN_MEMORY = 32
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(
plan,
cl_contexts,
el_contexts,
chain_id,
network_id,
network_params,
persistent,
global_node_selectors,
port_publisher,
additional_service_index,
):
node_selectors = global_node_selectors
beacon_node_rpc_uri = "{0}".format(cl_contexts[0].beacon_http_url)
execution_node_rpc_uri = "http://{0}:{1}".format(
el_contexts[0].ip_addr, el_contexts[0].rpc_port_num
)
execution_node_rpc_uri = "{0}".format(el_contexts[0].rpc_http_url)

postgres_output = postgres.run(
plan,
Expand All @@ -78,10 +84,23 @@ def launch_blobscan(
persistent=persistent,
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(
network_id,
postgres_output.url,
beacon_node_rpc_uri,
chain_id,
network_params.network,
redis_output.url,
node_selectors,
port_publisher,
additional_service_index,
Expand All @@ -94,8 +113,9 @@ def launch_blobscan(

web_config = get_web_config(
postgres_output.url,
network_params.network,
beacon_node_rpc_uri,
chain_id,
execution_node_rpc_uri,
node_selectors,
port_publisher,
additional_service_index,
Expand All @@ -104,17 +124,19 @@ def launch_blobscan(

indexer_config = get_indexer_config(
beacon_node_rpc_uri,
execution_node_rpc_uri,
blobscan_api_url,
execution_node_rpc_uri,
network_params.network,
node_selectors,
)
plan.add_service(INDEXER_SERVICE_NAME, indexer_config)


def get_api_config(
database_url,
beacon_node_rpc,
chain_id,
network_id,
postgres_url,
network_name,
redis_url,
node_selectors,
port_publisher,
additional_service_index,
Expand All @@ -133,11 +155,15 @@ def get_api_config(
ports=API_PORTS,
public_ports=public_ports,
env_vars={
"BEACON_NODE_ENDPOINT": beacon_node_rpc,
"CHAIN_ID": chain_id,
"DATABASE_URL": database_url,
"SECRET_KEY": "supersecret",
"CHAIN_ID": network_id,
"DATABASE_URL": postgres_url,
"REDIS_URI": redis_url,
"SECRET_KEY": SECRET_KEY,
"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"],
ready_conditions=ReadyCondition(
Expand All @@ -160,9 +186,10 @@ def get_api_config(


def get_web_config(
database_url,
postgres_url,
network_name,
beacon_node_rpc,
chain_id,
execution_node_rpc,
node_selectors,
port_publisher,
additional_service_index,
Expand All @@ -184,11 +211,12 @@ def get_web_config(
ports=WEB_PORTS,
public_ports=public_ports,
env_vars={
"DATABASE_URL": database_url,
"SECRET_KEY": "supersecret",
"NEXT_PUBLIC_NETWORK_NAME": "devnet",
"BEACON_NODE_ENDPOINT": beacon_node_rpc,
"CHAIN_ID": chain_id,
"DATABASE_URL": postgres_url,
"NEXT_PUBLIC_NETWORK_NAME": network_name
if network_name in constants.PUBLIC_NETWORKS
else "devnet",
"SECRET_KEY": SECRET_KEY,
"POSTGRES_STORAGE_ENABLED": "true",
},
cmd=["web"],
min_cpu=WEB_MIN_CPU,
Expand All @@ -201,19 +229,23 @@ def get_web_config(

def get_indexer_config(
beacon_node_rpc,
execution_node_rpc,
blobscan_api_url,
execution_node_rpc,
network_name,
node_selectors,
):
IMAGE_NAME = "blossomlabs/blobscan-indexer:master"

return ServiceConfig(
image=IMAGE_NAME,
env_vars={
"SECRET_KEY": "supersecret",
"BEACON_NODE_ENDPOINT": beacon_node_rpc,
"BLOBSCAN_API_ENDPOINT": blobscan_api_url,
"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,
cmd=[" && ".join(["sleep 90", "/app/blob-indexer"])],
Expand Down

0 comments on commit 0ed1c9c

Please sign in to comment.