SomberNight
6 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
2 changed files with
12 additions and
8 deletions
-
electrum/interface.py
-
electrum/network.py
|
|
@ -244,6 +244,8 @@ class BlockHeaderInterface(PrintError): |
|
|
|
could_connect, num_headers = await self.conn.request_chunk(self.height, next_height) |
|
|
|
self.tip = max(self.height + num_headers, self.tip) |
|
|
|
if not could_connect: |
|
|
|
if self.height <= self.iface.network.max_checkpoint(): |
|
|
|
raise Exception('server chain conflicts with checkpoints or genesis') |
|
|
|
last = await self.step() |
|
|
|
self.tip = max(self.height, self.tip) |
|
|
|
continue |
|
|
|
|
|
@ -809,14 +809,16 @@ class Network(PrintError): |
|
|
|
asyncio.get_event_loop().create_task(self.new_interface(server)) |
|
|
|
remove = [] |
|
|
|
for k, i in self.interfaces.items(): |
|
|
|
if i.fut.done(): |
|
|
|
if i.exception: |
|
|
|
try: |
|
|
|
raise i.exception |
|
|
|
except BaseException as e: |
|
|
|
self.print_error(i.server, "errored because", str(e), str(type(e))) |
|
|
|
else: |
|
|
|
assert False, "interface future should not finish without exception" |
|
|
|
if i.fut.done() and not i.exception: |
|
|
|
assert False, "interface future should not finish without exception" |
|
|
|
if i.exception: |
|
|
|
if not i.fut.done(): |
|
|
|
try: i.fut.cancel() |
|
|
|
except Exception as e: self.print_error('exception while cancelling fut', e) |
|
|
|
try: |
|
|
|
raise i.exception |
|
|
|
except BaseException as e: |
|
|
|
self.print_error(i.server, "errored because", str(e), str(type(e))) |
|
|
|
remove.append(k) |
|
|
|
changed = False |
|
|
|
for k in remove: |
|
|
|