bitcore-wallet-service/bws.js

58 lines
1.6 KiB
JavaScript
Raw Normal View History

2015-02-19 06:00:14 -08:00
#!/usr/bin/env node
2015-02-13 11:07:47 -08:00
2015-04-15 12:25:31 -07:00
var fs = require('fs');
2015-02-19 06:00:14 -08:00
var ExpressApp = require('./lib/expressapp');
2015-03-23 14:26:47 -07:00
var WsApp = require('./lib/wsapp');
2015-04-05 09:56:56 -07:00
var config = require('./config');
2015-04-15 14:34:48 -07:00
var sticky = require('sticky-session');
2015-04-18 02:55:24 -07:00
var log = require('npmlog');
log.debug = log.verbose;
log.disableColor();
2015-04-15 14:34:48 -07:00
2015-02-13 11:07:47 -08:00
2015-04-15 06:59:25 -07:00
var port = process.env.BWS_PORT || config.port || 3232;
2015-02-09 10:30:16 -08:00
2015-04-15 11:56:08 -07:00
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
2015-04-15 15:38:51 -07:00
var clusterInstances = config.clusterInstances || numCPUs;
2015-04-15 12:25:31 -07:00
var serverModule = config.https ? require('https') : require('http');
2015-04-15 15:38:51 -07:00
2015-04-15 12:25:31 -07:00
var serverOpts = {};
if (config.https) {
serverOpts.key = fs.readFileSync(config.privateKeyFile || './ssl/privatekey.pem');
serverOpts.cert = fs.readFileSync(config.certificateFile || './ssl/certificate.pem');
}
2015-03-23 08:50:00 -07:00
2015-04-15 15:38:51 -07:00
var start = function() {
var server;
if (config.cluster) {
server = sticky(clusterInstances, function() {
2015-04-18 02:55:24 -07:00
var app = ExpressApp.start(config);
2015-04-15 15:38:51 -07:00
var server = config.https ? serverModule.createServer(serverOpts, app) :
serverModule.Server(app);
WsApp.start(server, config);
return server;
2015-04-15 11:56:08 -07:00
});
} else {
2015-04-18 02:55:24 -07:00
var app = ExpressApp.start(config);
2015-04-15 15:38:51 -07:00
server = config.https ? serverModule.createServer(serverOpts, app) :
serverModule.Server(app);
WsApp.start(server, config);
2015-04-15 11:56:08 -07:00
}
2015-04-15 15:38:51 -07:00
server.listen(port, function(err) {
if (err) console.log('ERROR: ', err);
2015-04-18 02:55:24 -07:00
log.info('Bitcore Wallet Service running on port ' + port);
2015-04-15 15:38:51 -07:00
});
};
if (config.cluster && (!config.storageOpts.multiLevel || !config.lockOpts.lockerServer))
throw 'When running in cluster mode, multilevel and locker server need to be configured';
start();