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:
prathamesh0 2023-10-14 09:47:55 +05:30 committed by GitHub
parent ba09043227
commit 4030c0a0d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 86 additions and 51 deletions

View 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:

View File

@ -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:

View File

@ -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

View File

@ -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"

View File

@ -43,3 +43,4 @@ nitro-contracts
nitro-reverse-payment-proxy nitro-reverse-payment-proxy
mobymask-snap mobymask-snap
ponder ponder
ipld-eth-server-payments

View File

@ -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