Add a stack for Nitro bridge (#4)

* Add a bridge stack

* Implement Nitro contracts deployment to L1 and L2

* Deploy custom tokens to L1 and L2

* Add a service for Nitro bridge

* Setup a service for nitro-rpc-client with required certs
This commit is contained in:
prathamesh0
2024-07-19 10:57:46 +05:30
committed by GitHub
parent 192e6feee3
commit ce2258db07
13 changed files with 223 additions and 44 deletions
@@ -0,0 +1,50 @@
name: bridge
services:
nitro-bridge:
image: cerc/go-nitro:local
hostname: nitro-bridge
restart: unless-stopped
depends_on:
# Wait for Nitro contracts to be deployed
nitro-contracts:
condition: service_completed_successfully
environment:
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
CERC_GETH_CHAIN_ID: ${CERC_GETH_CHAIN_ID:-1212}
CERC_OPTIMISM_CHAIN_ID: ${CERC_OPTIMISM_CHAIN_ID:-42069}
CERC_NITRO_L1_CHAIN_URL: ${CERC_NITRO_L1_CHAIN_URL}
CERC_NITRO_L2_CHAIN_URL: ${CERC_NITRO_L2_CHAIN_URL}
CERC_NITRO_CHAIN_PK: ${CERC_NITRO_CHAIN_PK}
CERC_NITRO_SC_PK: ${CERC_NITRO_SC_PK}
CERC_NITRO_L1_MSG_PORT: ${CERC_NITRO_L1_MSG_PORT:-3005}
CERC_NITRO_L2_MSG_PORT: ${CERC_NITRO_L2_MSG_PORT:-3006}
CERC_NITRO_RPC_PORT: ${CERC_NITRO_RPC_PORT:-4006}
CERC_NITRO_PUBLIC_P2P_HOST: ${CERC_NITRO_PUBLIC_P2P_HOST:-127.0.0.1}
CERC_NITRO_PUBLIC_RPC_HOST: nitro-bridge
entrypoint: ["bash", "-c", "/app/run-bridge.sh"]
volumes:
- nitro_bridge_data:/app/data
- nitro_bridge_tls:/app/tls
- nitro_node_caroot:/app/mkcert-caroot
- nitro_deployment:/app/deployment
- ../config/go-nitro/run-bridge.sh:/app/run-bridge.sh
- ../config/go-nitro/create-certs.sh:/app/create-certs.sh
ports:
- 3005
- 3006
- 4006
healthcheck:
test: ["CMD", "nc", "-vz", "localhost", "4006"]
interval: 30s
timeout: 5s
retries: 10
start_period: 10s
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
nitro_bridge_data:
nitro_bridge_tls:
nitro_node_caroot:
nitro_deployment:
@@ -4,18 +4,24 @@ services:
# Optionally deploys the Nitro contracts
nitro-contracts:
image: cerc/nitro-contracts:local
# restart: on-failure
restart: on-failure
environment:
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
CERC_GETH_URL: ${CERC_GETH_URL}
CERC_OPTIMISM_URL: ${CERC_OPTIMISM_URL}
CERC_GETH_CHAIN_ID: ${CERC_GETH_CHAIN_ID}
CERC_OPTIMISM_CHAIN_ID: ${CERC_OPTIMISM_CHAIN_ID}
CERC_GETH_CHAIN_ID: ${CERC_GETH_CHAIN_ID:-1212}
CERC_OPTIMISM_CHAIN_ID: ${CERC_OPTIMISM_CHAIN_ID:-42069}
CERC_GETH_DEPLOYER_PK: ${CERC_GETH_DEPLOYER_PK}
CERC_OPTIMISM_DEPLOYER_PK: ${CERC_GETH_DEPLOYER_PK}
CERC_DISABLE_DETERMINISTIC_DEPLOYMENT: true
CERC_TOKEN_NAME: ${CERC_TOKEN_NAME}
CERC_TOKEN_SYMBOL: ${CERC_TOKEN_SYMBOL}
CERC_INITIAL_TOKEN_SUPPLY: ${CERC_INITIAL_TOKEN_SUPPLY}
volumes:
- nitro_deployment:/app/deployment
- ../config/nitro-contracts/deploy.sh:/app/deploy.sh
command: ["bash", "-c", "/app/deploy.sh"]
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
nitro_deployment:
@@ -2,7 +2,14 @@ name: nitro-rpc-client
services:
nitro-rpc-client:
image: cerc/nitro-rpc-client:local
image: cerc/nitro-contracts:local
hostname: nitro-rpc-client
restart: on-failure
environment:
NODE_EXTRA_CA_CERTS: "/app/mkcert-caroot/rootCA.pem"
command: ["bash", "-c", "tail -f /dev/null"]
volumes:
- nitro_node_caroot:/app/mkcert-caroot
volumes:
nitro_node_caroot: