From d3c26948fc886835e757c1dddf57ecd01fba2931 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Tue, 29 Aug 2023 16:49:09 -0500 Subject: [PATCH] Add eth-api-proxy to mainnet-eth stack. (#514) * Add eth-api-proxy to mainnet-eth stack. --- .../docker-compose-mainnet-eth-api-proxy.yml | 15 +++++++++++++++ app/data/config/mainnet-eth-api-proxy/ethpxy.env | 6 ++++++ .../container-build/cerc-eth-api-proxy/build.sh | 9 +++++++++ app/data/stacks/mainnet-eth/deploy/commands.py | 2 +- app/data/stacks/mainnet-eth/stack.yml | 3 +++ 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 app/data/compose/docker-compose-mainnet-eth-api-proxy.yml create mode 100644 app/data/config/mainnet-eth-api-proxy/ethpxy.env create mode 100755 app/data/container-build/cerc-eth-api-proxy/build.sh diff --git a/app/data/compose/docker-compose-mainnet-eth-api-proxy.yml b/app/data/compose/docker-compose-mainnet-eth-api-proxy.yml new file mode 100644 index 00000000..8e3b0845 --- /dev/null +++ b/app/data/compose/docker-compose-mainnet-eth-api-proxy.yml @@ -0,0 +1,15 @@ +version: '3.8' + +services: + redis: + hostname: mainnet-eth-api-proxy-redis + image: redis:7-alpine + command: redis-server --save "" --appendonly no --maxmemory-policy allkeys-lru --maxmemory 1G + + eth-api-proxy: + hostname: mainnet-eth-api-proxy + image: cerc/eth-api-proxy:local + env_file: + - ../config/mainnet-eth-api-proxy/ethpxy.env + ports: + - 8547 diff --git a/app/data/config/mainnet-eth-api-proxy/ethpxy.env b/app/data/config/mainnet-eth-api-proxy/ethpxy.env new file mode 100644 index 00000000..aeed33d1 --- /dev/null +++ b/app/data/config/mainnet-eth-api-proxy/ethpxy.env @@ -0,0 +1,6 @@ +CERC_ETHPXY_LISTEN_PORT=8547 +CERC_ETHPXY_LISTEN_ADDR='0.0.0.0' +CERC_ETHPXY_REDIS_URL='redis://mainnet-eth-api-proxy-redis:6379' +CERC_ETHPXY_REDIS_MAX_AGE=120000 +CERC_ETHPXY_GETH_WS_URL='ws://mainnet-eth-geth-1:8546' +CERC_ETHPXY_GETH_HTTP_URL='http://mainnet-eth-geth-1:8545' diff --git a/app/data/container-build/cerc-eth-api-proxy/build.sh b/app/data/container-build/cerc-eth-api-proxy/build.sh new file mode 100755 index 00000000..e21e7f9d --- /dev/null +++ b/app/data/container-build/cerc-eth-api-proxy/build.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +# Build cerc/eth-api-proxy + +source ${CERC_CONTAINER_BASE_DIR}/build-base.sh + +# See: https://stackoverflow.com/a/246128/1701505 +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +docker build -t cerc/eth-api-proxy:local ${build_command_args} ${CERC_REPO_BASE_DIR}/eth-api-proxy diff --git a/app/data/stacks/mainnet-eth/deploy/commands.py b/app/data/stacks/mainnet-eth/deploy/commands.py index 09586aac..51e21a29 100644 --- a/app/data/stacks/mainnet-eth/deploy/commands.py +++ b/app/data/stacks/mainnet-eth/deploy/commands.py @@ -23,7 +23,7 @@ def setup(ctx): return None -def create(ctx): +def create(ctx, extra_args): # Generate the JWT secret and save to its config file secret = token_hex(32) jwt_file_path = ctx.deployment_dir.joinpath("data", "mainnet_eth_config_data", "jwtsecret") diff --git a/app/data/stacks/mainnet-eth/stack.yml b/app/data/stacks/mainnet-eth/stack.yml index be63e972..32497682 100644 --- a/app/data/stacks/mainnet-eth/stack.yml +++ b/app/data/stacks/mainnet-eth/stack.yml @@ -7,6 +7,7 @@ repos: - github.com/dboreham/foundry - git.vdb.to/cerc-io/keycloak-reg-api - git.vdb.to/cerc-io/keycloak-reg-ui + - github.com/vulcanize/eth-api-proxy containers: - cerc/go-ethereum - cerc/lighthouse @@ -16,8 +17,10 @@ containers: - cerc/webapp-base - cerc/keycloak-reg-api - cerc/keycloak-reg-ui + - cerc/eth-api-proxy pods: - mainnet-eth - mainnet-eth-keycloak - mainnet-eth-metrics + - mainnet-eth-api-proxy - foundry