ldk-node 0.2.0

A ready-to-go node implementation built using LDK.
Documentation
version: '3'

services:
  bitcoin:
    image: blockstream/bitcoind:24.1
    platform: linux/amd64
    command:
      [
        "bitcoind",
        "-printtoconsole",
        "-regtest=1",
        "-rpcallowip=0.0.0.0/0",
        "-rpcbind=0.0.0.0",
        "-rpcuser=user",
        "-rpcpassword=pass",
        "-fallbackfee=0.00001"
      ]
    ports:
      - "18443:18443"  # Regtest RPC port
      - "18444:18444"  # Regtest P2P port
    networks:
      - bitcoin-electrs
    healthcheck:
      test: ["CMD", "bitcoin-cli", "-regtest", "-rpcuser=user", "-rpcpassword=pass", "getblockchaininfo"]
      interval: 5s
      timeout: 10s
      retries: 5

  electrs:
    image: blockstream/esplora:electrs-cd9f90c115751eb9d2bca9a4da89d10d048ae931
    platform: linux/amd64
    depends_on:
      bitcoin:
        condition: service_healthy
    command:
      [
        "/app/electrs_bitcoin/bin/electrs",
        "-vvvv",
        "--timestamp",
        "--jsonrpc-import",
        "--cookie=user:pass",
        "--network=regtest",
        "--daemon-rpc-addr=bitcoin:18443",
        "--http-addr=0.0.0.0:3002",
        "--electrum-rpc-addr=0.0.0.0:50001"
      ]
    ports:
      - "3002:3002"
      - "50001:50001"
    networks:
      - bitcoin-electrs

  cln:
    image: blockstream/lightningd:v23.08
    platform: linux/amd64
    depends_on:
      bitcoin:
        condition: service_healthy
    command:
      [
        "--bitcoin-rpcconnect=bitcoin",
        "--bitcoin-rpcport=18443",
        "--bitcoin-rpcuser=user",
        "--bitcoin-rpcpassword=pass",
        "--regtest",
      ]
    ports:
      - "19846:19846"
      - "9937:9937"
    networks:
      - bitcoin-electrs

networks:
  bitcoin-electrs:
    driver: bridge