#!/bin/bash # TODO: Support running node on L2 if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi nitro_addresses_file="/app/deployment/nitro-addresses.json" # Check if CERC_NA_ADDRESS environment variable is set if [ -n "$CERC_NA_ADDRESS" ]; then echo "CERC_NA_ADDRESS is set to '$CERC_NA_ADDRESS'" echo "CERC_VPA_ADDRESS is set to '$CERC_VPA_ADDRESS'" echo "CERC_CA_ADDRESS is set to '$CERC_CA_ADDRESS'" echo "Using the above Nitro addresses" NA_ADDRESS=${CERC_NA_ADDRESS} VPA_ADDRESS=${CERC_VPA_ADDRESS} CA_ADDRESS=${CERC_CA_ADDRESS} elif [ -f ${nitro_addresses_file} ]; then echo "Reading Nitro addresses from ${nitro_addresses_file}" # TODO: Use Bridge address instead of NA address while running node on L2 NA_ADDRESS=$(jq -r '.nitroAdjudicatorAddress' ${nitro_addresses_file}) VPA_ADDRESS=$(jq -r '.virtualPaymentAppAddress' ${nitro_addresses_file}) CA_ADDRESS=$(jq -r '.consensusAppAddress' ${nitro_addresses_file}) else echo "File ${nitro_addresses_file} not found" exit 1 fi echo "Running Nitro node" # Assuming CERC_NITRO_CHAIN_URL is of format ://host:port ws_host=$(echo "$CERC_NITRO_CHAIN_URL" | awk -F '://' '{print $2}' | cut -d ':' -f 1) ws_port=$(echo "$CERC_NITRO_CHAIN_URL" | awk -F '://' '{print $2}' | cut -d ':' -f 2) # Wait till chain endpoint is available retry_interval=5 while true; do nc -z -w 1 "$ws_host" "$ws_port" if [ $? -eq 0 ]; then echo "Chain endpoint is available" break fi echo "Chain endpoint not yet available, retrying in $retry_interval seconds..." sleep $retry_interval done ./nitro -chainurl ${CERC_NITRO_CHAIN_URL} -msgport ${CERC_NITRO_MSG_PORT} -rpcport ${CERC_NITRO_RPC_PORT} -wsmsgport ${CERC_NITRO_WS_MSG_PORT} -publicip "0.0.0.0" -pk ${CERC_NITRO_PK} -chainpk ${CERC_NITRO_CHAIN_PK} -naaddress ${NA_ADDRESS} -vpaaddress ${VPA_ADDRESS} -caaddress ${CA_ADDRESS} -usedurablestore ${CERC_NITRO_USE_DURABLE_STORE} -durablestorefolder ${CERC_NITRO_DURABLE_STORE_FOLDER} -tlscertfilepath "" -tlsKeyFilepath ""