forked from cerc-io/stack-orchestrator
Add a separate pod for ipld-eth-server with payments (#583)
* Add a separate pod for ipld-eth-server with payments * Wait for nitro contracts to become available
This commit is contained in:
parent
ba09043227
commit
4030c0a0d2
63
app/data/compose/docker-compose-ipld-eth-server-payments.yml
Normal file
63
app/data/compose/docker-compose-ipld-eth-server-payments.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
version: "3.2"
|
||||||
|
services:
|
||||||
|
ipld-eth-server:
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
ipld-eth-db:
|
||||||
|
condition: service_healthy
|
||||||
|
image: cerc/ipld-eth-server:local
|
||||||
|
environment:
|
||||||
|
SERVER_HTTP_PATH: 0.0.0.0:8081
|
||||||
|
SERVER_GRAPHQL: "true"
|
||||||
|
SERVER_GRAPHQLPATH: 0.0.0.0:8082
|
||||||
|
VDB_COMMAND: "serve"
|
||||||
|
ETH_CHAIN_CONFIG: "/tmp/chain.json"
|
||||||
|
DATABASE_NAME: cerc_testing
|
||||||
|
DATABASE_HOSTNAME: ipld-eth-db
|
||||||
|
DATABASE_PORT: 5432
|
||||||
|
DATABASE_USER: "vdbm"
|
||||||
|
DATABASE_PASSWORD: "password"
|
||||||
|
ETH_CHAIN_ID: 99
|
||||||
|
ETH_FORWARD_ETH_CALLS: "false"
|
||||||
|
ETH_FORWARD_GET_STORAGE_AT: "false"
|
||||||
|
ETH_PROXY_ON_ERROR: "false"
|
||||||
|
METRICS: "true"
|
||||||
|
PROM_HTTP: "true"
|
||||||
|
PROM_HTTP_ADDR: "0.0.0.0"
|
||||||
|
PROM_HTTP_PORT: "8090"
|
||||||
|
LOG_LEVEL: "debug"
|
||||||
|
CERC_REMOTE_DEBUG: ${CERC_REMOTE_DEBUG:-true}
|
||||||
|
NITRO_PK: ${CERC_NITRO_PK:-2d999770f7b5d49b694080f987b82bbc9fc9ac2b4dcc10b0f8aba7d700f69c6d}
|
||||||
|
NITRO_CHAIN_PK: ${CERC_NITRO_CHAIN_PK:-570b909da9669b2f35a0b1ac70b8358516d55ae1b5b3710e95e9a94395090597}
|
||||||
|
NITRO_CHAIN_URL: ${CERC_NITRO_CHAIN_URL:-ws://fixturenet-eth-geth-1:8546}
|
||||||
|
NITRO_USE_DURABLE_STORE: ${CERC_NITRO_USE_DURABLE_STORE:-false}
|
||||||
|
NITRO_DURABLE_STORE_FOLDER: ${CERC_NITRO_DURABLE_STORE_FOLDER:-/app/data/nitro-store}
|
||||||
|
CERC_NA_ADDRESS: ${CERC_NA_ADDRESS}
|
||||||
|
CERC_VPA_ADDRESS: ${CERC_VPA_ADDRESS}
|
||||||
|
CERC_CA_ADDRESS: ${CERC_CA_ADDRESS}
|
||||||
|
entrypoint: ["bash", "-c", "/app/entrypoint.sh"]
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ../config/ipld-eth-server/chain.json
|
||||||
|
target: /tmp/chain.json
|
||||||
|
- eth_server_nitro_data:/app/data
|
||||||
|
- nitro_deployment:/app/deployment
|
||||||
|
- ../config/ipld-eth-server/entrypoint.sh:/app/entrypoint.sh
|
||||||
|
ports:
|
||||||
|
- "8081"
|
||||||
|
- "8082"
|
||||||
|
- "8090"
|
||||||
|
- "40000"
|
||||||
|
- "3005"
|
||||||
|
- "4005:4005"
|
||||||
|
- "5005:5005"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "nc", "-v", "localhost", "8081"]
|
||||||
|
interval: 20s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 15
|
||||||
|
start_period: 5s
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
eth_server_nitro_data:
|
||||||
|
nitro_deployment:
|
@ -5,9 +5,6 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
ipld-eth-db:
|
ipld-eth-db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
# Wait for Nitro contracts to be deployed
|
|
||||||
nitro-contracts:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
image: cerc/ipld-eth-server:local
|
image: cerc/ipld-eth-server:local
|
||||||
environment:
|
environment:
|
||||||
SERVER_HTTP_PATH: 0.0.0.0:8081
|
SERVER_HTTP_PATH: 0.0.0.0:8081
|
||||||
@ -30,37 +27,18 @@ services:
|
|||||||
PROM_HTTP_PORT: "8090"
|
PROM_HTTP_PORT: "8090"
|
||||||
LOG_LEVEL: "debug"
|
LOG_LEVEL: "debug"
|
||||||
CERC_REMOTE_DEBUG: ${CERC_REMOTE_DEBUG:-true}
|
CERC_REMOTE_DEBUG: ${CERC_REMOTE_DEBUG:-true}
|
||||||
NITRO_PK: ${CERC_NITRO_PK:-2d999770f7b5d49b694080f987b82bbc9fc9ac2b4dcc10b0f8aba7d700f69c6d}
|
|
||||||
NITRO_CHAIN_PK: ${CERC_NITRO_CHAIN_PK:-570b909da9669b2f35a0b1ac70b8358516d55ae1b5b3710e95e9a94395090597}
|
|
||||||
NITRO_CHAIN_URL: ${CERC_NITRO_CHAIN_URL:-ws://fixturenet-eth-geth-1:8546}
|
|
||||||
NITRO_USE_DURABLE_STORE: ${CERC_NITRO_USE_DURABLE_STORE:-false}
|
|
||||||
NITRO_DURABLE_STORE_FOLDER: ${CERC_NITRO_DURABLE_STORE_FOLDER:-/app/data/nitro-store}
|
|
||||||
CERC_NA_ADDRESS: ${CERC_NA_ADDRESS}
|
|
||||||
CERC_VPA_ADDRESS: ${CERC_VPA_ADDRESS}
|
|
||||||
CERC_CA_ADDRESS: ${CERC_CA_ADDRESS}
|
|
||||||
entrypoint: ["bash", "-c", "/app/entrypoint.sh"]
|
|
||||||
volumes:
|
volumes:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: ../config/ipld-eth-server/chain.json
|
source: ../config/ipld-eth-server/chain.json
|
||||||
target: /tmp/chain.json
|
target: /tmp/chain.json
|
||||||
- eth_server_nitro_data:/app/data
|
|
||||||
- nitro_deployment:/app/deployment
|
|
||||||
- ../config/ipld-eth-server/entrypoint.sh:/app/entrypoint.sh
|
|
||||||
ports:
|
ports:
|
||||||
- "8081"
|
- "8081"
|
||||||
- "8082"
|
- "8082"
|
||||||
- "8090"
|
- "8090"
|
||||||
- "40000"
|
- "40000"
|
||||||
- "3005"
|
|
||||||
- "4005:4005"
|
|
||||||
- "5005:5005"
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "nc", "-v", "localhost", "8081"]
|
test: ["CMD", "nc", "-v", "localhost", "8081"]
|
||||||
interval: 20s
|
interval: 20s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 15
|
retries: 15
|
||||||
start_period: 5s
|
start_period: 5s
|
||||||
|
|
||||||
volumes:
|
|
||||||
eth_server_nitro_data:
|
|
||||||
nitro_deployment:
|
|
||||||
|
@ -29,12 +29,13 @@ fi
|
|||||||
|
|
||||||
echo "Running Nitro node"
|
echo "Running Nitro node"
|
||||||
|
|
||||||
|
# Assuming CERC_NITRO_CHAIN_URL is of format <ws|http>://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
|
# Wait till chain endpoint is available
|
||||||
retry_interval=5
|
retry_interval=5
|
||||||
while true; do
|
while true; do
|
||||||
# Assuming CERC_NITRO_CHAIN_URL is of format <ws|http>://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)
|
|
||||||
nc -z -w 1 "$ws_host" "$ws_port"
|
nc -z -w 1 "$ws_host" "$ws_port"
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
|
@ -12,34 +12,25 @@ if [ -n "$CERC_NA_ADDRESS" ]; then
|
|||||||
export NITRO_NA_ADDRESS=${CERC_NA_ADDRESS}
|
export NITRO_NA_ADDRESS=${CERC_NA_ADDRESS}
|
||||||
export NITRO_VPA_ADDRESS=${CERC_VPA_ADDRESS}
|
export NITRO_VPA_ADDRESS=${CERC_VPA_ADDRESS}
|
||||||
export NITRO_CA_ADDRESS=${CERC_CA_ADDRESS}
|
export NITRO_CA_ADDRESS=${CERC_CA_ADDRESS}
|
||||||
elif [ -f ${nitro_addresses_file} ]; then
|
|
||||||
echo "Reading Nitro addresses from ${nitro_addresses_file}"
|
|
||||||
|
|
||||||
export NITRO_NA_ADDRESS=$(jq -r '.nitroAdjudicatorAddress' ${nitro_addresses_file})
|
|
||||||
export NITRO_VPA_ADDRESS=$(jq -r '.virtualPaymentAppAddress' ${nitro_addresses_file})
|
|
||||||
export NITRO_CA_ADDRESS=$(jq -r '.consensusAppAddress' ${nitro_addresses_file})
|
|
||||||
else
|
else
|
||||||
echo "File ${nitro_addresses_file} not found"
|
# Read addresses from a file
|
||||||
exit 1
|
# Keep retrying until found
|
||||||
|
echo "Reading Nitro addresses from ${nitro_addresses_file}"
|
||||||
|
retry_interval=5
|
||||||
|
while true; do
|
||||||
|
if [[ -e "$nitro_addresses_file" ]]; then
|
||||||
|
export NITRO_NA_ADDRESS=$(jq -r '.nitroAdjudicatorAddress' ${nitro_addresses_file})
|
||||||
|
export NITRO_VPA_ADDRESS=$(jq -r '.virtualPaymentAppAddress' ${nitro_addresses_file})
|
||||||
|
export NITRO_CA_ADDRESS=$(jq -r '.consensusAppAddress' ${nitro_addresses_file})
|
||||||
|
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo "File not yet available, retrying in $retry_interval seconds..."
|
||||||
|
sleep $retry_interval
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wait till chain endpoint is available
|
|
||||||
retry_interval=5
|
|
||||||
while true; do
|
|
||||||
# Assuming NITRO_CHAIN_URL is of format <ws|http>://host:port
|
|
||||||
ws_host=$(echo "$NITRO_CHAIN_URL" | awk -F '://' '{print $2}' | cut -d ':' -f 1)
|
|
||||||
ws_port=$(echo "$NITRO_CHAIN_URL" | awk -F '://' '{print $2}' | cut -d ':' -f 2)
|
|
||||||
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
|
|
||||||
|
|
||||||
echo "Beginning the ipld-eth-server process"
|
echo "Beginning the ipld-eth-server process"
|
||||||
|
|
||||||
START_CMD="./ipld-eth-server"
|
START_CMD="./ipld-eth-server"
|
||||||
|
@ -43,3 +43,4 @@ nitro-contracts
|
|||||||
nitro-reverse-payment-proxy
|
nitro-reverse-payment-proxy
|
||||||
mobymask-snap
|
mobymask-snap
|
||||||
ponder
|
ponder
|
||||||
|
ipld-eth-server-payments
|
||||||
|
@ -6,6 +6,7 @@ repos:
|
|||||||
- git.vdb.to/cerc-io/go-ethereum@v1.11.6-statediff-v5
|
- git.vdb.to/cerc-io/go-ethereum@v1.11.6-statediff-v5
|
||||||
- git.vdb.to/cerc-io/lighthouse
|
- git.vdb.to/cerc-io/lighthouse
|
||||||
- git.vdb.to/cerc-io/ipld-eth-db@v5
|
- git.vdb.to/cerc-io/ipld-eth-db@v5
|
||||||
|
# ipld-eth-server with payments -- to be used by ipld-eth-server-payments pod
|
||||||
- git.vdb.to/cerc-io/ipld-eth-server@payments
|
- git.vdb.to/cerc-io/ipld-eth-server@payments
|
||||||
# nitro repo
|
# nitro repo
|
||||||
- github.com/cerc-io/ts-nitro@v0.1.13
|
- github.com/cerc-io/ts-nitro@v0.1.13
|
||||||
@ -43,7 +44,7 @@ containers:
|
|||||||
- cerc/ponder
|
- cerc/ponder
|
||||||
pods:
|
pods:
|
||||||
- fixturenet-eth
|
- fixturenet-eth
|
||||||
- ipld-eth-server
|
- ipld-eth-server-payments
|
||||||
- ipld-eth-db
|
- ipld-eth-db
|
||||||
- nitro-contracts
|
- nitro-contracts
|
||||||
# - go-nitro
|
# - go-nitro
|
||||||
|
Loading…
Reference in New Issue
Block a user