diff --git a/docker/compose/suzuka-full-node/docker-compose.follower.yml b/docker/compose/suzuka-full-node/docker-compose.follower.yml index 5da7804d2..57c6d9f4b 100644 --- a/docker/compose/suzuka-full-node/docker-compose.follower.yml +++ b/docker/compose/suzuka-full-node/docker-compose.follower.yml @@ -18,6 +18,8 @@ services: ETH_RPC_CONNECTION_HOSTNAME: ethereum-holesky-rpc.publicnode.com ETH_RPC_CONNECTION_PORT: 443 AWS_REGION: us-west-1 + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} MOVEMENT_SYNC: follower::l-monninger-open-network-suzuka-devnet-l-sync<=>{maptos,maptos-storage,suzuka-da-db}/** MAYBE_RUN_LOCAL: "false" volumes: @@ -82,6 +84,8 @@ services: ETH_RPC_CONNECTION_HOSTNAME: ethereum-holesky-rpc.publicnode.com ETH_RPC_CONNECTION_PORT: 443 AWS_REGION: us-west-1 + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} MOVEMENT_SYNC: follower::l-monninger-open-network-suzuka-devnet-l-sync<=>{maptos,maptos-storage,suzuka-da-db}/** MOVEMENT_TIMING: info SUZUKA_TIMING_LOG: /.movement/suzuka-timing.log @@ -119,6 +123,8 @@ services: ETH_RPC_CONNECTION_HOSTNAME: ethereum-holesky-rpc.publicnode.com ETH_RPC_CONNECTION_PORT: 443 AWS_REGION: us-west-1 + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} MOVEMENT_SYNC: follower::l-monninger-open-network-suzuka-devnet-l-sync<=>{maptos,maptos-storage,suzuka-da-db}/** MOVEMENT_TIMING: info SUZUKA_TIMING_LOG: /.movement/suzuka-timing.log @@ -190,6 +196,8 @@ services: ETH_RPC_CONNECTION_HOSTNAME: ethereum-holesky-rpc.publicnode.com ETH_RPC_CONNECTION_PORT: 443 AWS_REGION: us-west-1 + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} MOVEMENT_SYNC: follower::l-monninger-open-network-suzuka-devnet-l-sync<=>{maptos,maptos-storage,suzuka-da-db}/** DOT_MOVEMENT_PATH: /.movement MOVEMENT_TIMING: info diff --git a/docker/compose/suzuka-full-node/docker-compose.local.yml b/docker/compose/suzuka-full-node/docker-compose.local.yml index 447f981ef..0531d16a6 100644 --- a/docker/compose/suzuka-full-node/docker-compose.local.yml +++ b/docker/compose/suzuka-full-node/docker-compose.local.yml @@ -2,7 +2,7 @@ services: setup: image: ghcr.io/movementlabsxyz/suzuka-full-node-setup:${CONTAINER_REV} container_name: setup - entrypoint: ["sh", "-c", "/app/suzuka-full-node-setup & until nc -zv 0.0.0.0 8090 > /dev/null; do echo Waiting for setup.; sleep 60; done;"] + entrypoint: ["sh", "-c", "/app/suzuka-full-node-setup & until nc -zv 0.0.0.0 8090 > /dev/null; do echo Waiting for setup.; sleep infinity; done;"] environment: DOT_MOVEMENT_PATH: /.movement # By default, all the listener hostnames and ports are reasonable. diff --git a/docker/compose/suzuka-full-node/docker-compose.test-followers.yml b/docker/compose/suzuka-full-node/docker-compose.test-followers.yml index 4724ae550..18ebb01cb 100644 --- a/docker/compose/suzuka-full-node/docker-compose.test-followers.yml +++ b/docker/compose/suzuka-full-node/docker-compose.test-followers.yml @@ -1,12 +1,139 @@ services: setup: + image: ghcr.io/movementlabsxyz/suzuka-full-node-setup:${CONTAINER_REV} + container_name: setup + entrypoint: ["sh", "-c", "/app/suzuka-full-node-setup & until nc -zv 0.0.0.0 8090 > /dev/null; do echo Waiting for setup.; sleep 40; done;"] environment: - MOVEMENT_SYNC: leader::follower-test-$MOVEMENT_SHARED_RANDOM_1<=>{maptos,maptos-storage,suzuka-da-db}/** - AWS_REGION: us-west-2 + DOT_MOVEMENT_PATH: /.movement + # By default, all the listener hostnames and ports are reasonable. + # However, for container networking, we need to specify the hostnames on the connection. + # You can also use host.docker.internal for the host machine as all of these ports should be exposed. + CELESTIA_RPC_CONNECTION_HOSTNAME: m1-da-light-node-celestia-appd + CELESTIA_WEBSOCKET_CONNECTION_HOSTNAME: m1-da-light-node-celestia-bridge + M1_DA_LIGHT_NODE_CONNECTION_HOSTNAME: m1-da-light-node + MAPTOS_API_CONNECTION_HOSTNAME: suzuka-full-node + FAUCET_API_CONNECTION_HOSTNAME: suzuka-faucet-service + ETH_RPC_CONNECTION_HOSTNAME: setup + ETH_RPC_CONNECTION_PROTOCOL: http + ETH_RPC_CONNECTION_PORT: 8090 + MAYBE_RUN_LOCAL: "true" + MAYBE_DEPLOY_MCR: "true" + INDEXER_PROCESSOR_POSTGRES_CONNECTION_STRING: postgres://postgres:password@postgres:5432/postgres AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} volumes: + - ${DOT_MOVEMENT_PATH}:/.movement - ~/.aws/:/root/.aws:ro + ports: + - "8090:8090" # port for anvil, this should be moved out into runner + healthcheck: + test: [ "CMD-SHELL", "nc -zv 0.0.0.0 8090" ] + retries: 30 + interval: 10s + timeout: 5s + + m1-da-light-node-celestia-appd: + image: ghcr.io/movementlabsxyz/m1-da-light-node-celestia-appd:${CONTAINER_REV} + container_name: m1-da-light-node-celestia-appd + environment: + DOT_MOVEMENT_PATH: /.movement + CELESTIA_RPC_ADDRESS: m1-da-light-node-celestia-appd:26657 + volumes: + - ${DOT_MOVEMENT_PATH}:/.movement + depends_on: + setup: + condition: service_completed_successfully + ports: + - "26657:26657" + - "9090:9090" + healthcheck: + test: [ "CMD-SHELL", "nc -zv 0.0.0.0 26657" ] + retries: 10 + interval: 10s + timeout: 5s + restart: on-failure:3 + + m1-da-light-node-celestia-bridge: + image: ghcr.io/movementlabsxyz/m1-da-light-node-celestia-bridge:${CONTAINER_REV} + container_name: m1-da-light-node-celestia-bridge + environment: + DOT_MOVEMENT_PATH: /.movement + volumes: + - ${DOT_MOVEMENT_PATH}:/.movement + ports: + - "26658:26658" + depends_on: + setup: + condition: service_completed_successfully + m1-da-light-node-celestia-appd: + condition: service_healthy + healthcheck: + test: [ "CMD-SHELL", "nc -zv 0.0.0.0 26658" ] + retries: 10 + interval: 10s + timeout: 5s + restart: on-failure:3 + + celestia-light-node: + image: busybox + container_name: celestia-light-node + command: sh -c 'echo "Starting Celestia light-node services." && sleep infinity' + environment: + - DOT_MOVEMENT_PATH=/.movement + volumes: + - ${DOT_MOVEMENT_PATH}:/.movement + depends_on: + m1-da-light-node-celestia-appd: + condition: service_healthy + m1-da-light-node-celestia-bridge: + condition: service_healthy + + m1-da-light-node: + image: ghcr.io/movementlabsxyz/m1-da-light-node:${CONTAINER_REV} + container_name: m1-da-light-node + environment: + - DOT_MOVEMENT_PATH=/.movement + - MOVEMENT_TIMING=info + - M1_DA_LIGHT_NODE_TIMING_LOG=/.movement/m1-da-light-node-timing.log + - RUST_BACKTRACE=1 + volumes: + - ${DOT_MOVEMENT_PATH}:/.movement + depends_on: + setup: + condition: service_completed_successfully + m1-da-light-node-celestia-bridge: + condition: service_healthy + ports: + - "30730:30730" + healthcheck: + test: [ "CMD-SHELL", "nc -zv 0.0.0.0 30730" ] + retries: 10 + interval: 10s + timeout: 5s + restart: on-failure:3 + + suzuka-full-node: + image: ghcr.io/movementlabsxyz/suzuka-full-node:${CONTAINER_REV} + container_name: suzuka-full-node + environment: + - DOT_MOVEMENT_PATH=/.movement + - MOVEMENT_TIMING=info + - SUZUKA_TIMING_LOG=/.movement/suzuka-timing.log + - RUST_BACKTRACE=1 + volumes: + - ${DOT_MOVEMENT_PATH}:/.movement + depends_on: + m1-da-light-node: + condition: service_healthy + ports: + - "30731:30731" + - "30734:30734" + healthcheck: + test: [ "CMD-SHELL", "nc -zv 0.0.0.0 30731" ] + retries: 10 + interval: 10s + timeout: 5s + restart: on-failure:5 allow-syncing-delay: image: busybox diff --git a/open-network.env b/open-network.env index 41bce0521..bfcc90daf 100644 --- a/open-network.env +++ b/open-network.env @@ -1,5 +1,5 @@ -CONTAINER_REV=b47ccc1c99e7de0085c5ca6e2aed28793a09b6de -DOT_MOVEMENT_PATH=.movement +CONTAINER_REV=d5395a67178d38b93a7528742c8007226a1847a5 +DOT_MOVEMENT_PATH=/.movement MOVEMENT_SYNC="follower::l-monninger-open-network-suzuka-devnet-l-sync<=>{maptos,maptos-storage,suzuka-da-db}/**" CELESTIA_RPC_CONNECTION_PROTOCOL=https CELESTIA_RPC_CONNECTION_HOSTNAME=l-monninger.open-network.rpc.celestia.suzuka.devnet.movementlabs.xyz