UNPKG

@hyperlane-xyz/core

Version:

Core solidity contracts for Hyperlane

268 lines (250 loc) 8.88 kB
version: '3.4' x-system-addr-env: &system-addr-env # private key: a6aecc98b63bafb0de3b29ae9964b14acb4086057808be29f90150214ebd4a0f # OK to publish this since it will only ever be used in itests SYSTEM_ADDRESS_0_DEPLOYER: '0xa961b0d6dce82db098cf70a42a14add3ee3db2d5' # private key: 3b8d2345102cce2443acb240db6e87c8edd4bb3f821b17fab8ea2c9da08ea132 # OK to publish this since it will only ever be used in itests SYSTEM_ADDRESS_1_DEPLOYER: '0xdfc82d475833a50de90c642770f34a9db7deb725' services: # this is a helper service used because there's no official hardhat image l1_chain: image: ethereumoptimism/hardhat-node:${DOCKER_TAG_HARDHAT:-latest} build: context: ./docker/hardhat dockerfile: Dockerfile env_file: - ./envs/l1_chain.env ports: # expose the service to the host for integration testing - ${L1CHAIN_HTTP_PORT:-9545}:8545 deployer: depends_on: - l1_chain build: context: .. dockerfile: ./ops/docker/Dockerfile.packages target: deployer image: ethereumoptimism/deployer:${DOCKER_TAG_DEPLOYER:-latest} entrypoint: ./deployer.sh environment: # Env vars for the deployment script. CONTRACTS_RPC_URL: http://l1_chain:8545 CONTRACTS_DEPLOYER_KEY: 'ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' CONTRACTS_TARGET_NETWORK: 'local' ports: # expose the service to the host for getting the contract addrs - ${DEPLOYER_PORT:-8080}:8081 dtl: depends_on: - l1_chain - deployer - l2geth build: context: .. dockerfile: ./ops/docker/Dockerfile.packages target: data-transport-layer image: ethereumoptimism/data-transport-layer:${DOCKER_TAG_DATA_TRANSPORT_LAYER:-latest} # override with the dtl script and the env vars required for it entrypoint: ./dtl.sh env_file: - ./envs/dtl.env # set the rest of the env vars for the network whcih do not # depend on the docker-compose setup environment: # used for setting the address manager address URL: http://deployer:8081/addresses.json # connect to the 2 layers DATA_TRANSPORT_LAYER__L1_RPC_ENDPOINT: http://l1_chain:8545 DATA_TRANSPORT_LAYER__L2_RPC_ENDPOINT: http://l2geth:8545 DATA_TRANSPORT_LAYER__SYNC_FROM_L2: 'true' DATA_TRANSPORT_LAYER__L2_CHAIN_ID: 17 ports: - ${DTL_PORT:-7878}:7878 l2geth: depends_on: - l1_chain - deployer build: context: .. dockerfile: ./l2geth/Dockerfile image: ethereumoptimism/l2geth:${DOCKER_TAG_L2GETH:-latest} # override with the geth script and the env vars required for it entrypoint: sh ./geth.sh env_file: - ./envs/geth.env environment: <<: *system-addr-env ETH1_HTTP: http://l1_chain:8545 ROLLUP_TIMESTAMP_REFRESH: 5s ROLLUP_STATE_DUMP_PATH: http://deployer:8081/state-dump.latest.json # connecting to the DTL ROLLUP_CLIENT_HTTP: http://dtl:7878 ETH1_CTC_DEPLOYMENT_HEIGHT: 8 RETRIES: 60 # no need to keep this secret, only used internally to sign blocks BLOCK_SIGNER_KEY: '6587ae678cf4fc9a33000cdbf9f35226b71dcc6a4684a31203241f9bcfd55d27' BLOCK_SIGNER_ADDRESS: '0x00000398232E2064F896018496b4b44b3D62751F' ROLLUP_ENFORCE_FEES: ${ROLLUP_ENFORCE_FEES:-true} ROLLUP_FEE_THRESHOLD_DOWN: 0.9 ROLLUP_FEE_THRESHOLD_UP: 1.1 ports: - ${L2GETH_HTTP_PORT:-8545}:8545 - ${L2GETH_WS_PORT:-8546}:8546 relayer: depends_on: - l1_chain - l2geth deploy: replicas: 0 build: context: .. dockerfile: ./ops/docker/Dockerfile.packages target: message-relayer image: ethereumoptimism/message-relayer:${DOCKER_TAG_MESSAGE_RELAYER:-latest} entrypoint: ./relayer.sh environment: MESSAGE_RELAYER__L1_RPC_PROVIDER: http://l1_chain:8545 MESSAGE_RELAYER__L2_RPC_PROVIDER: http://l2geth:8545 MESSAGE_RELAYER__L1_WALLET: '0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97' RETRIES: 60 fault_detector: depends_on: - l1_chain - l2geth deploy: replicas: 0 build: context: .. dockerfile: ./ops/docker/Dockerfile.packages target: fault-detector image: ethereumoptimism/fault-detector:${DOCKER_TAG_FAULT_DETECTOR:-latest} entrypoint: ./detector.sh environment: FAULT_DETECTOR__L1_RPC_PROVIDER: http://l1_chain:8545 FAULT_DETECTOR__L2_RPC_PROVIDER: http://l2geth:8545 RETRIES: 60 verifier: depends_on: - l1_chain - deployer - dtl - l2geth deploy: replicas: 1 build: context: .. dockerfile: ./l2geth/Dockerfile image: ethereumoptimism/l2geth:${DOCKER_TAG_L2GETH:-latest} entrypoint: sh ./geth.sh env_file: - ./envs/geth.env environment: <<: *system-addr-env ETH1_HTTP: http://l1_chain:8545 SEQUENCER_CLIENT_HTTP: http://l2geth:8545 ROLLUP_STATE_DUMP_PATH: http://deployer:8081/state-dump.latest.json ROLLUP_CLIENT_HTTP: http://dtl:7878 ROLLUP_BACKEND: 'l1' ETH1_CTC_DEPLOYMENT_HEIGHT: 8 RETRIES: 60 ROLLUP_VERIFIER_ENABLE: 'true' ports: - ${VERIFIER_HTTP_PORT:-8547}:8545 - ${VERIFIER_WS_PORT:-8548}:8546 replica: depends_on: - dtl - l2geth deploy: replicas: 1 build: context: .. dockerfile: ./l2geth/Dockerfile image: ethereumoptimism/l2geth:${DOCKER_TAG_L2GETH:-latest} entrypoint: sh ./geth.sh env_file: - ./envs/geth.env environment: <<: *system-addr-env ETH1_HTTP: http://l1_chain:8545 SEQUENCER_CLIENT_HTTP: http://l2geth:8545 ROLLUP_STATE_DUMP_PATH: http://deployer:8081/state-dump.latest.json ROLLUP_CLIENT_HTTP: http://dtl:7878 ROLLUP_BACKEND: 'l2' ROLLUP_VERIFIER_ENABLE: 'true' ETH1_CTC_DEPLOYMENT_HEIGHT: 8 RETRIES: 60 ports: - ${REPLICA_HTTP_PORT:-8549}:8545 - ${REPLICA_WS_PORT:-8550}:8546 replica_healthcheck: depends_on: - l2geth - replica deploy: replicas: 0 build: context: .. dockerfile: ./ops/docker/Dockerfile.packages target: replica-healthcheck image: ethereumoptimism/replica-healthcheck:${DOCKER_TAG_REPLICA_HEALTHCHECK:-latest} environment: HEALTHCHECK__REFERENCE_RPC_PROVIDER: http://l2geth:8545 HEALTHCHECK__TARGET_RPC_PROVIDER: http://replica:8545 ports: - ${HEALTHCHECK_HTTP_PORT:-7300}:7300 integration_tests: deploy: replicas: 0 build: context: .. dockerfile: ./ops/docker/Dockerfile.packages target: integration-tests image: ethereumoptimism/integration-tests:${DOCKER_TAG_INTEGRATION_TESTS:-latest} entrypoint: ./integration-tests.sh environment: L1_URL: http://l1_chain:8545 L2_URL: http://l2geth:8545 HEALTHCHECK_URL: http://replica_healthcheck:7300/metrics REPLICA_URL: http://replica:8545 VERIFIER_URL: http://verifier:8545 URL: http://deployer:8081/addresses.json ENABLE_GAS_REPORT: 1 NO_NETWORK: 1 BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE: ${BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE:-zlib} RUN_SYSTEM_ADDRESS_TESTS: 'true' # must match l2geth environment, see above for why it's safe to publish these SYSTEM_ADDRESS_0_DEPLOYER_KEY: 'a6aecc98b63bafb0de3b29ae9964b14acb4086057808be29f90150214ebd4a0f' SYSTEM_ADDRESS_1_DEPLOYER_KEY: '3b8d2345102cce2443acb240db6e87c8edd4bb3f821b17fab8ea2c9da08ea132' gas_oracle: deploy: replicas: 0 build: context: .. dockerfile: ./gas-oracle/Dockerfile image: ethereumoptimism/gas-oracle:${DOCKER_TAG_GAS_ORACLE:-latest} environment: GAS_PRICE_ORACLE_ETHEREUM_HTTP_URL: http://l1_chain:8545 GAS_PRICE_ORACLE_LAYER_TWO_HTTP_URL: http://l2geth:8545 # Default hardhat account 5 GAS_PRICE_ORACLE_PRIVATE_KEY: '0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba' batch_submitter: depends_on: - l1_chain - deployer - l2geth build: context: .. dockerfile: ./batch-submitter/Dockerfile image: ethereumoptimism/batch-submitter-service:${DOCKER_TAG_BATCH_SUBMITTER_SERVICE:-latest} entrypoint: ./batch-submitter.sh env_file: - ./envs/batch-submitter.env environment: L1_ETH_RPC: http://l1_chain:8545 L2_ETH_RPC: http://l2geth:8545 URL: http://deployer:8081/addresses.json BATCH_SUBMITTER_SEQUENCER_PRIVATE_KEY: '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' BATCH_SUBMITTER_PROPOSER_PRIVATE_KEY: '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a' BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE: ${BATCH_SUBMITTER_SEQUENCER_BATCH_TYPE:-zlib}