2

I'm having a problem with "connecting" my mempool.space to electrumX server. My bitcoin core is working fine, electrumX server is fine as well and up to chaintip. I've installed docker and docker-compose. Everything works fine, However when I try to docker-compose up it runs fine I guess, but at the end it pops this error and keeps repeating it:

docker-api-1 | Jan 6 11:38:12 [98] ERR: Electrum error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"0.0.0.0","port":50001} docker-api-1 | Jan 6 11:38:12 [98] INFO: Disconnected from Electrum Server at 0.0.0.0:50001

My docker-compose.yml file:

version: "3.7"

services:
  web:
    environment:
      FRONTEND_HTTP_PORT: "8080"
      BACKEND_MAINNET_HTTP_HOST: "api"
    image: mempool/frontend:latest
    user: "1000:1000"
    restart: always
    stop_grace_period: 1m
    command: "./wait-for db:3306 --timeout=720 -- nginx -g 'daemon off;'"
    ports:
      - 4080:8080
  api:
    environment:
      ELECTRUM_HOST: "0.0.0.0"
      ELECTRUM_PORT: "50001"
      ELECTRUM_TLS_ENABLED: "true"
      MEMPOOL_BACKEND: "electrum"
      CORE_RPC_HOST: "0.0.0.0"
      CORE_RPC_PORT: "8332"
      CORE_RPC_USERNAME: "####"
      CORE_RPC_PASSWORD: "####"
      DATABASE_ENABLED: "true"
      DATABASE_HOST: "db"
      DATABASE_DATABASE: "mempool"
      DATABASE_USERNAME: "mempool"
      DATABASE_PASSWORD: "mempool"
      STATISTICS_ENABLED: "true"
    image: mempool/backend:latest
    user: "1000:1000"
    restart: always
    stop_grace_period: 1m
    command: "./wait-for-it.sh db:3306 --timeout=720 --strict -- ./start.sh"
    volumes:
      - ./data:/backend/cache
  db:
    environment:
      MYSQL_DATABASE: "mempool"
      MYSQL_USER: "mempool"
      MYSQL_PASSWORD: "mempool"
      MYSQL_ROOT_PASSWORD: "admin"
    image: mariadb:10.5.8
    user: "1000:1000"
    restart: always
    stop_grace_period: 1m
    volumes:
      - ./mysql/data:/var/lib/mysql

My electrumX.conf file:

# default /etc/electrumx.conf for systemd

# REQUIRED
DB_DIRECTORY = /home/qbr1ck/electrumx_db
# Bitcoin Node RPC Credentials
DAEMON_URL = ####:####@localhost

COIN = Bitcoin
SERVICES = tcp://0.0.0.0:50001
PEER_DISCOVERY = off
COST_SOFT_LIMIT = 0
COST_HARD_LIMIT = 0

User and Password are hashed out in both files, however they are the same.

This is the full output after running docker up, might give some clues

[+] Running 3/3 ⠿ Container docker-db-1 Running 0.0s ⠿ Container docker-web-1 Running 0.0s ⠿ Container docker-api-1 Recreated 60.4s Attaching to docker-api-1, docker-db-1, docker-web-1 docker-api-1 | wait-for-it.sh: waiting 720 seconds for db:3306 docker-api-1 | wait-for-it.sh: db:3306 is available after 0 seconds docker-db-1 | 2023-01-08 13:49:36 6 [Warning] Aborted connection 6 to db: 'unconnected' user: 'unauthenticated' host: '172.16.57.2' (This connection closed normally without authentication) docker-api-1 | Jan 8 13:49:37 [97] NOTICE: Starting Mempool Server... (a210a3f) docker-api-1 | Jan 8 13:49:37 [97] INFO: Restoring mempool and blocks data from disk cache docker-api-1 | Jan 8 13:49:37 [97] ERR: Electrum error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":50001} docker-api-1 | Jan 8 13:49:37 [97] ERR: Error connecting to Electrum Server at localhost:50001 docker-api-1 | Jan 8 13:49:37 [97] INFO: Disconnected from Electrum Server at localhost:50001 docker-api-1 | Jan 8 13:49:37 [97] INFO: Database connection established. docker-api-1 | Jan 8 13:49:37 [97] INFO: Starting statistics service docker-api-1 | Jan 8 13:49:37 [97] INFO: Starting currency rates service docker-api-1 | Jan 8 13:49:37 [97] INFO: Currency rates service will be queried over clearnet using https://price.bisq.wiz.biz/getAllMarketPrices docker-api-1 | Jan 8 13:49:37 [97] NOTICE: Mempool Server is running on port 8999 docker-api-1 | Jan 8 13:49:37 [97] INFO: Updating latest mining pools from https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json over clearnet docker-api-1 | Jan 8 13:49:42 [97] WARN: runMainLoop error: connect ECONNREFUSED 127.0.0.1:8332. Retrying in 10 sec. docker-api-1 | Jan 8 13:49:47 [97] ERR: Electrum error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":50001} docker-api-1 | Jan 8 13:49:47 [97] ERR: Electrum error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":50001} docker-api-1 | Jan 8 13:49:47 [97] INFO: Disconnected from Electrum Server at localhost:50001 docker-api-1 | Jan 8 13:49:52 [97] WARN: runMainLoop error: connect ECONNREFUSED 127.0.0.1:8332. Retrying in 20 sec. docker-api-1 | Jan 8 13:49:57 [97] ERR: Electrum error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":50001} docker-api-1 | Jan 8 13:49:57 [97] ERR: Electrum error: {"errno":-111,"code":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":50001} docker-api-1 | Jan 8 13:49:57 [97] INFO: Disconnected from Electrum Server at localhost:50001

1 Answer 1

0

As far as I can see in your files, you have a problem whit your docker file:

  • ELECTRUM_HOST: "0.0.0.0" ---> should be the IP address from your electrumx server, some like 192.168.0.17, not 0.0.0.0
  • CORE_RPC_HOST: "0.0.0.0"---> same here the IP address should be the IP from your bitcoin core, some like 192.168.0.17, not 0.0.0.0
8
  • In my sparrow wallet I've used 0.0.0.0:50001 as my electrum server and it worked. I've used 0.0.0.0 as address for both my electrumx and core as bitcoin.conf and electrum.conf have it. Bitcoin.conf rpcport=8332 rpcbind=0.0.0.0 electrumx.conf SERVICES = tcp://0.0.0.0:50001 Commented Jan 7, 2023 at 9:54
  • Sparrow could be working because it does some sweep of all the addresses you have locally listening on port 50001 (in this case, bitcoin core or electrumX). I don't think mempool is doing the same thing. It's not usual to configure a server with the IP 0.0.0.0 for exposure to clients. lifewire.com/four-zero-ip-address-818384 Commented Jan 7, 2023 at 11:13
  • 1
    Thanks for that, I guess I should change those four zero addresses in all my conf files, i'll assign new adresses try to get electrum and sparrow to work and then try mempool. Let you know how it goes. Commented Jan 8, 2023 at 12:25
  • So I've tried swapping for localhost address but that didn't work, I thought localhost is the address of the computer I'm running core, electrum and docker on? Shouldn't 127.0.0.1, localhost and 192.168.1.## (## being that computer ip) be all the same? Commented Jan 8, 2023 at 13:02
  • I've tried changing to 192.168 address but then my bitcoin core doesn't work. If you don't mind can you please elaborate what exactly addresses I should have in my bitcoin.conf file, electrumx file and docker.yml file? And where I can find that address? Thanks! Commented Jan 8, 2023 at 13:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.