You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
9.1 KiB
217 lines
9.1 KiB
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
<title>MoneroProxy</title> |
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> |
|
<link href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/spacelab/bootstrap.min.css" rel="stylesheet"> |
|
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> |
|
<script src="//cdn.polyfill.io/v2/polyfill.min.js"></script> |
|
<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js"></script> |
|
<script src="handlebars-intl.min.js"></script> |
|
<link href="style.css" rel="stylesheet"> |
|
<script src="script.js"></script> |
|
</head> |
|
<body> |
|
<script id="stats-template" type="text/x-handlebars-template"> |
|
<div class="row marketing"> |
|
<div class="col-xs-6"> |
|
<dl class="dl-horizontal"> |
|
<dt>Hashrate</dt> |
|
<dd><span class="badge alert-info">{{formatNumber hashrate maximumFractionDigits=2}}</span></dd> |
|
<dt>Hashrate 24h</dt> |
|
<dd><span class="badge alert-info">{{formatNumber hashrate24h maximumFractionDigits=2}}</span></dd> |
|
<dt>Total Miners</dt> |
|
<dd><span class="badge alert-info">{{totalMiners}}</span></dd> |
|
<dt>Miners Online</dt> |
|
<dd><span class="badge alert-success">{{totalOnline}}</span></dd> |
|
</dl> |
|
</div> |
|
<div class="col-xs-6"> |
|
<dl class="dl-horizontal"> |
|
{{#if current}} |
|
<dt>Accepted</dt> |
|
<dd><span class="badge alert-success">{{formatNumber current.accepts}}</span></dd> |
|
<dt>Rejected</dt> |
|
<dd><span class="badge alert-danger">{{formatNumber current.rejects}}</span></dd> |
|
{{/if}} |
|
<dt>Miners Timed Out</dt> |
|
<dd><span class="badge alert-danger">{{formatNumber timedOut}}</span></dd> |
|
{{#if current.lastSubmissionAt}} |
|
<dt>Last Submission</dt> |
|
<dd><span class="badge alert-info">{{formatRelative current.lastSubmissionAt now=now}}</span></dd> |
|
{{/if}} |
|
</dl> |
|
</div> |
|
<div class="col-xs-12"> |
|
{{#if template}} |
|
<p> |
|
<strong>Block Height:</strong> <span class="label label-primary">{{height}}</span> |
|
<strong>Difficulty:</strong> <span class="label label-primary">{{formatNumber diff}}</span> |
|
<strong>Prev. Hash:</strong> <span class="label label-primary">{{prevHash}}</span> |
|
</p> |
|
{{/if}} |
|
</div> |
|
<div class="col-xs-12"> |
|
<p> |
|
<strong>Blocks {{luck.window}}:</strong> <span class="label label-primary">{{formatNumber luck.blocksCount}}</span> |
|
<strong>Shares/Diff {{luck.window}}:</strong> |
|
<span class="label label-primary">{{formatNumber luck.variance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</span> |
|
<strong>Blocks {{luck.largeWindow}}:</strong> <span class="label label-primary">{{formatNumber luck.totalBlocksCount}}</span> |
|
<strong>Shares/Diff {{luck.largeWindow}}:</strong> |
|
<span class="label label-primary">{{formatNumber luck.totalVariance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</span> |
|
{{#if template}} |
|
<strong>Round Progress:</strong> |
|
<span class="label label-primary">{{formatNumber variance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</span> |
|
{{/if}} |
|
</p> |
|
</div> |
|
<div class="col-xs-12"> |
|
<h4>Upstream</h4> |
|
<table class="table table-condensed"> |
|
<tr> |
|
<th>Name</th> |
|
<th>Url</th> |
|
<th>Accepted</th> |
|
<th>Rejected</th> |
|
<th>Fails</th> |
|
</tr> |
|
{{#each upstreams}} |
|
{{#if sick}} |
|
<tr class="danger"> |
|
{{else}} |
|
<tr class="success"> |
|
{{/if}} |
|
{{#if current}} |
|
<td><strong>{{name}}</strong></td> |
|
{{else}} |
|
<td>{{name}}</td> |
|
{{/if}} |
|
<td>{{url}}</td> |
|
<td>{{formatNumber accepts}}</td> |
|
<td><strong>{{formatNumber rejects}}</strong></td> |
|
<td>{{failsCount}}</td> |
|
</tr> |
|
{{/each}} |
|
</table> |
|
</div> |
|
<div class="col-xs-12"> |
|
<h4>Miners</h4> |
|
<div class="table-responsive"> |
|
<table class="table table-condensed"> |
|
<tr> |
|
<th>ID</th> |
|
<th>IP</th> |
|
<th>HR</th> |
|
<th>HR 24h</th> |
|
<th>Last Beat</th> |
|
<th>Accepted</th> |
|
<th>Stale</th> |
|
<th>Rejected</th> |
|
<th>Blocks Accepted</th> |
|
<th>Blocks Rejected</th> |
|
</tr> |
|
{{#each miners}} |
|
{{#if timeout}} |
|
<tr class="danger"> |
|
{{else}} |
|
{{#if warning}} |
|
<tr class="warning"> |
|
{{else}} |
|
<tr class="success"> |
|
{{/if}} |
|
{{/if}} |
|
<td>{{name}}</td> |
|
<td> |
|
{{#if ip}} |
|
{{ip}} |
|
{{else}} |
|
— |
|
{{/if}} |
|
</td> |
|
<td>{{formatNumber hashrate maximumFractionDigits=2}}</td> |
|
<td>{{formatNumber hashrate24h maximumFractionDigits=2}}</td> |
|
<td>{{formatRelative lastBeat now=../now}}</td> |
|
<td>{{formatNumber validShares}}</td> |
|
<td>{{formatNumber staleShares}}</td> |
|
<td><strong>{{formatNumber invalidShares}}</strong></td> |
|
<td>{{formatNumber accepts}}</td> |
|
<td>{{formatNumber rejects}}</td> |
|
</tr> |
|
{{/each}} |
|
</table> |
|
</div> |
|
</div> |
|
</div> |
|
</script> |
|
<script id="blocks-template" type="text/x-handlebars-template"> |
|
<div class="row marketing"> |
|
<div class="col-xs-12"> |
|
<p> |
|
<strong>Blocks {{luck.window}}:</strong> <span class="label label-primary">{{formatNumber luck.blocksCount}}</span> |
|
<strong>Shares/Diff {{luck.window}}:</strong> |
|
<span class="label label-primary">{{formatNumber luck.variance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</span> |
|
<strong>Blocks {{luck.largeWindow}}:</strong> <span class="label label-primary">{{formatNumber luck.totalBlocksCount}}</span> |
|
<strong>Shares/Diff {{luck.largeWindow}}:</strong> |
|
<span class="label label-primary">{{formatNumber luck.totalVariance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</span> |
|
{{#if template}} |
|
<strong>Round Progress:</strong> |
|
<span class="label label-primary">{{formatNumber variance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</span> |
|
{{/if}} |
|
</p> |
|
</div> |
|
<div id="blocks" class="col-xs-12"> |
|
<h4>Blocks</h4> |
|
<div class="table-responsive"> |
|
<table class="table table-condensed table-striped"> |
|
<tr> |
|
<th>Height</th> |
|
<th>Time</th> |
|
<th>Hash</th> |
|
<th>Shares/Diff</th> |
|
</tr> |
|
{{#each blocks}} |
|
<tr> |
|
<td><a href="https://moneroblocks.info/block/{{height}}" target="_blank">{{formatNumber height}}<a/></td> |
|
<td>{{formatDate timestamp year="numeric" month="numeric" day="numeric" hour="numeric" minute="numeric"}}</td> |
|
<td class="hash"> |
|
<a href="https://moneroblocks.info/block/{{height}}" target="_blank">{{hash}}</a> |
|
</td> |
|
<td>{{formatNumber variance style="percent" minimumFractionDigits=2 maximumFractionDigits=2}}</td> |
|
</tr> |
|
{{/each}} |
|
</table> |
|
</div> |
|
</div> |
|
</div> |
|
</script> |
|
|
|
<div class="container"> |
|
<div class="header clearfix"> |
|
<nav> |
|
<ul class="nav nav-pills pull-right"> |
|
<li role="presentation"><a href="#" id="homeTab">Home</a></li> |
|
<li role="presentation"><a href="#blocks" id="blocksTab">Blocks</a></li> |
|
</ul> |
|
</nav> |
|
<h3 class="text-muted">MoneroProxy</h3> |
|
</div> |
|
<div id="alert" class="alert alert-danger hide" role="alert"> |
|
<strong>An error occured while polling proxy state.</strong> |
|
Make sure proxy is running. |
|
</div> |
|
<a name="stats"></a> |
|
<div id="stats"></div> |
|
</div> |
|
<footer class="footer"> |
|
<div class="container"> |
|
<p> |
|
By <a href="https://github.com/sammy007" target="_blank">sammy007</a>.<br/> |
|
<span><strong>XMR</strong>: 4Aag5kkRHmCFHM5aRUtfB2RF3c5NDmk5CVbGdg6fefszEhhFdXhnjiTCr81YxQ9bsi73CSHT3ZN3p82qyakHwZ2GHYqeaUr</span><br/> |
|
</p> |
|
</div> |
|
</footer> |
|
</body> |
|
</html>
|
|
|