|
|
|
extends layout
|
|
|
|
|
|
|
|
block headContent
|
|
|
|
title Home
|
|
|
|
|
|
|
|
block content
|
|
|
|
h1(class="h3") #{coinConfig.siteTitle}
|
|
|
|
hr
|
|
|
|
|
|
|
|
if (config.demoSite && session.hideHomepageBanner != "true")
|
|
|
|
div(class="alert alert-primary alert-dismissible shadow-sm mb-4", role="alert")
|
|
|
|
p
|
|
|
|
strong #{coinConfig.siteTitle}
|
|
|
|
span is
|
|
|
|
a(href="https://github.com/janoside/btc-rpc-explorer", target="_blank") open-source
|
|
|
|
span and easy to set up. It can communicate with your
|
|
|
|
a(href=coinConfig.nodeUrl, target="_blank") #{coinConfig.name} Full Node
|
|
|
|
span via RPC. See the
|
|
|
|
a(href="https://github.com/janoside/btc-rpc-explorer", target="_blank") project description
|
|
|
|
span for a list of features and instructions for running.
|
|
|
|
|
|
|
|
div(class="clearfix")
|
|
|
|
if (global.sourcecodeProjectMetadata)
|
|
|
|
a(href="https://github.com/janoside/btc-rpc-explorer", class="btn btn-primary mr-3 mb-1")
|
|
|
|
i(class="fas fa-star mr-2")
|
|
|
|
span(class="mr-2") Star
|
|
|
|
span.font-weight-light #{global.sourcecodeProjectMetadata.stargazers_count}
|
|
|
|
|
|
|
|
a(href="https://github.com/janoside/btc-rpc-explorer/fork", class="btn btn-primary mr-3 mb-1")
|
|
|
|
i(class="fas fa-code-branch mr-2")
|
|
|
|
span(class="mr-2") Fork
|
|
|
|
span.font-weight-light #{global.sourcecodeProjectMetadata.forks_count}
|
|
|
|
|
|
|
|
button.btn.btn-primary(type="button", class="btn btn-primary mb-1", data-toggle="modal", data-target="#exampleModalCenter")
|
|
|
|
i(class="fas fa-heart mr-2")
|
|
|
|
span Donate via
|
|
|
|
span(class="font-weight-light") BTCPay
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a(href="/changeSetting?name=hideHomepageBanner&value=true", class="close", aria-label="Close", style="text-decoration: none;")
|
|
|
|
span(aria-hidden="true") ×
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
div(class="card mb-4 shadow-sm")
|
|
|
|
div(class="card-header")
|
|
|
|
h2(class="h6 mb-0") Network Summary
|
|
|
|
div(class="card-body")
|
|
|
|
div(class="row")
|
|
|
|
div(class="col-md-4")
|
|
|
|
ul(style="list-style-type: none;", class="pl-0")
|
|
|
|
li
|
|
|
|
div(class="float-left", style="height: 40px; width: 40px;")
|
|
|
|
span
|
|
|
|
i(class="fas fa-tachometer-alt fa-2x mr-2", style="margin-top: 6px;")
|
|
|
|
- var hashrateData = utils.formatLargeNumber(miningInfo.networkhashps, 3);
|
|
|
|
|
|
|
|
span(class="font-weight-bold") Hashrate
|
|
|
|
|
|
|
|
p(class="lead")
|
|
|
|
span #{hashrateData[0]}
|
|
|
|
span(title=(hashrateData[1].name + "-hash / x10^" + hashrateData[1].exponent), data-toggle="tooltip") #{hashrateData[1].abbreviation}H/s
|
|
|
|
|
|
|
|
if (getblockchaininfo.size_on_disk)
|
|
|
|
li
|
|
|
|
div(class="float-left", style="height: 40px; width: 40px;")
|
|
|
|
span
|
|
|
|
i(class="fas fa-database fa-2x mr-2", style="margin-top: 6px; margin-left: 3px;")
|
|
|
|
span(class="font-weight-bold") Blockchain Size
|
|
|
|
|
|
|
|
- var sizeData = utils.formatLargeNumber(getblockchaininfo.size_on_disk, 2);
|
|
|
|
p(class="lead") #{sizeData[0]} #{sizeData[1].abbreviation}B
|
|
|
|
|
|
|
|
div(class="col-md-4")
|
|
|
|
ul(style="list-style-type: none;", class="pl-0")
|
|
|
|
li
|
|
|
|
div(class="float-left", style="height: 40px; width: 40px;")
|
|
|
|
span
|
|
|
|
i(class="fas fa-unlock-alt fa-2x mr-2", style="margin-top: 6px; margin-left: 3px;")
|
|
|
|
|
|
|
|
span(class="font-weight-bold") Unconfirmed Transactions
|
|
|
|
|
|
|
|
p(class="lead") #{mempoolInfo.size.toLocaleString()} tx
|
|
|
|
- var mempoolBytesData = utils.formatLargeNumber(mempoolInfo.usage, 2);
|
|
|
|
small(class="text-muted font-weight-light") (#{mempoolBytesData[0]} #{mempoolBytesData[1].abbreviation}B)
|
|
|
|
|
|
|
|
li
|
|
|
|
div(class="float-left", style="height: 40px; width: 40px; font-size: 12px;")
|
|
|
|
span
|
|
|
|
i(class="fas fa-dumbbell fa-2x mr-2", style="margin-top: 6px;")
|
|
|
|
|
|
|
|
- var difficultyData = utils.formatLargeNumber(getblockchaininfo.difficulty, 3);
|
|
|
|
|
|
|
|
span(class="font-weight-bold") Difficulty
|
|
|
|
|
|
|
|
p(class="lead")
|
|
|
|
span(title=parseFloat(getblockchaininfo.difficulty).toLocaleString(), data-toggle="tooltip")
|
|
|
|
span #{difficultyData[0]}
|
|
|
|
span x 10
|
|
|
|
sup #{difficultyData[1].exponent}
|
|
|
|
|
|
|
|
div(class="col-md-4")
|
|
|
|
ul(style="list-style-type: none;", class="pl-0")
|
|
|
|
if (!process.env.BTCEXP_NO_RATES)
|
|
|
|
li
|
|
|
|
div(class="float-left", style="height: 40px; width: 40px; font-size: 12px;")
|
|
|
|
span
|
|
|
|
i(class="fas fa-money-bill-wave-alt fa-2x mr-2", style="margin-top: 7px;")
|
|
|
|
|
|
|
|
span(class="font-weight-bold") Exchange Rate
|
|
|
|
span(data-toggle="tooltip", title=("Exchange-rate data from: " + coinConfig.exchangeRateData.jsonUrl))
|
|
|
|
i(class="fas fa-info-circle")
|
|
|
|
|
|
|
|
if (global.exchangeRates)
|
|
|
|
p(class="lead") #{utils.formatExchangedCurrency(1.0, "usd")}
|
|
|
|
else
|
|
|
|
p(class="lead") -
|
|
|
|
|
|
|
|
li
|
|
|
|
div(class="float-left", style="height: 40px; width: 40px;")
|
|
|
|
span
|
|
|
|
i(class="fas fa-bolt fa-2x mr-2", style="margin-top: 6px; margin-left: 6px;")
|
|
|
|
|
|
|
|
- var chainworkData = utils.formatLargeNumber(parseInt("0x" + getblockchaininfo.chainwork), 2);
|
|
|
|
span(class="font-weight-bold") Chainwork
|
|
|
|
|
|
|
|
p(class="lead")
|
|
|
|
span(data-toggle="tooltip", title=getblockchaininfo.chainwork.replace(/^0+/, ''))
|
|
|
|
span #{chainworkData[0]}
|
|
|
|
span x 10
|
|
|
|
sup #{chainworkData[1].exponent}
|
|
|
|
span hashes
|
|
|
|
|
|
|
|
include includes/tools-card.pug
|
|
|
|
|
|
|
|
if (latestBlocks)
|
|
|
|
div(class="card mb-4 shadow-sm")
|
|
|
|
div(class="card-header")
|
|
|
|
div(class="row")
|
|
|
|
div(class="col")
|
|
|
|
h2(class="h6 mb-0") Latest Blocks
|
|
|
|
if (getblockchaininfo.initialblockdownload)
|
|
|
|
small (#{(getblockchaininfo.headers - getblockchaininfo.blocks).toLocaleString()} behind)
|
|
|
|
|
|
|
|
div(class="col")
|
|
|
|
span(style="float: right;")
|
|
|
|
a(href="/blocks")
|
|
|
|
span Browse Blocks »
|
|
|
|
|
|
|
|
div(class="card-body")
|
|
|
|
|
|
|
|
- var blocks = latestBlocks;
|
|
|
|
- var blockOffset = 0;
|
|
|
|
|
|
|
|
include includes/blocks-list.pug
|
|
|
|
|
|
|
|
|
|
|
|
if (chainTxStats)
|
|
|
|
div(class="card mb-4 shadow-sm")
|
|
|
|
div(class="card-header")
|
|
|
|
div(class="row")
|
|
|
|
div(class="col")
|
|
|
|
h2(class="h6 mb-0") Transaction Stats Summary
|
|
|
|
|
|
|
|
div(class="col")
|
|
|
|
span(style="float: right;")
|
|
|
|
a(href="/tx-stats")
|
|
|
|
span Transaction Stats »
|
|
|
|
|
|
|
|
div(class="card-body")
|
|
|
|
div(class="table-responsive")
|
|
|
|
table(class="table text-right mb-0")
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th
|
|
|
|
each item, index in chainTxStatsLabels
|
|
|
|
th #{item}
|
|
|
|
tbody
|
|
|
|
tr
|
|
|
|
th(class="text-left") Count
|
|
|
|
each item, index in chainTxStats
|
|
|
|
td(class="monospace") #{item.window_tx_count.toLocaleString()}
|
|
|
|
|
|
|
|
tr
|
|
|
|
th(class="text-left") Rate
|
|
|
|
each item, index in chainTxStats
|
|
|
|
td(class="monospace") #{new Decimal(item.txrate).toDecimalPlaces(4)}
|
|
|
|
|