added check for old inactive nodes
This commit is contained in:
		
							parent
							
								
									bb3e2b999b
								
							
						
					
					
						commit
						e6baedd6ed
					
				| @ -115,9 +115,34 @@ Collection.prototype.getNodeOrNew = function(search, data) | ||||
| 
 | ||||
| Collection.prototype.all = function() | ||||
| { | ||||
| 	this.removeOldNodes(); | ||||
| 
 | ||||
| 	return this._items; | ||||
| } | ||||
| 
 | ||||
| Collection.prototype.removeOldNodes = function() | ||||
| { | ||||
| 	var deleteList = [] | ||||
| 
 | ||||
| 	for(var i = this._items.length - 1; i >= 0; i--) | ||||
| 	{ | ||||
| 		var node = this._items[i]; | ||||
| 
 | ||||
| 		if( node.isInactiveAndOld() ) | ||||
| 		{ | ||||
| 			deleteList.push(i); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if(deleteList.length > 0) | ||||
| 	{ | ||||
| 		for(var i = 0; i < deleteList.length; i++) | ||||
| 		{ | ||||
| 			this._items.splice(deleteList[i], 1); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| Collection.prototype.blockPropagationChart = function() | ||||
| { | ||||
| 	return this._blockchain.getBlockPropagation(); | ||||
|  | ||||
| @ -2,6 +2,7 @@ var geoip = require('geoip-lite'); | ||||
| var _ = require('lodash'); | ||||
| 
 | ||||
| var MAX_HISTORY = 40; | ||||
| var MAX_INACTIVE_TIME = 1000; | ||||
| 
 | ||||
| var Node = function Node(data) | ||||
| { | ||||
| @ -180,4 +181,20 @@ Node.prototype.canUpdate = function() | ||||
| 	return this.info.canUpdateHistory || false; | ||||
| } | ||||
| 
 | ||||
| Node.prototype.isInactiveAndOld = function() | ||||
| { | ||||
| 	if(this.stats.active) | ||||
| 		return false; | ||||
| 
 | ||||
| 	var lastState = this.uptime.history[this.uptime.history.length -1]; | ||||
| 
 | ||||
| 	if( !_.isUndefined(lastState) && !_.isUndefined(lastState.status) && !_.isUndefined(lastState.time) ) | ||||
| 	{ | ||||
| 		if( lastState.status === 'down' && (_.now() - lastState.time) > MAX_INACTIVE_TIME ) | ||||
| 			return true; | ||||
| 	} | ||||
| 
 | ||||
| 	return false; | ||||
| } | ||||
| 
 | ||||
| module.exports = Node; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user