version: '3.8'

services:
  besu:
    image: hyperledger/besu:latest
    container_name: sankofa-besu-node
    ports:
      - "8545:8545"  # JSON-RPC
      - "8546:8546"  # WebSocket
      - "30303:30303"  # P2P
    volumes:
      - besu-data:/var/lib/besu
      - ./network-config:/config
    command:
      - --data-path=/var/lib/besu
      - --network-id=2024
      - --rpc-http-enabled=true
      - --rpc-http-host=0.0.0.0
      - --rpc-http-port=8545
      - --rpc-http-api=ETH,NET,WEB3,ADMIN
      - --rpc-ws-enabled=true
      - --rpc-ws-host=0.0.0.0
      - --rpc-ws-port=8546
      - --p2p-port=30303
      - --genesis-file=/config/genesis.json
      - --logging=INFO
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8545"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  besu-data:

