diff --git a/README_ESPRESSO.md b/README_ESPRESSO.md index 700323eb513..01327a60557 100644 --- a/README_ESPRESSO.md +++ b/README_ESPRESSO.md @@ -314,6 +314,11 @@ restarting. ### Log monitoring For a selection of important metrics to monitor for and corresponding log lines see `espresso/docs/metrics.md` +### Blockscout + +Blockscout is a block explorer that reads from the sequencer node. It can be accessed at `http://localhost:3000`. + + ## Continuous Integration environment ### Running enclave tests in EC2 diff --git a/espresso/docker-compose.yml b/espresso/docker-compose.yml index cde017f5a27..6266e3db598 100644 --- a/espresso/docker-compose.yml +++ b/espresso/docker-compose.yml @@ -527,6 +527,69 @@ services: ESPRESSO_DEV_NODE_EPOCH_HEIGHT: "4294967295" ESPRESSO_SEQUENCER_ETH_MNEMONIC: "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete" + blockscout-db: + profiles: ["default"] + image: postgres:14 + restart: on-failure + environment: + POSTGRES_USER: blockscout + POSTGRES_PASSWORD: password + POSTGRES_DB: blockscout + volumes: + - blockscout-db-data:/var/lib/postgresql/data + + blockscout: + profiles: ["default"] + image: ghcr.io/blockscout/blockscout@sha256:7659f168e4e2f6b73dd559ae5278fe96ba67bc2905ea01b57a814c68adf5a9dc + restart: always + depends_on: + blockscout-db: + condition: service_started + op-geth-sequencer: + condition: service_started + ports: + - "4000:4000" + command: > + sh -c "bin/blockscout eval \"Elixir.Explorer.ReleaseTasks.create_and_migrate()\" && bin/blockscout start" + environment: + ETHEREUM_JSONRPC_VARIANT: geth + ETHEREUM_JSONRPC_HTTP_URL: http://op-geth-caff-node:${OP_HTTP_PORT} + ETHEREUM_JSONRPC_WS_URL: ws://op-geth-caff-node:${OP_HTTP_PORT} + INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER: "true" + INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER: "true" + DATABASE_URL: postgresql://blockscout:password@blockscout-db:5432/blockscout?ssl=false + ECTO_USE_SSL: "false" + SECRET_KEY_BASE: "56NtB48ear7+wMSf0IQuWDAAazhpb31qyc7GiyspBP2vh7t5zlCsF5QDv76chXeN" + CHAIN_ID: "${L2_CHAIN_ID}" + API_V2_ENABLED: "true" + MIX_ENV: "prod" + + blockscout-frontend: + profiles: ["default"] + image: ghcr.io/blockscout/frontend@sha256:4b69f44148414b55c6b8550bc3270c63c9f99e923d54ef0b307e762af6bac90a + restart: always + depends_on: + blockscout: + condition: service_started + ports: + - "3000:3000" + environment: + NEXT_PUBLIC_APP_PROTOCOL: http + NEXT_PUBLIC_APP_HOST: localhost + NEXT_PUBLIC_APP_PORT: "3000" + NEXT_PUBLIC_APP_ENV: development + NEXT_PUBLIC_API_PROTOCOL: http + NEXT_PUBLIC_API_HOST: localhost + NEXT_PUBLIC_API_PORT: "4000" + NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL: ws + NEXT_PUBLIC_API_BASE_PATH: "/" + NEXT_PUBLIC_NETWORK_ID: "${L2_CHAIN_ID}" + NEXT_PUBLIC_NETWORK_NAME: "Celo x Espresso (Caff node)" + NEXT_PUBLIC_NETWORK_RPC_URL: http://op-geth-caff-node:${OP_HTTP_PORT} + NEXT_PUBLIC_NETWORK_CURRENCY_NAME: Ether + NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL: ETH + NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS: "18" + volumes: l1-data: op-data-seq: @@ -535,3 +598,4 @@ volumes: op-data-challenger: op-node-seq: espresso-data: + blockscout-db-data: