version: '3.8' services: tor: image: dperson/torproxy:latest container_name: tor-proxy networks: btcnet: aliases: - tor ports: - "9050:9050" # Port SOCKS - "9051:9051" # Port de contrĂ´le restart: unless-stopped bitcoin: build: ./bitcoin container_name: bitcoin-signet depends_on: - tor volumes: - bitcoin_data:/home/bitcoin/.bitcoin - ./bitcoin/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf ports: - "38333:38333" # signet p2p - "18443:18443" # signet rpc - "29000:29000" # zmq networks: btcnet: aliases: - bitcoin environment: - TOR_HOST=tor - TOR_PORT=9050 restart: unless-stopped healthcheck: test: ["CMD", "bitcoin-cli", "-conf=/home/bitcoin/.bitcoin/bitcoin.conf", "getblockchaininfo"] interval: 30s timeout: 10s retries: 3 blindbit: build: ./blindbit container_name: blindbit-oracle depends_on: - bitcoin volumes: - blindbit_data:/data - ./blindbit/blindbit.toml:/data/blindbit.toml - bitcoin_data:/home/bitcoin/.bitcoin ports: - "8000:8000" networks: btcnet: aliases: - blindbit restart: unless-stopped sdk_relay_1: build: context: .. dockerfile: 4NK_node/sdk_relay/Dockerfile container_name: sdk_relay_1 depends_on: bitcoin: condition: service_healthy blindbit: condition: service_started volumes: - bitcoin_data:/home/bitcoin/.bitcoin - ./bitcoin/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf - sdk_relay_1_data:/home/bitcoin/.4nk - ./sdk_relay/.conf.docker.relay1:/home/bitcoin/.conf.docker ports: - "8090:8090" - "8091:8091" networks: btcnet: aliases: - sdk_relay_1 logging: driver: "json-file" options: max-size: "10m" max-file: "3" environment: - RUST_LOG=debug,bitcoincore_rpc=trace - HOME=/home/bitcoin - BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie - ENABLE_SYNC_TEST=1 restart: on-failure:3 entrypoint: > /bin/sh -c " cp /home/bitcoin/.conf.docker /home/bitcoin/.conf && cp /home/bitcoin/.bitcoin/signet/.cookie /home/bitcoin/.4nk/bitcoin.cookie && chmod 600 /home/bitcoin/.4nk/bitcoin.cookie && echo 'Configuration loaded:' && cat /home/bitcoin/.conf && echo 'Testing DNS resolution:' && getent hosts bitcoin && echo 'Testing connectivity:' && curl -s --connect-timeout 5 http://bitcoin:18443 && echo 'Bitcoin accessible via curl' && echo 'Starting sdk_relay_1:' && /usr/local/bin/sdk_relay --config .conf" healthcheck: test: ["CMD", "/usr/local/bin/healthcheck.sh"] interval: 30s timeout: 15s retries: 3 start_period: 60s sdk_relay_2: build: context: .. dockerfile: 4NK_node/sdk_relay/Dockerfile container_name: sdk_relay_2 depends_on: bitcoin: condition: service_healthy blindbit: condition: service_started volumes: - bitcoin_data:/home/bitcoin/.bitcoin - ./bitcoin/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf - sdk_relay_2_data:/home/bitcoin/.4nk - ./sdk_relay/.conf.docker.relay2:/home/bitcoin/.conf.docker ports: - "8092:8090" - "8093:8091" networks: btcnet: aliases: - sdk_relay_2 logging: driver: "json-file" options: max-size: "10m" max-file: "3" environment: - RUST_LOG=debug,bitcoincore_rpc=trace - HOME=/home/bitcoin - BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie - ENABLE_SYNC_TEST=1 restart: on-failure:3 entrypoint: > /bin/sh -c " cp /home/bitcoin/.conf.docker /home/bitcoin/.conf && cp /home/bitcoin/.bitcoin/signet/.cookie /home/bitcoin/.4nk/bitcoin.cookie && chmod 600 /home/bitcoin/.4nk/bitcoin.cookie && echo 'Configuration loaded:' && cat /home/bitcoin/.conf && echo 'Testing DNS resolution:' && getent hosts bitcoin && echo 'Testing connectivity:' && curl -s --connect-timeout 5 http://bitcoin:18443 && echo 'Bitcoin accessible via curl' && echo 'Starting sdk_relay_2:' && /usr/local/bin/sdk_relay --config .conf" healthcheck: test: ["CMD", "/usr/local/bin/healthcheck.sh"] interval: 30s timeout: 15s retries: 3 start_period: 60s sdk_relay_3: build: context: .. dockerfile: 4NK_node/sdk_relay/Dockerfile container_name: sdk_relay_3 depends_on: bitcoin: condition: service_healthy blindbit: condition: service_started volumes: - bitcoin_data:/home/bitcoin/.bitcoin - ./bitcoin/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf - sdk_relay_3_data:/home/bitcoin/.4nk - ./sdk_relay/.conf.docker.relay3:/home/bitcoin/.conf.docker ports: - "8094:8090" - "8095:8091" networks: btcnet: aliases: - sdk_relay_3 logging: driver: "json-file" options: max-size: "10m" max-file: "3" environment: - RUST_LOG=debug,bitcoincore_rpc=trace - HOME=/home/bitcoin - BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie - ENABLE_SYNC_TEST=1 restart: on-failure:3 entrypoint: > /bin/sh -c " cp /home/bitcoin/.conf.docker /home/bitcoin/.conf && cp /home/bitcoin/.bitcoin/signet/.cookie /home/bitcoin/.4nk/bitcoin.cookie && chmod 600 /home/bitcoin/.4nk/bitcoin.cookie && echo 'Configuration loaded:' && cat /home/bitcoin/.conf && echo 'Testing DNS resolution:' && getent hosts bitcoin && echo 'Testing connectivity:' && curl -s --connect-timeout 5 http://bitcoin:18443 && echo 'Bitcoin accessible via curl' && echo 'Starting sdk_relay_3:' && /usr/local/bin/sdk_relay --config .conf" healthcheck: test: ["CMD", "/usr/local/bin/healthcheck.sh"] interval: 30s timeout: 15s retries: 3 start_period: 60s ihm_client: build: context: ./ihm_client dockerfile: Dockerfile container_name: 4nk-ihm-client ports: - "8080:80" environment: - SDK_RELAY_WS_URL=ws://sdk_relay_1:8090 - SDK_RELAY_HTTP_URL=http://sdk_relay_1:8091 - BITCOIN_RPC_URL=http://bitcoin:18443 - BLINDBIT_URL=http://blindbit:8000 volumes: - ihm_client_logs:/var/log/nginx networks: - btcnet depends_on: - sdk_relay_1 - sdk_relay_2 - sdk_relay_3 restart: unless-stopped healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost"] interval: 30s timeout: 10s retries: 3 start_period: 40s volumes: bitcoin_data: name: 4nk_node_bitcoin_data blindbit_data: name: 4nk_node_blindbit_data sdk_relay_1_data: name: 4nk_node_sdk_relay_1_data sdk_relay_2_data: name: 4nk_node_sdk_relay_2_data sdk_relay_3_data: name: 4nk_node_sdk_relay_3_data ihm_client_logs: driver: local networks: btcnet: name: 4nk_node_btcnet driver: bridge