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

129
routes/shepherd.js

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

Loading…
Cancel
Save