From 365f295b1e86bbc8b5329ef8d090289f287bb294 Mon Sep 17 00:00:00 2001 From: prathamesh0 Date: Mon, 10 Apr 2023 19:22:18 +0530 Subject: [PATCH] Use env variable mapping in mobymask-v2 stack --- .../docker-compose-fixturenet-optimism.yml | 4 ++-- .../compose/docker-compose-mobymask-app.yml | 7 ++++++- .../compose/docker-compose-peer-test-app.yml | 3 +++ .../docker-compose-watcher-mobymask-v2.yml | 19 ++++++++++++++---- .../deploy-and-generate-invite.sh | 8 +++++++- .../watcher-mobymask-v2/mobymask-app-start.sh | 4 ++++ .../watcher-mobymask-v2/mobymask-params.env | 20 ++++++++++--------- .../watcher-mobymask-v2/optimism-params.env | 16 +++++++-------- .../watcher-mobymask-v2/start-server.sh | 6 ++++++ .../watcher-mobymask-v2/test-app-start.sh | 2 ++ 10 files changed, 64 insertions(+), 25 deletions(-) diff --git a/app/data/compose/docker-compose-fixturenet-optimism.yml b/app/data/compose/docker-compose-fixturenet-optimism.yml index 71eb819a..e2b2ae5b 100644 --- a/app/data/compose/docker-compose-fixturenet-optimism.yml +++ b/app/data/compose/docker-compose-fixturenet-optimism.yml @@ -19,7 +19,7 @@ services: L1_PRIV_KEY_2: ${L1_PRIV_KEY_2} # Waits for L1 endpoint to be up before running the script command: | - "./wait-for-it.sh -h ${L1_HOST:-$${DEFAULT-L1_HOST}} -p ${L1_PORT:-$${DEFAULT-L1_PORT}} -s -t 60 -- ./run.sh" + "./wait-for-it.sh -h ${L1_HOST:-$${DEFAULT_L1_HOST}} -p ${L1_PORT:-$${DEFAULT_L1_PORT}} -s -t 60 -- ./run.sh" volumes: - ../config/wait-for-it.sh:/app/packages/contracts-bedrock/wait-for-it.sh - ../container-build/cerc-optimism-contracts/hardhat-tasks/verify-contract-deployment.ts:/app/packages/contracts-bedrock/tasks/verify-contract-deployment.ts @@ -121,7 +121,7 @@ services: entrypoint: ["sh", "-c"] # Waits for L1 endpoint to be up before running the batcher command: | - "/wait-for-it.sh -h ${L1_HOST:-$${DEFAULT-L1_HOST}} -p ${L1_PORT:-$${DEFAULT-L1_PORT}} -s -t 60 -- /run-op-batcher.sh" + "/wait-for-it.sh -h ${L1_HOST:-$${DEFAULT_L1_HOST}} -p ${L1_PORT:-$${DEFAULT_L1_PORT}} -s -t 60 -- /run-op-batcher.sh" extra_hosts: - "host.docker.internal:host-gateway" diff --git a/app/data/compose/docker-compose-mobymask-app.yml b/app/data/compose/docker-compose-mobymask-app.yml index db95eeac..3dc142f1 100644 --- a/app/data/compose/docker-compose-mobymask-app.yml +++ b/app/data/compose/docker-compose-mobymask-app.yml @@ -6,12 +6,17 @@ services: image: cerc/mobymask-ui:local env_file: - ../config/watcher-mobymask-v2/mobymask-params.env + environment: + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + CHAIN_ID: ${CHAIN_ID} + DEPLOYED_CONTRACT: ${DEPLOYED_CONTRACT} + RELAY_NODES: ${RELAY_NODES} # Waits for watcher server to be up before app build # Required when running with watcher stack to get deployed contract address command: - sh - -c - - ./wait-for-it.sh -h $${WATCHER_HOST} -p $${WATCHER_PORT} -s -t 0 -- ./mobymask-app-start.sh + - ./wait-for-it.sh -h ${WATCHER_HOST:-$${DEFAULT_WATCHER_HOST}} -p ${WATCHER_PORT:-$${DEFAULT_WATCHER_PORT}} -s -t 0 -- ./mobymask-app-start.sh volumes: - ../config/wait-for-it.sh:/app/wait-for-it.sh - ../config/watcher-mobymask-v2/mobymask-app-config.json:/app/src/mobymask-app-config.json diff --git a/app/data/compose/docker-compose-peer-test-app.yml b/app/data/compose/docker-compose-peer-test-app.yml index 3ddbd308..a795473e 100644 --- a/app/data/compose/docker-compose-peer-test-app.yml +++ b/app/data/compose/docker-compose-peer-test-app.yml @@ -7,6 +7,9 @@ services: working_dir: /app/packages/test-app env_file: - ../config/watcher-mobymask-v2/mobymask-params.env + environment: + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + RELAY_NODES: ${RELAY_NODES} command: ["sh", "./test-app-start.sh"] volumes: - ../config/watcher-mobymask-v2/test-app-config.json:/app/packages/test-app/src/test-app-config.json diff --git a/app/data/compose/docker-compose-watcher-mobymask-v2.yml b/app/data/compose/docker-compose-watcher-mobymask-v2.yml index 2e014471..ea69886c 100644 --- a/app/data/compose/docker-compose-watcher-mobymask-v2.yml +++ b/app/data/compose/docker-compose-watcher-mobymask-v2.yml @@ -31,14 +31,19 @@ services: - ../config/watcher-mobymask-v2/optimism-params.env - ../config/watcher-mobymask-v2/mobymask-params.env environment: - - ENV=PROD + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + ENV: "PROD" + L2_GETH_RPC: ${L2_GETH_RPC} + PRIVATE_KEY_DEPLOYER: ${PRIVATE_KEY_DEPLOYER} + MOBYMASK_APP_BASE_URI: ${MOBYMASK_APP_BASE_URI} + DEPLOYED_CONTRACT: ${DEPLOYED_CONTRACT} # Waits for L2 Optimism Geth and Node servers to be up before deploying contract command: - sh - -c - | - ./wait-for-it.sh -h $${L2_GETH_HOST} -p $${L2_GETH_PORT} -s -t 0 && \ - ./wait-for-it.sh -h $${L2_NODE_HOST} -p $${L2_NODE_PORT} -s -t 0 && \ + ./wait-for-it.sh -h ${L2_GETH_HOST:-$${DEFAULT_L2_GETH_HOST}} -p ${L2_GETH_PORT:-$${DEFAULT_L2_GETH_PORT}} -s -t 0 && \ + ./wait-for-it.sh -h ${L2_NODE_HOST:-$${DEFAULT_L2_NODE_HOST}} -p ${L2_NODE_PORT:-$${DEFAULT_L2_NODE_PORT}} -s -t 0 && \ ./deploy-and-generate-invite.sh volumes: - ../config/wait-for-it.sh:/app/packages/server/wait-for-it.sh @@ -51,16 +56,22 @@ services: # Starts the mobymask-v2-watcher server mobymask-watcher-server: + image: cerc/watcher-mobymask-v2:local restart: unless-stopped depends_on: mobymask-watcher-db: condition: service_healthy mobymask: condition: service_completed_successfully - image: cerc/watcher-mobymask-v2:local env_file: - ../config/watcher-mobymask-v2/optimism-params.env - ../config/watcher-mobymask-v2/mobymask-params.env + environment: + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + L2_GETH_RPC: ${L2_GETH_RPC} + PRIVATE_KEY_PEER: ${PRIVATE_KEY_PEER} + ENABLE_PEER_L2_TXS: ${ENABLE_PEER_L2_TXS} + DEPLOYED_CONTRACT: ${DEPLOYED_CONTRACT} command: ["sh", "start-server.sh"] volumes: - ../config/watcher-mobymask-v2/watcher-config-template.toml:/app/packages/mobymask-v2-watcher/environments/watcher-config-template.toml diff --git a/app/data/config/watcher-mobymask-v2/deploy-and-generate-invite.sh b/app/data/config/watcher-mobymask-v2/deploy-and-generate-invite.sh index f0513910..094de21d 100755 --- a/app/data/config/watcher-mobymask-v2/deploy-and-generate-invite.sh +++ b/app/data/config/watcher-mobymask-v2/deploy-and-generate-invite.sh @@ -4,6 +4,12 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi +L2_GETH_RPC="${L2_GETH_RPC:-${DEFAULT_L2_GETH_RPC}}" +PRIVATE_KEY_DEPLOYER="${PRIVATE_KEY_DEPLOYER:-${DEFAULT_PRIVATE_KEY_DEPLOYER}}" + +MOBYMASK_APP_BASE_URI="${MOBYMASK_APP_BASE_URI:-${DEFAULT_MOBYMASK_APP_BASE_URI}}" +DEPLOYED_CONTRACT="${DEPLOYED_CONTRACT:-${DEFAULT_DEPLOYED_CONTRACT}}" + echo "Using L2 RPC endpoint ${L2_GETH_RPC}" if [ -f /geth-accounts/accounts.csv ]; then @@ -26,7 +32,7 @@ jq --arg baseURI "$MOBYMASK_APP_BASE_URI" '.baseURI = $baseURI' secrets.json > s export RPC_URL="${L2_GETH_RPC}" # Check if DEPLOYED_CONTRACT environment variable set to skip contract deployment -if [[ -n "$DEPLOYED_CONTRACT" ]]; then +if [ -n "$DEPLOYED_CONTRACT" ]; then echo "DEPLOYED_CONTRACT is set to '$DEPLOYED_CONTRACT'" echo "Exiting without deploying contract" exit 0 diff --git a/app/data/config/watcher-mobymask-v2/mobymask-app-start.sh b/app/data/config/watcher-mobymask-v2/mobymask-app-start.sh index 680e2e8a..fc38adb2 100755 --- a/app/data/config/watcher-mobymask-v2/mobymask-app-start.sh +++ b/app/data/config/watcher-mobymask-v2/mobymask-app-start.sh @@ -4,6 +4,10 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi +CHAIN_ID="${CHAIN_ID:-${DEFAULT_CHAIN_ID}}" +DEPLOYED_CONTRACT="${DEPLOYED_CONTRACT:-${DEFAULT_DEPLOYED_CONTRACT}}" +RELAY_NODES="${RELAY_NODES:-${DEFAULT_RELAY_NODES}}" + # Use config from mounted volume if available (when running web-app along with watcher stack) if [ -f /server/config.json ]; then echo "Merging config for deployed contract from mounted volume" diff --git a/app/data/config/watcher-mobymask-v2/mobymask-params.env b/app/data/config/watcher-mobymask-v2/mobymask-params.env index a8db6b4a..7d68e6a6 100644 --- a/app/data/config/watcher-mobymask-v2/mobymask-params.env +++ b/app/data/config/watcher-mobymask-v2/mobymask-params.env @@ -1,20 +1,22 @@ -# Change if pointing web app to external watcher endpoint -WATCHER_HOST="mobymask-watcher-server" -WATCHER_PORT=3001 -APP_WATCHER_URL="http://localhost:3001" +# Defaults + +# Watcher endpoint +DEFAULT_WATCHER_HOST="mobymask-watcher-server" +DEFAULT_WATCHER_PORT=3001 +DEFAULT_APP_WATCHER_URL="http://localhost:3001" # Base URI for mobymask-app (used for generating invite) -MOBYMASK_APP_BASE_URI="http://127.0.0.1:3002/#" +DEFAULT_MOBYMASK_APP_BASE_URI="http://127.0.0.1:3002/#" # Set to false for disabling watcher peer to send txs to L2 -ENABLE_PEER_L2_TXS=true +DEFAULT_ENABLE_PEER_L2_TXS=true # Set deployed MobyMask contract address to avoid deploying contract in stack # mobymask-app will use this contract address in config if run separately -DEPLOYED_CONTRACT= +DEFAULT_DEPLOYED_CONTRACT= # Chain ID is used by mobymask web-app for txs -CHAIN_ID=42069 +DEFAULT_CHAIN_ID=42069 # Set relay nodes to be used by web-apps -RELAY_NODES=["/ip4/127.0.0.1/tcp/9090/ws/p2p/12D3KooWSPCsVkHVyLQoCqhu2YRPvvM7o6r6NRYyLM5zeA6Uig5t"] +DEFAULT_RELAY_NODES=["/ip4/127.0.0.1/tcp/9090/ws/p2p/12D3KooWSPCsVkHVyLQoCqhu2YRPvvM7o6r6NRYyLM5zeA6Uig5t"] diff --git a/app/data/config/watcher-mobymask-v2/optimism-params.env b/app/data/config/watcher-mobymask-v2/optimism-params.env index 489dd879..54396d6b 100644 --- a/app/data/config/watcher-mobymask-v2/optimism-params.env +++ b/app/data/config/watcher-mobymask-v2/optimism-params.env @@ -1,13 +1,13 @@ -# Change if pointing to an external optimism geth endpoint +# Defaults # L2 endpoints -L2_GETH_RPC="http://op-geth:8545" -L2_GETH_HOST="op-geth" -L2_GETH_PORT=8545 +DEFAULT_L2_GETH_RPC="http://op-geth:8545" +DEFAULT_L2_GETH_HOST="op-geth" +DEFAULT_L2_GETH_PORT=8545 -L2_NODE_HOST="op-node" -L2_NODE_PORT=8547 +DEFAULT_L2_NODE_HOST="op-node" +DEFAULT_L2_NODE_PORT=8547 # Credentials for accounts to perform txs on L2 -PRIVATE_KEY_DEPLOYER= -PRIVATE_KEY_PEER= +DEFAULT_PRIVATE_KEY_DEPLOYER= +DEFAULT_PRIVATE_KEY_PEER= diff --git a/app/data/config/watcher-mobymask-v2/start-server.sh b/app/data/config/watcher-mobymask-v2/start-server.sh index 5597850b..93136f10 100755 --- a/app/data/config/watcher-mobymask-v2/start-server.sh +++ b/app/data/config/watcher-mobymask-v2/start-server.sh @@ -4,6 +4,12 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi +L2_GETH_RPC="${L2_GETH_RPC:-${DEFAULT_L2_GETH_RPC}}" +PRIVATE_KEY_PEER="${PRIVATE_KEY_PEER:-${DEFAULT_PRIVATE_KEY_PEER}}" + +ENABLE_PEER_L2_TXS="${ENABLE_PEER_L2_TXS:-${DEFAULT_ENABLE_PEER_L2_TXS}}" +DEPLOYED_CONTRACT="${DEPLOYED_CONTRACT:-${DEFAULT_DEPLOYED_CONTRACT}}" + echo "Using L2 RPC endpoint ${L2_GETH_RPC}" # Use contract address from environment variable or set from config.json in mounted volume diff --git a/app/data/config/watcher-mobymask-v2/test-app-start.sh b/app/data/config/watcher-mobymask-v2/test-app-start.sh index de6ccc7c..0d216a88 100755 --- a/app/data/config/watcher-mobymask-v2/test-app-start.sh +++ b/app/data/config/watcher-mobymask-v2/test-app-start.sh @@ -4,6 +4,8 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi +RELAY_NODES="${RELAY_NODES:-${DEFAULT_RELAY_NODES}}" + # Set relay nodes in config from RELAY_NODES environment variable jq --argjson relayNodes "$RELAY_NODES" \ '.relayNodes = $relayNodes' \