diff --git a/app/rpcApi.js b/app/rpcApi.js index a89b0c4..c85aab9 100644 --- a/app/rpcApi.js +++ b/app/rpcApi.js @@ -35,9 +35,11 @@ var genesisCoinbaseTransaction = { "blocktime": 1230988505 }; -function getInfo() { + + +function getBlockchainInfo() { return new Promise(function(resolve, reject) { - client.cmd('getinfo', function(err, result, resHeaders) { + client.cmd('getblockchaininfo', function(err, result, resHeaders) { if (err) { console.log("Error 3207fh0f: " + err); @@ -51,6 +53,22 @@ function getInfo() { }); } +function getNetworkInfo() { + return new Promise(function(resolve, reject) { + client.cmd('getnetworkinfo', function(err, result, resHeaders) { + if (err) { + console.log("Error 239r7ger7gy: " + err); + + reject(err); + + return; + } + + resolve(result); + }); + }); +} + function getMempoolInfo() { return new Promise(function(resolve, reject) { client.cmd('getmempoolinfo', function(err, result, resHeaders) { @@ -394,7 +412,8 @@ function getBlockData(rpcClient, blockHash, txLimit, txOffset) { } module.exports = { - getInfo: getInfo, + getBlockchainInfo: getBlockchainInfo, + getNetworkInfo: getNetworkInfo, getMempoolInfo: getMempoolInfo, getBlockByHeight: getBlockByHeight, getBlocksByHeight: getBlocksByHeight, diff --git a/routes/baseActionsRouter.js b/routes/baseActionsRouter.js index d906867..ffb42cf 100644 --- a/routes/baseActionsRouter.js +++ b/routes/baseActionsRouter.js @@ -29,13 +29,13 @@ router.get("/", function(req, res) { var client = global.client; - rpcApi.getInfo().then(function(getinfo) { - res.locals.getinfo = getinfo; + rpcApi.getBlockchainInfo().then(function(getblockchaininfo) { + res.locals.getblockchaininfo = getblockchaininfo; var blockHeights = []; - if (getinfo.blocks) { + if (getblockchaininfo.blocks) { for (var i = 0; i < 10; i++) { - blockHeights.push(getinfo.blocks - i); + blockHeights.push(getblockchaininfo.blocks - i); } } @@ -54,10 +54,21 @@ router.get("/", function(req, res) { router.get("/node-info", function(req, res) { var client = global.client; - rpcApi.getInfo().then(function(getinfo) { - res.locals.getinfo = getinfo; + rpcApi.getBlockchainInfo().then(function(getblockchaininfo) { + res.locals.getblockchaininfo = getblockchaininfo; - res.render("node-info"); + rpcApi.getNetworkInfo().then(function(getnetworkinfo) { + res.locals.getnetworkinfo = getnetworkinfo; + + res.render("node-info"); + + }).catch(function(err) { + res.locals.userMessage = "Unable to connect to Bitcoin Node at " + env.bitcoind.host + ":" + env.bitcoind.port; + + res.render("node-info"); + }); + + }).catch(function(err) { res.locals.userMessage = "Unable to connect to Bitcoin Node at " + env.bitcoind.host + ":" + env.bitcoind.port; diff --git a/views/index.pug b/views/index.pug index 8535277..309ec29 100644 --- a/views/index.pug +++ b/views/index.pug @@ -13,6 +13,9 @@ block content if (latestBlocks) h3 Latest Blocks + if (getblockchaininfo.initialblockdownload) + small (#{(getblockchaininfo.headers - getblockchaininfo.blocks).toLocaleString()} behind) + - var blocks = latestBlocks; - var blockOffset = 0; diff --git a/views/node-info.pug b/views/node-info.pug index 9347383..c200871 100644 --- a/views/node-info.pug +++ b/views/node-info.pug @@ -7,9 +7,11 @@ block content h1 Node Info hr - if (getinfo) - p Data from RPC command - a(href="https://bitcoin.org/en/developer-reference#getinfo") getinfo + if (getblockchaininfo) + p Data from RPC commands + a(href="https://bitcoin.org/en/developer-reference#getblockchaininfo") getblockchaininfo + span and + a(href="https://bitcoin.org/en/developer-reference#getnetworkinfo") getnetworkinfo if (false) pre @@ -17,34 +19,45 @@ block content if (true) table(class="table") + tr + th(class="table-active properties-header") Chain + td(class="monospace") #{getblockchaininfo.chain} tr th(class="table-active properties-header") Version - td(class="monospace") #{getinfo.version} + td(class="monospace") #{getnetworkinfo.version} tr th(class="table-active properties-header") Protocol Version - td(class="monospace") #{getinfo.protocolversion} + td(class="monospace") #{getnetworkinfo.protocolversion} tr th(class="table-active properties-header") Connections - td(class="monospace") #{getinfo.connections.toLocaleString()} + td(class="monospace") #{getnetworkinfo.connections.toLocaleString()} tr th(class="table-active properties-header") Block Count - td(class="monospace") #{getinfo.blocks.toLocaleString()} - tr - th(class="table-active properties-header") Testnet? - td(class="monospace") #{getinfo.testnet} + td(class="monospace") #{getblockchaininfo.blocks.toLocaleString()} tr - th(class="table-active properties-header") Errors - td(class="monospace") #{getinfo.errors} + th(class="table-active properties-header") Header Count + td(class="monospace") #{getblockchaininfo.headers.toLocaleString()} tr - var scales = [ {val:1000000000000000, name:"quadrillion"}, {val:1000000000000, name:"trillion"}, {val:1000000000, name:"billion"}, {val:1000000, name:"million"} ]; - var scaleDone = false; th(class="table-active properties-header") Difficulty td(class="monospace") - span #{getinfo.difficulty.toLocaleString()} + span #{getblockchaininfo.difficulty.toLocaleString()} each item in scales if (!scaleDone) - - var fraction = Math.floor(getinfo.difficulty / item.val); + - var fraction = Math.floor(getblockchaininfo.difficulty / item.val); if (fraction >= 1) - scaleDone = true; span(class="text-muted") (#{fraction} #{item.name}) + + tr + th(class="table-active properties-header") Status + td(class="monospace") + if (getblockchaininfo.initialblockdownload) + span Initial block download progress #{(100 * getblockchaininfo.verificationprogress).toLocaleString()}% + else + span Up-to-date + tr + th(class="table-active properties-header") Warnings + td(class="monospace") #{getblockchaininfo.warnings} \ No newline at end of file