spesmilo / electrum

Electrum Bitcoin Wallet
https://electrum.org
MIT License
7.34k stars 3.06k forks source link

sync problems with electrum 3.3.4 #5258

Open blockonomics opened 5 years ago

blockonomics commented 5 years ago

Today I reopened electrum serveral times and it is stuck on synchronizing. Sometimes it gives this


Traceback (most recent call last):
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/synchronizer.py", line 94, in subscribe_to_address
    await self.session.subscribe('blockchain.scripthash.subscribe', [h], self.status_queue)
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 122, in subscribe
    result = await self.send_request(method, params)
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 109, in send_request
    raise RequestTimedOut(f'request timed out: {args} (id: {msg_id})') from e
electrum.interface.RequestTimedOut: Network request timed out.
Task exception was never retrieved
future: <Task finished coro=<subscribe_to_address() done, defined at /home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/synchronizer.py:91> exception=RequestTimedOut("request timed out: ('blockchain.scripthash.subscribe', ['ee0f0c5ad574312d0140689097b687c892e64546d3f60257039bdd5d00c3e608']) (id: 49)",)>
Traceback (most recent call last):
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 107, in send_request
    timeout)
  File "/usr/lib/python3.6/asyncio/tasks.py", line 362, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError

Sometimes it gives this

  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/aiorpcx/curio.py", line 210, in join
    await self.cancel_remaining()
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/aiorpcx/curio.py", line 223, in cancel_remaining
    await task
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/synchronizer.py", line 94, in subscribe_to_address
    await self.session.subscribe('blockchain.scripthash.subscribe', [h], self.status_queue)
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 122, in subscribe
    result = await self.send_request(method, params)
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 107, in send_request
    timeout)
  File "/usr/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
    return fut.result()
  File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/aiorpcx/session.py", line 469, in send_request
    raise result
aiorpcx.jsonrpc.RPCError: (1, 'server subscription limit 1,100 reached')
SomberNight commented 5 years ago

Try another server. Servers are being DDOS'ed.

Is this with auto connect enabled btw?

In the first trace, requests are timing out.

In the second, the operator set very low limits, probably because of the DDOS.

-------- Original Message -------- On 8 Apr 2019, 09:57, Blockonomics wrote:

Today I reopened electrum serveral times and it is stuck on synchronizing. Sometimes it gives this

Traceback (most recent call last): File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/synchronizer.py", line 94, in subscribe_to_address await self.session.subscribe('blockchain.scripthash.subscribe', [h], self.status_queue) File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 122, in subscribe result = await self.send_request(method, params) File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 109, in send_request raise RequestTimedOut(f'request timed out: {args} (id: {msg_id})') from e electrum.interface.RequestTimedOut: Network request timed out. Task exception was never retrieved future: <Task finished coro=<subscribe_to_address() done, defined at /home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/synchronizer.py:91> exception=RequestTimedOut("request timed out: ('blockchain.scripthash.subscribe', ['ee0f0c5ad574312d0140689097b687c892e64546d3f60257039bdd5d00c3e608']) (id: 49)",)> Traceback (most recent call last): File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 107, in send_request timeout) File "/usr/lib/python3.6/asyncio/tasks.py", line 362, in wait_for raise futures.TimeoutError() concurrent.futures._base.TimeoutError

Sometimes it gives this

File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/aiorpcx/curio.py", line 210, in join await self.cancel_remaining() File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/aiorpcx/curio.py", line 223, in cancel_remaining await task File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/synchronizer.py", line 94, in subscribe_to_address await self.session.subscribe('blockchain.scripthash.subscribe', [h], self.status_queue) File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 122, in subscribe result = await self.send_request(method, params) File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/electrum/interface.py", line 107, in send_request timeout) File "/usr/lib/python3.6/asyncio/tasks.py", line 358, in wait_for return fut.result() File "/home/enigma/venvs/electrum/lib/python3.6/site-packages/aiorpcx/session.py", line 469, in send_request raise result aiorpcx.jsonrpc.RPCError: (1, 'server subscription limit 1,100 reached')

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

blockonomics commented 5 years ago

Not sure how to enable autoconnect or try other server. I am just launching default electrum without any arguments

blockonomics commented 5 years ago

Update: Here are the screenshots... its still having trouble synchronizing after finding 7 servers. If some servers are getting DDOSed is there an option to switch servers automaticaly Screenshot from 2019-04-08 15-36-37 Screenshot from 2019-04-08 15-36-21

ecdsa commented 5 years ago

we are testing anti-dos measures on some servers. better disable auto-connect, and persist with the same server until it connects.

SomberNight commented 5 years ago

try servers at the top of https://1209k.com/bitcoin-eye/ele.php try e.g. (all ssl)

electrum.hodlister.co:50002
arboghast.bauerj.eu:50002
btc.jochen-hoenicke.de:50002
fortress.qtornado.com:50002
blockonomics commented 5 years ago

After working for a while, again this is an issue today. I have tried servers from https://1209k.com/bitcoin-eye/ele.php namely btc.jochen-hoenicke.de:50002 dedi.jochen-hoenicke.de electrum.hodlister.co:50002

Is there a proposed solution for this ? Maybe a captcha. Manual users that complete captcha should be given priority and and not face problem. Bots can be rate limited

jhoenicke commented 5 years ago

What currently works: open network dialog, connect to dedi.jochen-hoenicke.de, go to the tab "Overview", wait for servers to pop up, select one of them.

That server currently only delivers server information, not wallet information, so you cannot sync, but it should help you to find a good server. Note that my server is ddos-ed heavily, so you may have difficulties to connect - using ipv6 helps.