Browse Source

- clarify use/naming for global rpc client

- add new no-timeout rpc client and use for manual rpc interfaces (terminal/browser)
master
Dan Janosik 5 years ago
parent
commit
e57f14a043
No known key found for this signature in database GPG Key ID: C6F8CE9FFDB2CED2
  1. 12
      app.js
  2. 4
      app/api/rpcApi.js
  3. 16
      routes/baseActionsRouter.js
  4. 2
      views/layout.pug
  5. 2
      views/node-status.pug

12
app.js

@ -181,7 +181,17 @@ app.continueStartup = function() {
timeout: rpcCred.timeout
};
global.client = new bitcoinCore(rpcClientProperties);
global.rpcClient = new bitcoinCore(rpcClientProperties);
var rpcClientNoTimeoutProperties = {
host: rpcCred.host,
port: rpcCred.port,
username: rpcCred.username,
password: rpcCred.password,
timeout: 0
};
global.rpcClientNoTimeout = new bitcoinCore(rpcClientNoTimeoutProperties);
coreApi.getNetworkInfo().then(function(getnetworkinfo) {
debugLog(`Connected via RPC to node. Basic info: version=${getnetworkinfo.version}, subversion=${getnetworkinfo.subversion}, protocolversion=${getnetworkinfo.protocolversion}, services=${getnetworkinfo.localservices}`);

4
app/api/rpcApi.js

@ -269,6 +269,8 @@ function getRpcData(cmd) {
debugLog(`RPC: ${cmd}`);
rpcCall = function(callback) {
var client = (cmd == "gettxoutsetinfo" ? global.rpcClientNoTimeout : global.rpcClient);
client.command(cmd, function(err, result, resHeaders) {
if (err) {
utils.logError("32euofeege", err, {cmd:cmd});
@ -295,7 +297,7 @@ function getRpcDataWithParams(request) {
debugLog(`RPC: ${JSON.stringify(request)}`);
rpcCall = function(callback) {
client.command([request], function(err, result, resHeaders) {
global.rpcClient.command([request], function(err, result, resHeaders) {
if (err != null) {
utils.logError("38eh39hdee", err, {result:result, headers:resHeaders});

16
routes/baseActionsRouter.js

@ -229,7 +229,7 @@ router.post("/connect", function(req, res, next) {
req.session.port = port;
req.session.username = username;
var client = new bitcoinCore({
var newClient = new bitcoinCore({
host: host,
port: port,
username: username,
@ -237,9 +237,9 @@ router.post("/connect", function(req, res, next) {
timeout: 30000
});
debugLog("created client: " + client);
debugLog("created new rpc client: " + newClient);
global.client = client;
global.rpcClient = newClient;
req.session.userMessage = "<strong>Connected via RPC</strong>: " + username + " @ " + host + ":" + port;
req.session.userMessageType = "success";
@ -256,9 +256,9 @@ router.get("/disconnect", function(req, res, next) {
req.session.port = "";
req.session.username = "";
debugLog("destroyed client.");
debugLog("destroyed rpc client.");
global.client = null;
global.rpcClient = null;
req.session.userMessage = "Disconnected from node.";
req.session.userMessageType = "success";
@ -575,7 +575,7 @@ router.get("/tx/:transactionId", function(req, res, next) {
}
promises.push(new Promise(function(resolve, reject) {
client.command('getblock', rawTxResult.blockhash, function(err3, result3, resHeaders3) {
global.rpcClient.command('getblock', rawTxResult.blockhash, function(err3, result3, resHeaders3) {
res.locals.result.getblock = result3;
var txids = [];
@ -945,7 +945,7 @@ router.post("/rpc-terminal", function(req, res, next) {
return;
}
client.command([{method:cmd, parameters:parsedParams}], function(err, result, resHeaders) {
global.rpcClientNoTimeout.command([{method:cmd, parameters:parsedParams}], function(err, result, resHeaders) {
debugLog("Result[1]: " + JSON.stringify(result, null, 4));
debugLog("Error[2]: " + JSON.stringify(err, null, 4));
debugLog("Headers[3]: " + JSON.stringify(resHeaders, null, 4));
@ -1060,7 +1060,7 @@ router.get("/rpc-browser", function(req, res, next) {
debugLog("Executing RPC '" + req.query.method + "' with params: [" + argValues + "]");
client.command([{method:req.query.method, parameters:argValues}], function(err3, result3, resHeaders3) {
global.rpcClientNoTimeout.command([{method:req.query.method, parameters:argValues}], function(err3, result3, resHeaders3) {
debugLog("RPC Response: err=" + err3 + ", result=" + result3 + ", headers=" + resHeaders3);
if (err3) {

2
views/layout.pug

@ -37,7 +37,7 @@ html(lang="en")
span(class="navbar-toggler-icon")
div(class="collapse navbar-collapse", id="navbarNav")
if (client)
if (rpcClient)
ul(class="navbar-nav mr-auto")
if (false)
li(class="nav-item")

2
views/node-status.pug

@ -36,7 +36,7 @@ block content
table(class="table details-table mb-0")
tr
td(class="properties-header") Host : Port
td(class="monospace") #{global.client.host + " : " + global.client.port}
td(class="monospace") #{global.rpcClient.host + " : " + global.rpcClient.port}
tr
td(class="properties-header") Chain

Loading…
Cancel
Save