forked from cerc-io/stack-orchestrator
9ffa9bb5a9
* Check existing L1 contracts deployment * Rename volume used for generated L2 config * Check for existing L2 geth data directory * Cross check existing L2 config against L1 deployment config * Verify sequencer key in existing L2 geth data directory * Add instructions to troubleshoot corrupt L2 geth dir * Separate out instructions to run L2 with external L1 * Update docs
117 lines
4.2 KiB
YAML
117 lines
4.2 KiB
YAML
version: '3.7'
|
|
|
|
services:
|
|
# Generates and funds the accounts required when setting up the L2 chain (outputs to volume l2_accounts)
|
|
# Creates / updates the configuration for L1 contracts deployment
|
|
# Deploys the L1 smart contracts (outputs to volume l1_deployment)
|
|
fixturenet-optimism-contracts:
|
|
hostname: fixturenet-optimism-contracts
|
|
image: cerc/optimism-contracts:local
|
|
env_file:
|
|
- ../config/fixturenet-optimism/l1-params.env
|
|
# Waits for L1 endpoint to be up before running the script
|
|
command: |
|
|
"./wait-for-it.sh -h $${L1_HOST} -p $${L1_PORT} -s -t 60 -- ./run.sh"
|
|
volumes:
|
|
- ../config/wait-for-it.sh:/app/packages/contracts-bedrock/wait-for-it.sh
|
|
- ../container-build/cerc-optimism-contracts/hardhat-tasks/verify-contract-deployment.ts:/app/packages/contracts-bedrock/tasks/verify-contract-deployment.ts
|
|
- ../container-build/cerc-optimism-contracts/hardhat-tasks/rekey-json.ts:/app/packages/contracts-bedrock/tasks/rekey-json.ts
|
|
- ../container-build/cerc-optimism-contracts/hardhat-tasks/send-balance.ts:/app/packages/contracts-bedrock/tasks/send-balance.ts
|
|
- ../config/fixturenet-optimism/optimism-contracts/update-config.js:/app/packages/contracts-bedrock/update-config.js
|
|
- ../config/fixturenet-optimism/optimism-contracts/run.sh:/app/packages/contracts-bedrock/run.sh
|
|
- fixturenet_geth_accounts:/geth-accounts:ro
|
|
- l2_accounts:/l2-accounts
|
|
- l1_deployment:/app/packages/contracts-bedrock
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
|
|
# Generates the config files required for L2 (outputs to volume l2_config)
|
|
op-node-l2-config-gen:
|
|
image: cerc/optimism-op-node:local
|
|
depends_on:
|
|
fixturenet-optimism-contracts:
|
|
condition: service_completed_successfully
|
|
env_file:
|
|
- ../config/fixturenet-optimism/l1-params.env
|
|
volumes:
|
|
- ../config/fixturenet-optimism/generate-l2-config.sh:/app/generate-l2-config.sh
|
|
- l1_deployment:/contracts-bedrock:ro
|
|
- l2_config:/app
|
|
command: ["sh", "/app/generate-l2-config.sh"]
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
|
|
# Initializes and runs the L2 execution client (outputs to volume l2_geth_data)
|
|
op-geth:
|
|
image: cerc/optimism-l2geth:local
|
|
depends_on:
|
|
op-node-l2-config-gen:
|
|
condition: service_started
|
|
volumes:
|
|
- ../config/fixturenet-optimism/run-op-geth.sh:/run-op-geth.sh
|
|
- l2_config:/op-node:ro
|
|
- l2_accounts:/l2-accounts:ro
|
|
- l2_geth_data:/datadir
|
|
entrypoint: "sh"
|
|
command: "/run-op-geth.sh"
|
|
ports:
|
|
- "8545"
|
|
healthcheck:
|
|
test: ["CMD", "nc", "-vz", "localhost:8545"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 10
|
|
start_period: 10s
|
|
|
|
# Runs the L2 consensus client (Sequencer node)
|
|
op-node:
|
|
env_file:
|
|
- ../config/fixturenet-optimism/l1-params.env
|
|
depends_on:
|
|
op-geth:
|
|
condition: service_healthy
|
|
image: cerc/optimism-op-node:local
|
|
volumes:
|
|
- ../config/fixturenet-optimism/run-op-node.sh:/app/run-op-node.sh
|
|
- l2_config:/op-node-data:ro
|
|
- l2_accounts:/l2-accounts:ro
|
|
command: ["sh", "/app/run-op-node.sh"]
|
|
ports:
|
|
- "8547"
|
|
healthcheck:
|
|
test: ["CMD", "nc", "-vz", "localhost:8547"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 10
|
|
start_period: 10s
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
|
|
# Runs the batcher (takes transactions from the Sequencer and publishes them to L1)
|
|
op-batcher:
|
|
env_file:
|
|
- ../config/fixturenet-optimism/l1-params.env
|
|
depends_on:
|
|
op-node:
|
|
condition: service_healthy
|
|
op-geth:
|
|
condition: service_healthy
|
|
image: cerc/optimism-op-batcher:local
|
|
volumes:
|
|
- ../config/wait-for-it.sh:/wait-for-it.sh
|
|
- ../config/fixturenet-optimism/run-op-batcher.sh:/run-op-batcher.sh
|
|
- l2_accounts:/l2-accounts:ro
|
|
entrypoint: ["sh", "-c"]
|
|
# Waits for L1 endpoint to be up before running the batcher
|
|
command: |
|
|
"/wait-for-it.sh -h $${L1_HOST} -p $${L1_PORT} -s -t 60 -- /run-op-batcher.sh"
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
|
|
volumes:
|
|
fixturenet_geth_accounts:
|
|
l1_deployment:
|
|
l2_accounts:
|
|
l2_config:
|
|
l2_geth_data:
|