Skip to content

Handle electrum connection issues

  • Attempts to connect to multiple servers
  • During connect, checks if server responds to version request
  • When a request to server times out, re-connect to server
  • Send ping at invervals to keep connection alive

Example log from android client:

2020-07-30 11:22:01.150 19934-20025/info.bitcoinunlimited.voter I/Electrum: Connecting to bitcoincash.network:50001 ...
2020-07-30 11:22:02.305 19934-20025/info.bitcoinunlimited.voter W/Electrum: Electrum connection error: java.net.ConnectException: failed to connect to bitcoincash.network/3.13.182.215 (port 50001) from /192.168.38.128 (port 37392) after 4000ms: isConnected failed: ECONNREFUSED (Connection refused)
2020-07-30 11:22:02.305 19934-20025/info.bitcoinunlimited.voter I/Electrum: Connecting to electroncash.de:50001 ...
2020-07-30 11:22:02.374 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.version","params":["4.0.1","1.4"],"id": 0}
2020-07-30 11:22:02.430 19934-20025/info.bitcoinunlimited.voter I/Electrum: Connected to electroncash.de:50001. Server version (Fulcrum 1.2.8, 1.4)
2020-07-30 11:22:02.468 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.ping","id": 1}
2020-07-30 11:22:02.576 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.ping","id": 2}
2020-07-30 11:23:02.584 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.ping","id": 3}
2020-07-30 11:24:02.588 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.ping","id": 4}
2020-07-30 11:25:02.587 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.ping","id": 5}
2020-07-30 11:26:02.583 19934-20025/info.bitcoinunlimited.voter I/BU.electrumclient: [electrumclient.kt:488] electroncash.de:50001: Issuing request:{"method": "server.ping","id": 6}

Merge request reports