send server height and server lag with daemon
This commit is contained in:
@@ -105,7 +105,6 @@ class Network(threading.Thread):
|
||||
self.heights = {}
|
||||
self.merkle_roots = {}
|
||||
self.utxo_roots = {}
|
||||
self.server_lag = 0
|
||||
|
||||
dir_path = os.path.join( self.config.path, 'certs')
|
||||
if not os.path.exists(dir_path):
|
||||
@@ -119,6 +118,17 @@ class Network(threading.Thread):
|
||||
|
||||
self.connection_status = 'connecting'
|
||||
|
||||
def get_server_height(self):
|
||||
return self.heights.get(self.default_server,0)
|
||||
|
||||
def server_is_lagging(self):
|
||||
h = self.get_server_height()
|
||||
if not h:
|
||||
print_error('no height for main interface')
|
||||
return False
|
||||
lag = self.get_local_height() - self.get_server_height()
|
||||
return lag > 1
|
||||
|
||||
def set_status(self, status):
|
||||
self.connection_status = status
|
||||
self.trigger_callback('status')
|
||||
@@ -247,7 +257,7 @@ class Network(threading.Thread):
|
||||
if not self.interface.is_connected:
|
||||
self.switch_to_random_interface()
|
||||
else:
|
||||
if self.server_lag > 0:
|
||||
if self.server_is_lagging():
|
||||
self.stop_interface()
|
||||
else:
|
||||
self.set_server(server)
|
||||
@@ -262,9 +272,6 @@ class Network(threading.Thread):
|
||||
server = interface.server
|
||||
print_error("switching to", server)
|
||||
self.interface = interface
|
||||
h = self.heights.get(server)
|
||||
if h:
|
||||
self.server_lag = self.blockchain.height() - h
|
||||
self.config.set_key('server', server, False)
|
||||
self.default_server = server
|
||||
self.send_subscriptions()
|
||||
@@ -310,15 +317,10 @@ class Network(threading.Thread):
|
||||
|
||||
def new_blockchain_height(self, blockchain_height, i):
|
||||
if self.is_connected():
|
||||
h = self.heights.get(self.interface.server)
|
||||
if h:
|
||||
self.server_lag = blockchain_height - h
|
||||
if self.server_lag > 1:
|
||||
print_error( "Server is lagging", blockchain_height, h)
|
||||
if self.config.get('auto_cycle'):
|
||||
self.set_server(i.server)
|
||||
else:
|
||||
print_error('no height for main interface')
|
||||
if self.server_is_lagging():
|
||||
print_error( "Server is lagging", blockchain_height, h)
|
||||
if self.config.get('auto_cycle'):
|
||||
self.set_server(i.server)
|
||||
|
||||
self.trigger_callback('updated')
|
||||
|
||||
@@ -377,8 +379,7 @@ class Network(threading.Thread):
|
||||
self.blockchain.queue.put((i,result))
|
||||
|
||||
if i == self.interface:
|
||||
self.server_lag = self.blockchain.height() - height
|
||||
if self.server_lag > 1 and self.config.get('auto_cycle'):
|
||||
if self.server_is_lagging() and self.config.get('auto_cycle'):
|
||||
print_error( "Server lagging, stopping interface")
|
||||
self.stop_interface()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user