2014-01-16 05:54:21 -08:00
|
|
|
<section data-ng-controller="StatusController">
|
|
|
|
<div class="page-header">
|
|
|
|
<h1>
|
2014-01-21 10:35:05 -08:00
|
|
|
Application Status
|
2014-01-16 05:54:21 -08:00
|
|
|
</h1>
|
|
|
|
</div>
|
2014-01-21 12:20:05 -08:00
|
|
|
<div id="status" class="row">
|
|
|
|
<div class="col-md-9">
|
2014-01-20 16:02:47 -08:00
|
|
|
|
2014-01-21 12:20:05 -08:00
|
|
|
<h4>Sync Status</h4>
|
|
|
|
<table class="table" data-ng-init="getSync()">
|
2014-01-20 06:45:01 -08:00
|
|
|
<tbody>
|
2014-01-20 11:40:20 -08:00
|
|
|
<tr data-ng-show="syncError">
|
|
|
|
<td colspan="2"> <span class="text-danger"> {{ syncError }} </span>
|
2014-01-20 07:10:49 -08:00
|
|
|
<tr data-ng-show="sync.error">
|
|
|
|
<td colspan="2"> <span class="text-danger"> {{ sync.err }} </span>
|
|
|
|
</tr>
|
2014-01-20 06:45:01 -08:00
|
|
|
<tr>
|
|
|
|
<td>Sync Progress</td>
|
2014-01-21 10:53:38 -08:00
|
|
|
<td>
|
|
|
|
<div class="progress">
|
|
|
|
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: {{(100 * sync.syncedBlocks/sync.blocksToSync)| number:2}}%">
|
|
|
|
<span>{{(100 * sync.syncedBlocks/sync.blocksToSync)| number:2}}% Complete</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
2014-01-20 06:45:01 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Blocks to Sync</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">{{sync.blocksToSync}}</td>
|
2014-01-20 06:45:01 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Synced Blocks</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">{{sync.syncedBlocks}}</td>
|
2014-01-20 06:45:01 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Start</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">
|
2014-01-20 16:02:47 -08:00
|
|
|
<a href="/#!/block/{{sync.start}}">{{sync.start}}</a>
|
|
|
|
<span data-ng-show="sync.isStartGenesis"> (genesisBlock)</span>
|
2014-01-20 06:45:01 -08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>End</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">
|
2014-01-20 16:02:47 -08:00
|
|
|
<a href="/#!/block/{{sync.end}}">{{sync.end}}</a>
|
|
|
|
<span data-ng-show="sync.isEndGenesis"> (genesisBlock)</span>
|
2014-01-20 06:45:01 -08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Sync properties</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">
|
2014-01-20 06:45:01 -08:00
|
|
|
<ul>
|
|
|
|
<li data-ng-show="sync.upToExisting"> <span> Stops at existing block </span>
|
|
|
|
<li>
|
2014-01-21 10:35:05 -08:00
|
|
|
<span data-ng-show="sync.scanningBackward"> Backward Scan</span>
|
|
|
|
<span data-ng-hide="sync.scanningBackward"> Forward Scan</span>
|
2014-01-20 06:45:01 -08:00
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
2014-01-21 12:20:05 -08:00
|
|
|
<h4>Transaction Output Set Information</h4>
|
|
|
|
<table class="table" data-ng-init="getStatus('TxOutSetInfo')">
|
2014-01-16 05:54:21 -08:00
|
|
|
<tbody>
|
2014-01-20 11:40:20 -08:00
|
|
|
<tr data-ng-show="!txoutsetinfo && !infoError">
|
2014-01-16 05:54:21 -08:00
|
|
|
<td colspan="2" class="text-center">Loading...</td>
|
|
|
|
</tr>
|
2014-01-20 11:40:20 -08:00
|
|
|
<tr data-ng-show="infoError">
|
|
|
|
<td colspan="2" class="text-danger">{{infoError}}</td>
|
|
|
|
</tr>
|
2014-01-16 05:54:21 -08:00
|
|
|
<tr>
|
|
|
|
<td>Height</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right"><a href="/#!/block-index/{{txoutsetinfo.height}}">{{txoutsetinfo.height}}</a></td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Best Block</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right"><a href="/#!/block/{{txoutsetinfo.bestblock}}">{{txoutsetinfo.bestblock}}</a></td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Transactions</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right"> {{txoutsetinfo.transactions}}</td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Transaction Outputs</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">{{txoutsetinfo.txouts}}</td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Bytes Serialized</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">{{txoutsetinfo.bytes_serialized}}</td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Hash Serialized</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">{{txoutsetinfo.hash_serialized}}</td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-21 10:35:05 -08:00
|
|
|
<td>Total Amount</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right">{{txoutsetinfo.total_amount}}</td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2014-01-20 16:02:47 -08:00
|
|
|
|
2014-01-21 12:20:05 -08:00
|
|
|
<h4>Last Block</h4>
|
|
|
|
<table class="table" data-ng-init="getStatus('LastBlockHash')">
|
2014-01-16 05:54:21 -08:00
|
|
|
<tbody>
|
2014-01-20 11:40:20 -08:00
|
|
|
<tr data-ng-show="!lastblockhash && !infoError">
|
|
|
|
<td colspan="2" class="text-center">Loading...</td>
|
|
|
|
</tr>
|
|
|
|
<tr data-ng-show="infoError">
|
|
|
|
<td colspan="2" class="text-danger">{{infoError}}</td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-01-20 11:40:20 -08:00
|
|
|
<td>Last block hash</td>
|
2014-01-21 12:20:05 -08:00
|
|
|
<td class="text-right"><a href="/#!/block/{{lastblockhash}}">{{lastblockhash}}</a></td>
|
2014-01-16 05:54:21 -08:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2014-01-21 12:20:05 -08:00
|
|
|
</div> <!-- END OF COL-8 -->
|
|
|
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
<div class="col-gray">
|
|
|
|
<h4>Bitcoin node information</h4>
|
|
|
|
<table class="table" data-ng-init="getStatus('Info')">
|
|
|
|
<tbody>
|
|
|
|
<tr data-ng-show="!info && !infoError">
|
|
|
|
<td colspan="2" class="text-center">Loading...
|
|
|
|
<tr data-ng-show="infoError">
|
|
|
|
<td colspan="2" class="text-danger">{{infoError}}
|
|
|
|
<tr>
|
|
|
|
<td>Version</td>
|
|
|
|
<td class="text-right">{{info.version}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Protocol version</td>
|
|
|
|
<td class="text-right">{{info.protocolversion}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Wallet version</td>
|
|
|
|
<td class="text-right">{{info.walletversion}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Balance (BTC)</td>
|
|
|
|
<td class="text-right">{{info.balance}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Blocks</td>
|
|
|
|
<td class="text-right"><a href="/#!/block-index/{{info.blocks}}">{{info.blocks}}</a></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Time Offset</td>
|
|
|
|
<td class="text-right">{{info.timeoffset}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Connections to other nodes</td>
|
|
|
|
<td class="text-right">{{info.connections}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Proxy setting</td>
|
|
|
|
<td class="text-right">{{info.proxy}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Mining Difficulty</td>
|
|
|
|
<td class="text-right">{{info.difficulty}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Testnet</td>
|
|
|
|
<td class="text-right">{{info.testnet}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Keypool Oldest Date</td>
|
|
|
|
<td class="text-right">{{info.keypoololdest*1000 | date:'medium' }}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Keypool Size</td>
|
|
|
|
<td class="text-right">{{info.keypoolsize}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Default Transaction Fee (BTC)</td>
|
|
|
|
<td class="text-right">{{info.paytxfee}}</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>Info Errors</td>
|
|
|
|
<td class="text-right">{{info.infoErrors}}</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
<h4>Difficulty</h4>
|
|
|
|
<table class="table" data-ng-init="getStatus('Difficulty')">
|
|
|
|
<tbody>
|
|
|
|
<tr data-ng-show="!difficulty && !infoError">
|
|
|
|
<td colspan="2" class="text-center">Loading...</td>
|
|
|
|
</tr>
|
|
|
|
<tr data-ng-show="infoError">
|
|
|
|
<td colspan="2" class="text-danger">{{infoError}}</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td>Mining Difficulty</td>
|
|
|
|
<td>{{difficulty}}</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div> <!-- END OF COL-GRAY -->
|
|
|
|
</div> <!-- END OF COL-3 -->
|
2014-01-16 05:54:21 -08:00
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
|