|
|
|
extends layout
|
|
|
|
|
|
|
|
block headContent
|
|
|
|
title Node Status
|
|
|
|
|
|
|
|
block content
|
|
|
|
h1.h3 Node Status
|
|
|
|
hr
|
|
|
|
|
|
|
|
if (getblockchaininfo)
|
|
|
|
if (false)
|
|
|
|
p Data from RPC commands
|
|
|
|
a(href="/rpc-browser?method=getblockchaininfo") getblockchaininfo
|
|
|
|
span ,
|
|
|
|
a(href="/rpc-browser?method=getnetworkinfo") getnetworkinfo
|
|
|
|
span , and
|
|
|
|
a(href="/rpc-browser?method=getnettotals") getnettotals
|
|
|
|
|
|
|
|
if (false)
|
|
|
|
pre
|
|
|
|
code.json.bg-light #{JSON.stringify(getblockchaininfo, null, 4)}
|
|
|
|
|
|
|
|
ul.nav.nav-tabs.mb-3
|
|
|
|
li.nav-item
|
|
|
|
a.nav-link.active(data-toggle="tab", href="#tab-details", role="tab") Details
|
|
|
|
li.nav-item
|
|
|
|
a.nav-link(data-toggle="tab", href="#tab-json", role="tab") JSON
|
|
|
|
|
|
|
|
|
|
|
|
div.tab-content
|
|
|
|
div.tab-pane.active(id="tab-details", role="tabpanel")
|
|
|
|
div.card.shadow-sm.mb-3
|
|
|
|
div.card-body.px-2.px-sm-3
|
|
|
|
h3.h6.mb-0 Summary
|
|
|
|
hr
|
|
|
|
|
|
|
|
div.clearfix
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Host : Port
|
|
|
|
div.summary-table-content.text-monospace #{global.rpcClient.host + " : " + global.rpcClient.port}
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Chain
|
|
|
|
div.summary-table-content.text-monospace #{getblockchaininfo.chain}
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Version
|
|
|
|
div.summary-table-content.text-monospace #{getnetworkinfo.version} (#{getnetworkinfo.subversion})
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Protocol Version
|
|
|
|
div.summary-table-content.text-monospace #{getnetworkinfo.protocolversion}
|
|
|
|
|
|
|
|
if (getblockchaininfo.size_on_disk)
|
|
|
|
- var sizeData = utils.formatLargeNumber(getblockchaininfo.size_on_disk, 2);
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Blockchain Size
|
|
|
|
div.summary-table-content.text-monospace #{sizeData[0]} #{sizeData[1].abbreviation}B
|
|
|
|
br
|
|
|
|
span.text-muted (pruned: #{getblockchaininfo.pruned})
|
|
|
|
|
|
|
|
if (getblockchaininfo.softforks)
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Soft Forks
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
ul.list-unstyled
|
|
|
|
each item, itemName in getblockchaininfo.softforks
|
|
|
|
li
|
|
|
|
div.d-inline-block.text-right(style="width: 75px;")
|
|
|
|
span.font-weight-bold #{itemName}:
|
|
|
|
|
|
|
|
span.mr-2.ml-2 type=#{item.type},
|
|
|
|
|
|
|
|
if (item.active)
|
|
|
|
span.mr-2
|
|
|
|
span status=
|
|
|
|
span.text-success active
|
|
|
|
small.text-muted.ml-2 (height: #{item.height.toLocaleString()})
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Block Count
|
|
|
|
div.summary-table-content.text-monospace #{getblockchaininfo.blocks.toLocaleString()}
|
|
|
|
br
|
|
|
|
span.text-muted (headers: #{getblockchaininfo.headers.toLocaleString()})
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Difficulty
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
- var difficultyData = utils.formatLargeNumber(getblockchaininfo.difficulty, 3);
|
|
|
|
span(title=parseFloat(getblockchaininfo.difficulty).toLocaleString(), data-toggle="tooltip")
|
|
|
|
span #{difficultyData[0]}
|
|
|
|
span x 10
|
|
|
|
sup #{difficultyData[1].exponent}
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Status
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
if (getblockchaininfo.initialblockdownload || getblockchaininfo.headers > getblockchaininfo.blocks)
|
|
|
|
span Initial block download progress #{(100 * getblockchaininfo.verificationprogress).toLocaleString()}%
|
|
|
|
else
|
|
|
|
span.text-success Synchronized with network
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Uptime
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
- var startTimeAgo = moment.duration(uptimeSeconds * 1000);
|
|
|
|
span #{startTimeAgo.format()}
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Warnings
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
if (getblockchaininfo.warnings && getblockchaininfo.warnings.trim().length > 0)
|
|
|
|
span.text-danger #{getblockchaininfo.warnings}
|
|
|
|
else
|
|
|
|
span None
|
|
|
|
|
|
|
|
div.card.shadow-sm.mb-3
|
|
|
|
div.card-body.px-2.px-sm-3
|
|
|
|
h3.h6.mb-0 Network Info
|
|
|
|
hr
|
|
|
|
|
|
|
|
div.clearfix
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Peers
|
|
|
|
div.summary-table-content.text-monospace #{getnetworkinfo.connections.toLocaleString()}
|
|
|
|
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Network Traffic
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
- var downData = utils.formatLargeNumber(getnettotals.totalbytesrecv, 2);
|
|
|
|
- var downRateData = utils.formatLargeNumber(getnettotals.totalbytesrecv / uptimeSeconds, 2);
|
|
|
|
- var upData = utils.formatLargeNumber(getnettotals.totalbytessent, 2);
|
|
|
|
- var upRateData = utils.formatLargeNumber(getnettotals.totalbytessent / uptimeSeconds, 2);
|
|
|
|
|
|
|
|
span Total Download: #{downData[0]} #{downData[1].abbreviation}B
|
|
|
|
span.text-muted (avg #{downRateData[0]} #{downRateData[1].abbreviation}B/s)
|
|
|
|
br
|
|
|
|
span Total Upload: #{upData[0]} #{upData[1].abbreviation}B
|
|
|
|
span.text-muted (avg #{upRateData[0]} #{upRateData[1].abbreviation}B/s)
|
|
|
|
|
|
|
|
if (getnetworkinfo.networks)
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Interfaces
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
each item, index in getnetworkinfo.networks
|
|
|
|
div
|
|
|
|
span.font-weight-bold #{item.name}:
|
|
|
|
if (item.reachable)
|
|
|
|
span.text-success reachable
|
|
|
|
|
|
|
|
else
|
|
|
|
span.text-danger unreachable
|
|
|
|
|
|
|
|
if (item.proxy)
|
|
|
|
span.text-muted.ml-3 (proxy: #{item.proxy})
|
|
|
|
|
|
|
|
if (getnetworkinfo.localaddresses)
|
|
|
|
div.row
|
|
|
|
div.summary-table-label Local Addresses
|
|
|
|
div.summary-table-content.text-monospace
|
|
|
|
each item, index in getnetworkinfo.localaddresses
|
|
|
|
div #{item.address}:#{item.port}
|
|
|
|
span.text-muted.ml-3 (score: #{item.score.toLocaleString()})
|
|
|
|
|
|
|
|
|
|
|
|
div.tab-pane(id="tab-json", role="tabpanel")
|
|
|
|
|
|
|
|
ul.nav.nav-pills.mb-3
|
|
|
|
li.nav-item
|
|
|
|
a.nav-link.active(data-toggle="tab", href="#tab-getblockchaininfo", role="tab") getblockchaininfo
|
|
|
|
li.nav-item
|
|
|
|
a.nav-link(data-toggle="tab", href="#tab-getnettotals", role="tab") getnettotals
|
|
|
|
li.nav-item
|
|
|
|
a.nav-link(data-toggle="tab", href="#tab-getnetworkinfo", role="tab") getnetworkinfo
|
|
|
|
|
|
|
|
div.tab-content
|
|
|
|
div.tab-pane.active(id="tab-getblockchaininfo", role="tabpanel")
|
|
|
|
div.card.shadow-sm.mb-3
|
|
|
|
div.card-body
|
|
|
|
h4.h6.mb-0 getblockchaininfo
|
|
|
|
hr
|
|
|
|
|
|
|
|
div.highlight
|
|
|
|
pre
|
|
|
|
code.json.bg-light(data-lang="json") #{JSON.stringify(getblockchaininfo, null, 4)}
|
|
|
|
|
|
|
|
div.tab-pane(id="tab-getnettotals", role="tabpanel")
|
|
|
|
div.card.shadow-sm.mb-3
|
|
|
|
div.card-body
|
|
|
|
h4.h6.mb-0 getnettotals
|
|
|
|
hr
|
|
|
|
|
|
|
|
div.highlight
|
|
|
|
pre
|
|
|
|
code.json.bg-light(data-lang="json") #{JSON.stringify(getnettotals, null, 4)}
|
|
|
|
|
|
|
|
div.tab-pane(id="tab-getnetworkinfo", role="tabpanel")
|
|
|
|
div.card.shadow-sm.mb-3
|
|
|
|
div.card-body
|
|
|
|
h4.h6.mb-0 getnetworkinfo
|
|
|
|
hr
|
|
|
|
|
|
|
|
div.highlight
|
|
|
|
pre
|
|
|
|
code.json.bg-light(data-lang="json") #{JSON.stringify(getnetworkinfo, null, 4)}
|
|
|
|
|
|
|
|
|