exchangemarket/src/main.js
2021-10-15 22:54:15 +05:30

47 lines
1.7 KiB
JavaScript

const config = require('../args/app-config.json');
global.floGlobals = require('../public/floGlobals');
require('./set_globals');
require('./lib');
require('./floCrypto');
require('./floBlockchainAPI');
const Database = require("./database");
const App = require('./app');
const PORT = config['port'];
module.exports = function startServer(public_dir) {
try {
var _tmp = require('../args/keys.json');
_tmp = floCrypto.retrieveShamirSecret(_tmp);
var _pass = process.env.PASSWORD;
if (!_pass) {
console.error('Password not entered!');
process.exit(1);
}
_tmp = Crypto.AES.decrypt(_tmp, _pass);
if (floCrypto.verifyPrivKey(_tmp, floGlobals.adminID)) {
global.myPrivKey = _tmp;
global.myPubKey = floCrypto.getPubKeyHex(global.myPrivKey);
global.myFloID = floCrypto.getFloID(global.myPubKey);
} else {
console.error('Loaded wrong private key!');
process.exit(1);
}
} catch (error) {
console.error('Unable to load private key!');
process.exit(1);
}
global.PUBLIC_DIR = public_dir;
console.debug(PUBLIC_DIR, global.myFloID);
Database(config["sql_user"], config["sql_pwd"], config["sql_db"], config["sql_host"]).then(DB => {
const app = App(config['secret'], DB);
app.listen(PORT, () => console.log(`Server Running at port ${PORT}`));
//start backup
if (config["backup-port"] && config["backup-floIDs"].length) {
var backupTransmitter = require('./backup/transmit');
backupTransmitter = new backupTransmitter(DB, config["backup-port"], config["backup-floIDs"]);
}
});
};