Browse Source

passive kmd main start

all-modes
pbca26 7 years ago
parent
commit
8b8eac0905
  1. 5
      gui/startup/index.html
  2. 129
      routes/shepherd.js

5
gui/startup/index.html

@ -13,7 +13,7 @@
<script type="text/javascript" src="../EasyDEX-GUI/assets/mainWindow/js/jRoll.min.js"></script>
<script>if (window.module) module = window.module;</script>
</head>
<body class="agamaMode">
<body class="agamaMode loading-window">
<div class="text-center">
<div id="agamaMode">
<div
@ -47,6 +47,9 @@
<li onClick="closeMainWindow(null, true)">
<a>Custom</a>
</li>
<li onClick="startKMDPassive()">
<a>KMD (passive)</a>
</li>
</ul>
<button
id="normalStartBtn"

129
routes/shepherd.js

@ -98,14 +98,15 @@ shepherd.defaultAppConfig = Object.assign({}, shepherd.appConfig);
shepherd.coindInstanceRegistry = coindInstanceRegistry;
shepherd.startKMDNative = function(selection) {
shepherd.startKMDNative = function(selection, isManual) {
if (selection === 'KMD') {
const herdData = {
'ac_name': 'komodod',
'ac_options': [
'-daemon=0',
'-addnode=78.47.196.146',
]
],
'manualStart': isManual,
};
const options = {
@ -2312,48 +2313,59 @@ shepherd.post('/herd', function(req, res) {
console.log('======= req.body =======');
console.log(req.body);
function testCoindPort() {
if (!lockDownAddCoin) {
const _port = assetChainPorts[req.body.options.ac_name];
if (!req.body.options.manualStart) {
function testCoindPort() {
if (!lockDownAddCoin) {
const _port = assetChainPorts[req.body.options.ac_name];
portscanner.checkPortStatus(_port, '127.0.0.1', function(error, status) {
// Status is 'open' if currently in use or 'closed' if available
if (status === 'open') {
console.log(`komodod service start error at port ${_port}, reason: port is closed`);
shepherd.writeLog(`komodod service start error at port ${_port}, reason: port is closed`);
cache.io.emit('service', {
komodod: {
error: `error starting ${req.body.herd} ${req.body.options.ac_name} daemon. Port ${_port} is already taken!`,
},
});
portscanner.checkPortStatus(_port, '127.0.0.1', function(error, status) {
// Status is 'open' if currently in use or 'closed' if available
if (status === 'open') {
console.log(`komodod service start error at port ${_port}, reason: port is closed`);
shepherd.writeLog(`komodod service start error at port ${_port}, reason: port is closed`);
cache.io.emit('service', {
komodod: {
error: `error starting ${req.body.herd} ${req.body.options.ac_name} daemon. Port ${_port} is already taken!`,
},
});
const obj = {
msg: 'error',
result: `error starting ${req.body.herd} ${req.body.options.ac_name} daemon. Port ${_port} is already taken!`,
};
const obj = {
msg: 'error',
result: `error starting ${req.body.herd} ${req.body.options.ac_name} daemon. Port ${_port} is already taken!`,
};
res.status(500);
res.end(JSON.stringify(obj));
} else {
herder(req.body.herd, req.body.options);
res.status(500);
res.end(JSON.stringify(obj));
} else {
herder(req.body.herd, req.body.options);
const obj = {
msg: 'success',
result: 'result',
};
const obj = {
msg: 'success',
result: 'result',
};
res.end(JSON.stringify(obj));
}
});
res.end(JSON.stringify(obj));
}
});
}
}
}
if (req.body.herd === 'komodod') {
// check if komodod instance is already running
testCoindPort();
setTimeout(function() {
if (req.body.herd === 'komodod') {
// check if komodod instance is already running
testCoindPort();
}, 10000);
setTimeout(function() {
testCoindPort();
}, 10000);
} else {
herder(req.body.herd, req.body.options);
const obj = {
msg: 'success',
result: 'result',
};
res.end(JSON.stringify(obj));
}
} else {
herder(req.body.herd, req.body.options);
@ -2790,28 +2802,33 @@ function herder(flock, data) {
console.log(`daemon param ${data.ac_custom_param}`);
coindInstanceRegistry[data.ac_name] = true;
let _arg = `${coindACParam}${data.ac_options.join(' ')}${_customParam}`;
_arg = _arg.trim().split(' ');
execFile(`${komododBin}`, _arg, {
maxBuffer: 1024 * 10000 // 10 mb
}, function(error, stdout, stderr) {
shepherd.writeLog(`stdout: ${stdout}`);
shepherd.writeLog(`stderr: ${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
shepherd.writeLog(`exec error: ${error}`);
if (error.toString().indexOf('using -reindex') > -1) {
cache.io.emit('service', {
komodod: {
error: 'run -reindex',
}
});
if (!data.manualStart) {
let _arg = `${coindACParam}${data.ac_options.join(' ')}${_customParam}`;
_arg = _arg.trim().split(' ');
execFile(`${komododBin}`, _arg, {
maxBuffer: 1024 * 500000 // 500 mb
}, function(error, stdout, stderr) {
shepherd.writeLog(`stdout: ${stdout}`);
shepherd.writeLog(`stderr: ${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
shepherd.writeLog(`exec error: ${error}`);
if (error.toString().indexOf('using -reindex') > -1) {
cache.io.emit('service', {
komodod: {
error: 'run -reindex',
},
});
}
}
}
});
});
}
} else {
if (data.manualStart) {
coindInstanceRegistry[data.ac_name] = true;
}
console.log(`port ${_port} (${data.ac_name}) is already in use`);
shepherd.writeLog(`port ${_port} (${data.ac_name}) is already in use`);
}

Loading…
Cancel
Save