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