First message on an interface is server.version (#4407)
- Use server.ping to ping (valid as of protocol version 1.2) rather
than server.version (deprecated as a ping)
- Ping every 5 mins rather than every 1 minute. By default servers
don't consider a connection stale until 10 minutes of inactivity.
- Remove unused last_request member of interface
Port of c3f26e59db
This commit is contained in:
@@ -307,9 +307,6 @@ class Network(util.DaemonThread):
|
||||
# Resend unanswered requests
|
||||
requests = self.unanswered_requests.values()
|
||||
self.unanswered_requests = {}
|
||||
if self.interface.ping_required():
|
||||
params = [ELECTRUM_VERSION, PROTOCOL_VERSION]
|
||||
self.queue_request('server.version', params, self.interface)
|
||||
for request in requests:
|
||||
message_id = self.queue_request(request[0], request[1])
|
||||
self.unanswered_requests[message_id] = request
|
||||
@@ -711,6 +708,9 @@ class Network(util.DaemonThread):
|
||||
interface.mode = 'default'
|
||||
interface.request = None
|
||||
self.interfaces[server] = interface
|
||||
# server.version should be the first message
|
||||
params = [ELECTRUM_VERSION, PROTOCOL_VERSION]
|
||||
self.queue_request('server.version', params, interface)
|
||||
self.queue_request('blockchain.headers.subscribe', [True], interface)
|
||||
if server == self.default_server:
|
||||
self.switch_to_interface(server)
|
||||
@@ -734,8 +734,7 @@ class Network(util.DaemonThread):
|
||||
if interface.has_timed_out():
|
||||
self.connection_down(interface.server)
|
||||
elif interface.ping_required():
|
||||
params = [ELECTRUM_VERSION, PROTOCOL_VERSION]
|
||||
self.queue_request('server.version', params, interface)
|
||||
self.queue_request('server.ping', [], interface)
|
||||
|
||||
now = time.time()
|
||||
# nodes
|
||||
|
||||
Reference in New Issue
Block a user