commit
a234329103
@ -436,6 +436,25 @@ History.prototype.getBlockTimes = function()
|
|||||||
return blockTimes;
|
return blockTimes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
History.prototype.getGasLimit = function()
|
||||||
|
{
|
||||||
|
var gasLimitHistory = _( this._items )
|
||||||
|
.sortByOrder( 'height', false )
|
||||||
|
// .filter(function (item)
|
||||||
|
// {
|
||||||
|
// return item.block.trusted;
|
||||||
|
// })
|
||||||
|
.slice(0, MAX_BINS)
|
||||||
|
.reverse()
|
||||||
|
.map(function (item)
|
||||||
|
{
|
||||||
|
return item.block.gasLimit;
|
||||||
|
})
|
||||||
|
.value();
|
||||||
|
|
||||||
|
return gasLimitHistory;
|
||||||
|
}
|
||||||
|
|
||||||
History.prototype.getDifficulty = function()
|
History.prototype.getDifficulty = function()
|
||||||
{
|
{
|
||||||
var difficultyHistory = _( this._items )
|
var difficultyHistory = _( this._items )
|
||||||
@ -540,7 +559,7 @@ History.prototype.getMinersCount = function()
|
|||||||
|
|
||||||
return _(minerCount)
|
return _(minerCount)
|
||||||
.sortByOrder( 'blocks', false )
|
.sortByOrder( 'blocks', false )
|
||||||
.slice(0, 5)
|
.slice(0, 2)
|
||||||
.value();
|
.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -570,6 +589,7 @@ History.prototype.getCharts = function()
|
|||||||
uncles: item.block.uncles.length,
|
uncles: item.block.uncles.length,
|
||||||
transactions: item.block.transactions.length,
|
transactions: item.block.transactions.length,
|
||||||
gasSpending: item.block.gasUsed,
|
gasSpending: item.block.gasUsed,
|
||||||
|
gasLimit: item.block.gasLimit,
|
||||||
miner: item.block.miner
|
miner: item.block.miner
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
@ -583,6 +603,7 @@ History.prototype.getCharts = function()
|
|||||||
uncles : _.pluck( chartHistory, 'uncles' ),
|
uncles : _.pluck( chartHistory, 'uncles' ),
|
||||||
transactions : _.pluck( chartHistory, 'transactions' ),
|
transactions : _.pluck( chartHistory, 'transactions' ),
|
||||||
gasSpending : _.pluck( chartHistory, 'gasSpending' ),
|
gasSpending : _.pluck( chartHistory, 'gasSpending' ),
|
||||||
|
gasLimit : _.pluck( chartHistory, 'gasLimit' ),
|
||||||
miners : this.getMinersCount(),
|
miners : this.getMinersCount(),
|
||||||
propagation : this.getBlockPropagation(),
|
propagation : this.getBlockPropagation(),
|
||||||
uncleCount : this.getUncleCount(),
|
uncleCount : this.getUncleCount(),
|
||||||
|
@ -343,7 +343,7 @@ nodepropagchart {
|
|||||||
position: relative;
|
position: relative;
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 282px;
|
height: 242px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ netStatsApp.controller('StatsCtrl', function($scope, $filter, $localStorage, soc
|
|||||||
$scope.uncleCount = 0;
|
$scope.uncleCount = 0;
|
||||||
$scope.bestStats = {};
|
$scope.bestStats = {};
|
||||||
|
|
||||||
|
$scope.lastGasLimit = _.fill(Array(MAX_BINS), 2);
|
||||||
$scope.lastBlocksTime = _.fill(Array(MAX_BINS), 2);
|
$scope.lastBlocksTime = _.fill(Array(MAX_BINS), 2);
|
||||||
$scope.difficultyChart = _.fill(Array(MAX_BINS), 2);
|
$scope.difficultyChart = _.fill(Array(MAX_BINS), 2);
|
||||||
$scope.transactionDensity = _.fill(Array(MAX_BINS), 2);
|
$scope.transactionDensity = _.fill(Array(MAX_BINS), 2);
|
||||||
@ -327,6 +328,9 @@ netStatsApp.controller('StatsCtrl', function($scope, $filter, $localStorage, soc
|
|||||||
if( !_.isEqual($scope.avgHashrate, data.avgHashrate) )
|
if( !_.isEqual($scope.avgHashrate, data.avgHashrate) )
|
||||||
$scope.avgHashrate = data.avgHashrate;
|
$scope.avgHashrate = data.avgHashrate;
|
||||||
|
|
||||||
|
if( !_.isEqual($scope.lastGasLimit, data.gasLimit) && data.gasLimit.length >= MAX_BINS )
|
||||||
|
$scope.lastGasLimit = data.gasLimit;
|
||||||
|
|
||||||
if( !_.isEqual($scope.lastBlocksTime, data.blocktime) && data.blocktime.length >= MAX_BINS )
|
if( !_.isEqual($scope.lastBlocksTime, data.blocktime) && data.blocktime.length >= MAX_BINS )
|
||||||
$scope.lastBlocksTime = data.blocktime;
|
$scope.lastBlocksTime = data.blocktime;
|
||||||
|
|
||||||
|
@ -211,13 +211,13 @@ angular.module('netStatsApp.directives', [])
|
|||||||
element.empty();
|
element.empty();
|
||||||
|
|
||||||
var width = 628,
|
var width = 628,
|
||||||
height = 244;
|
height = 202;
|
||||||
|
|
||||||
scope.map = new Datamap({
|
scope.map = new Datamap({
|
||||||
element: element[0],
|
element: element[0],
|
||||||
scope: 'world',
|
scope: 'world',
|
||||||
width: width,
|
width: width,
|
||||||
height: 300,
|
height: 242,
|
||||||
fills: {
|
fills: {
|
||||||
success: '#7BCC3A',
|
success: '#7BCC3A',
|
||||||
info: '#10A0DE',
|
info: '#10A0DE',
|
||||||
|
@ -60,93 +60,104 @@ block content
|
|||||||
|
|
||||||
|
|
||||||
div.row(ng-cloak)
|
div.row(ng-cloak)
|
||||||
div.col-xs-8.stats-boxes(style="padding-top: 0px;")
|
div.col-xs-12.stats-boxes(style="padding-top: 0px;")
|
||||||
div.row.second-row
|
div.row.second-row
|
||||||
div.col-xs-3.stat-holder.box
|
div.col-xs-2.stat-holder.box
|
||||||
div.active-nodes(class="{{ nodesActive | nodesActiveClass : nodesTotal }}")
|
div.active-nodes(class="{{ nodesActive | nodesActiveClass : nodesTotal }}")
|
||||||
i.icon-node
|
i.icon-node
|
||||||
span.small-title active nodes
|
span.small-title active nodes
|
||||||
span.small-value {{nodesActive}}/{{nodesTotal}}
|
span.small-value {{nodesActive}}/{{nodesTotal}}
|
||||||
//- div.col-xs-3.stat-holder.box
|
div.col-xs-2.stat-holder.box
|
||||||
//- div.difficulty.text-info
|
|
||||||
//- i.icon-difficulty
|
|
||||||
//- span.small-title difficulty
|
|
||||||
//- span.small-value {{ lastDifficulty | number }}
|
|
||||||
div.col-xs-3.stat-holder.box
|
|
||||||
div.gasprice.text-info
|
div.gasprice.text-info
|
||||||
i.icon-gasprice
|
i.icon-gasprice
|
||||||
span.small-title gas price
|
span.small-title gas price
|
||||||
span.small-value {{ bestStats.gasPrice.toString() | gasPriceFilter }}
|
span.small-value {{ bestStats.gasPrice.toString() | gasPriceFilter }}
|
||||||
div.col-xs-3.stat-holder.box
|
div.col-xs-2.stat-holder.box
|
||||||
|
div.gasprice.text-info
|
||||||
|
i.icon-gasprice
|
||||||
|
span.small-title gas limit
|
||||||
|
span.small-value {{ bestStats.block.gasLimit }} gas
|
||||||
|
div.col-xs-2.stat-holder.box
|
||||||
div.page-latency(class="{{ {active: true, latency: latency} | latencyClass }}")
|
div.page-latency(class="{{ {active: true, latency: latency} | latencyClass }}")
|
||||||
i.icon-clock
|
i.icon-clock
|
||||||
span.small-title page latency
|
span.small-title page latency
|
||||||
span.small-value {{latency}} ms
|
span.small-value {{latency}} ms
|
||||||
div.col-xs-3.stat-holder.box
|
div.col-xs-2.stat-holder.box
|
||||||
div.uptime(class="{{ upTimeTotal | upTimeClass : true }}")
|
div.uptime(class="{{ upTimeTotal | upTimeClass : true }}")
|
||||||
i.icon-bulb
|
i.icon-bulb
|
||||||
span.small-title uptime
|
span.small-title uptime
|
||||||
span.small-value {{ upTimeTotal | upTimeFilter }}
|
span.small-value {{ upTimeTotal | upTimeFilter }}
|
||||||
|
div.col-xs-2.stat-holder.box
|
||||||
|
|
||||||
div.row
|
div.row
|
||||||
div.col-xs-3.stat-holder
|
div.col-xs-8
|
||||||
div.big-info.chart(class="{{ avgBlockTime | avgTimeClass }}")
|
div.row
|
||||||
//- i.icon-time
|
div.col-xs-3.stat-holder
|
||||||
span.small-title block time
|
div.big-info.chart(class="{{ avgBlockTime | avgTimeClass }}")
|
||||||
//- span.small-value {{ avgBlockTime | avgTimeFilter }}
|
//- i.icon-time
|
||||||
sparkchart.big-details.spark-blocktimes(data="{{lastBlocksTime.join(',')}}", tooltipsuffix="s")
|
span.small-title block time
|
||||||
|
//- span.small-value {{ avgBlockTime | avgTimeFilter }}
|
||||||
|
sparkchart.big-details.spark-blocktimes(data="{{lastBlocksTime.join(',')}}", tooltipsuffix="s")
|
||||||
|
|
||||||
div.col-xs-3.stat-holder
|
div.col-xs-3.stat-holder
|
||||||
div.big-info.chart.text-info
|
div.big-info.chart.text-info
|
||||||
//- i.icon-difficulty
|
//- i.icon-difficulty
|
||||||
span.small-title difficulty
|
span.small-title difficulty
|
||||||
//- span.small-value {{ lastDifficulty | number }}
|
//- span.small-value {{ lastDifficulty | number }}
|
||||||
sparkchart.big-details.spark-difficulty(data="{{difficultyChart.join(',')}}")
|
sparkchart.big-details.spark-difficulty(data="{{difficultyChart.join(',')}}")
|
||||||
|
|
||||||
div.col-xs-3.stat-holder.xpull-right
|
div.col-xs-3.stat-holder.xpull-right
|
||||||
div.big-info.chart.xdouble-chart(class="{{ blockPropagationAvg | propagationAvgTimeClass : true }}")
|
div.big-info.chart.xdouble-chart(class="{{ blockPropagationAvg | propagationAvgTimeClass : true }}")
|
||||||
//- i.icon-gas
|
//- i.icon-gas
|
||||||
span.small-title block propagation
|
span.small-title block propagation
|
||||||
//- span.small-value {{ blockPropagationAvg | blockPropagationFilter : '' }}
|
//- span.small-value {{ blockPropagationAvg | blockPropagationFilter : '' }}
|
||||||
histogram.big-details.d3-blockpropagation(data="blockPropagationChart")
|
histogram.big-details.d3-blockpropagation(data="blockPropagationChart")
|
||||||
|
|
||||||
div.col-xs-3.stat-holder.pull-right
|
div.col-xs-3.stat-holder.xpull-right
|
||||||
div.big-info.chart.double-chart
|
div.big-info.chart.xdouble-chart
|
||||||
span.small-title last blocks miners
|
span.small-title last blocks miners
|
||||||
div.blocks-holder(ng-repeat='miner in miners track by miner.miner', data-toggle="tooltip", data-placement="right", data-original-title="{{miner.blocks}}")
|
div.blocks-holder(ng-repeat='miner in miners track by miner.miner', data-toggle="tooltip", data-placement="right", data-original-title="{{miner.blocks}}")
|
||||||
div.block-count(class="{{miner.blocks | minerBlocksClass : 'text-'}}") {{miner.blocks}}
|
div.block-count(class="{{miner.blocks | minerBlocksClass : 'text-'}}") {{miner.blocks}}
|
||||||
//- div.small-title-miner {{miner.miner | minerNameFilter : miner.name}}
|
//- div.small-title-miner {{miner.miner | minerNameFilter : miner.name}}
|
||||||
div.small-title-miner {{miner.miner}}
|
div.small-title-miner {{miner.miner}}
|
||||||
minerblock(blocks="{{miner.blocks}}")
|
minerblock(blocks="{{miner.blocks}}")
|
||||||
div.clearfix
|
div.clearfix
|
||||||
|
|
||||||
div.col-xs-3.stat-holder
|
div.col-xs-3.stat-holder
|
||||||
div.big-info.chart.text-info
|
div.big-info.chart.text-info
|
||||||
//- i.icon-uncle
|
//- i.icon-uncle
|
||||||
span.small-title uncle count
|
span.small-title uncle count
|
||||||
span.small (25 blocks per bar)
|
span.small (25 blocks per bar)
|
||||||
//- span.small-value {{ bestStats.block.uncles.length }}/{{ uncleCount }}
|
//- span.small-value {{ bestStats.block.uncles.length }}/{{ uncleCount }}
|
||||||
sparkchart.big-details.spark-uncles(data="{{uncleCountChart.join(',')}}")
|
sparkchart.big-details.spark-uncles(data="{{uncleCountChart.join(',')}}")
|
||||||
|
|
||||||
div.col-xs-3.stat-holder
|
div.col-xs-3.stat-holder
|
||||||
div.big-info.chart.text-info
|
div.big-info.chart.text-info
|
||||||
//- i.icon-uncle
|
//- i.icon-uncle
|
||||||
span.small-title transactions
|
span.small-title transactions
|
||||||
sparkchart.big-details.spark-transactions(data="{{transactionDensity.join(',')}}")
|
sparkchart.big-details.spark-transactions(data="{{transactionDensity.join(',')}}")
|
||||||
|
|
||||||
div.col-xs-3.stat-holder
|
div.col-xs-3.stat-holder
|
||||||
div.big-info.chart.text-info
|
div.big-info.chart.text-info
|
||||||
//- i.icon-gasprice
|
//- i.icon-gasprice
|
||||||
span.small-title gas spending
|
span.small-title gas spending
|
||||||
sparkchart.big-details.spark-gasspending(data="{{gasSpending.join(',')}}")
|
sparkchart.big-details.spark-gasspending(data="{{gasSpending.join(',')}}")
|
||||||
|
|
||||||
|
div.col-xs-3.stat-holder
|
||||||
|
div.big-info.chart.text-info
|
||||||
|
//- i.icon-difficulty
|
||||||
|
span.small-title gas limit
|
||||||
|
//- span.small-value {{ lastDifficulty | number }}
|
||||||
|
sparkchart.big-details.spark-difficulty(data="{{lastGasLimit.join(',')}}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
div.col-xs-4.stat-holder.map-holder
|
div.col-xs-4.stat-holder.map-holder
|
||||||
//- div.col-xs-12
|
//- div.col-xs-12
|
||||||
nodemap#mapHolder(data="map")
|
nodemap#mapHolder(data="map")
|
||||||
|
|
||||||
//- div.col-xs-12.stats-boxes
|
//- div.row
|
||||||
|
div.col-xs-12.stats-boxes
|
||||||
div.row.second-row
|
div.row.second-row
|
||||||
div.col-xs-12.stat-holder.box
|
div.col-xs-12.stat-holder.box
|
||||||
div.active-nodes.text-orange
|
div.active-nodes.text-orange
|
||||||
@ -154,6 +165,7 @@ block content
|
|||||||
span.small-title Block #1028201 hash
|
span.small-title Block #1028201 hash
|
||||||
span.small-value {{frontierHash}}
|
span.small-value {{frontierHash}}
|
||||||
|
|
||||||
|
|
||||||
//- div.clearfix
|
//- div.clearfix
|
||||||
|
|
||||||
div.row(ng-cloak, style="padding-top: 10px")
|
div.row(ng-cloak, style="padding-top: 10px")
|
||||||
|
Loading…
Reference in New Issue
Block a user