169 lines
5.1 KiB
YAML
169 lines
5.1 KiB
YAML
# ============================================================
|
|
# Genex Chain Block Explorer — Docker Compose
|
|
#
|
|
# Blockscout deployment for Genex Chain (chain-id: 8888)
|
|
# Start:
|
|
# docker compose -f docker-compose.yml -f docker-compose.explorer.yml up -d
|
|
# Access: http://localhost:4000
|
|
# ============================================================
|
|
|
|
services:
|
|
# ── Blockscout Block Explorer ──
|
|
blockscout:
|
|
image: blockscout/blockscout:latest
|
|
container_name: genex-blockscout
|
|
restart: unless-stopped
|
|
depends_on:
|
|
blockscout-db:
|
|
condition: service_healthy
|
|
blockscout-redis:
|
|
condition: service_healthy
|
|
smart-contract-verifier:
|
|
condition: service_started
|
|
environment:
|
|
# Chain Connection (cosmos/evm 兼容 geth JSON-RPC)
|
|
ETHEREUM_JSONRPC_VARIANT: geth
|
|
ETHEREUM_JSONRPC_HTTP_URL: ${ETHEREUM_JSONRPC_HTTP_URL:-http://genex-node-1:8545}
|
|
ETHEREUM_JSONRPC_WS_URL: ${ETHEREUM_JSONRPC_WS_URL:-ws://genex-node-1:8546}
|
|
ETHEREUM_JSONRPC_TRACE_URL: ${ETHEREUM_JSONRPC_TRACE_URL:-http://genex-node-1:8545}
|
|
|
|
# Database
|
|
DATABASE_URL: postgresql://blockscout:${BLOCKSCOUT_DB_PASSWORD:-blockscout_secure_2024}@blockscout-db:5432/blockscout
|
|
|
|
# Chain Identity
|
|
CHAIN_ID: "8888"
|
|
COIN: GNX
|
|
COIN_NAME: Genex
|
|
NETWORK: Genex Chain
|
|
SUBNETWORK: ${SUBNETWORK:-Mainnet}
|
|
LOGO: /images/genex-logo.svg
|
|
|
|
# Blockscout Core
|
|
BLOCK_TRANSFORMER: base
|
|
ECTO_USE_SSL: "false"
|
|
SECRET_KEY_BASE: ${SECRET_KEY_BASE:-RMgI4C1HSkxsEjdhtGMfwAHfyT6CKWXOgzCboJflfSm4jeAlic52io05KB6mqzc5}
|
|
PORT: "4000"
|
|
POOL_SIZE: "80"
|
|
POOL_SIZE_API: "10"
|
|
|
|
# Indexer
|
|
INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER: "false"
|
|
INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER: "false"
|
|
FETCH_REWARDS_WAY: trace
|
|
FIRST_BLOCK: "0"
|
|
INDEXER_MEMORY_LIMIT: "10gb"
|
|
|
|
# Token & NFT
|
|
TOKEN_METADATA_UPDATE_INTERVAL: "1800"
|
|
EIP_1559_ELASTICITY_MULTIPLIER: "2"
|
|
|
|
# Smart Contract Verification
|
|
MICROSERVICE_SC_VERIFIER_ENABLED: "true"
|
|
MICROSERVICE_SC_VERIFIER_URL: http://smart-contract-verifier:8050
|
|
MICROSERVICE_SC_VERIFIER_TYPE: sc_verifier
|
|
|
|
# API & UI
|
|
API_RATE_LIMIT: "50"
|
|
API_RATE_LIMIT_BY_KEY: "150"
|
|
API_V2_ENABLED: "true"
|
|
DISABLE_EXCHANGE_RATES: "true"
|
|
SHOW_TXS_CHART: "true"
|
|
RE_CAPTCHA_DISABLED: "true"
|
|
|
|
# Cache (Redis)
|
|
CACHE_ENABLED: "true"
|
|
ACCOUNT_REDIS_URL: redis://blockscout-redis:6379/0
|
|
|
|
# Genex External Apps
|
|
APPS_MENU: "true"
|
|
EXTERNAL_APPS: '[{"title":"Genex Platform","url":"https://app.gogenex.com","description":"Genex coupon finance platform"},{"title":"Admin Dashboard","url":"https://admin.gogenex.com","description":"Genex admin console"}]'
|
|
ports:
|
|
- "${BLOCKSCOUT_PORT:-4000}:4000"
|
|
volumes:
|
|
- blockscout-logs:/app/logs
|
|
- ./explorer:/app/custom
|
|
networks:
|
|
- genex-net
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:4000/api/v2/stats"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 10
|
|
start_period: 120s
|
|
|
|
# ── Blockscout PostgreSQL ──
|
|
blockscout-db:
|
|
image: postgres:16-alpine
|
|
container_name: genex-blockscout-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: blockscout
|
|
POSTGRES_USER: blockscout
|
|
POSTGRES_PASSWORD: ${BLOCKSCOUT_DB_PASSWORD:-blockscout_secure_2024}
|
|
ports:
|
|
- "${BLOCKSCOUT_DB_PORT:-5433}:5432"
|
|
volumes:
|
|
- blockscout-db-data:/var/lib/postgresql/data
|
|
networks:
|
|
- genex-net
|
|
command:
|
|
- "postgres"
|
|
- "-c"
|
|
- "max_connections=200"
|
|
- "-c"
|
|
- "shared_buffers=2GB"
|
|
- "-c"
|
|
- "effective_cache_size=6GB"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U blockscout -d blockscout"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# ── Redis Cache ──
|
|
blockscout-redis:
|
|
image: redis:7-alpine
|
|
container_name: genex-blockscout-redis
|
|
restart: unless-stopped
|
|
command: redis-server --maxmemory 512mb --maxmemory-policy allkeys-lru
|
|
ports:
|
|
- "${BLOCKSCOUT_REDIS_PORT:-6380}:6379"
|
|
volumes:
|
|
- blockscout-redis-data:/data
|
|
networks:
|
|
- genex-net
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# ── Smart Contract Verifier ──
|
|
smart-contract-verifier:
|
|
image: ghcr.io/blockscout/smart-contract-verifier:latest
|
|
container_name: genex-sc-verifier
|
|
restart: unless-stopped
|
|
environment:
|
|
SMART_CONTRACT_VERIFIER__SERVER__HTTP__ADDR: 0.0.0.0:8050
|
|
SMART_CONTRACT_VERIFIER__SOLIDITY__ENABLED: "true"
|
|
SMART_CONTRACT_VERIFIER__SOLIDITY__COMPILERS_DIR: /tmp/solidity-compilers
|
|
SMART_CONTRACT_VERIFIER__VYPER__ENABLED: "false"
|
|
SMART_CONTRACT_VERIFIER__SOURCIFY__ENABLED: "false"
|
|
ports:
|
|
- "${SC_VERIFIER_PORT:-8050}:8050"
|
|
volumes:
|
|
- sc-verifier-compilers:/tmp/solidity-compilers
|
|
networks:
|
|
- genex-net
|
|
|
|
volumes:
|
|
blockscout-db-data:
|
|
blockscout-redis-data:
|
|
blockscout-logs:
|
|
sc-verifier-compilers:
|
|
|
|
networks:
|
|
genex-net:
|
|
external: true
|
|
name: blockchain_genex-net
|