better logs + init db after sticky

This commit is contained in:
Matias Alejo Garcia 2015-04-18 06:55:24 -03:00
parent 1d57e4224b
commit 33eb17dd8d
6 changed files with 23 additions and 9 deletions

10
bws.js
View File

@ -6,6 +6,11 @@ var ExpressApp = require('./lib/expressapp');
var WsApp = require('./lib/wsapp');
var config = require('./config');
var sticky = require('sticky-session');
var log = require('npmlog');
log.debug = log.verbose;
log.disableColor();
var port = process.env.BWS_PORT || config.port || 3232;
@ -24,24 +29,25 @@ if (config.https) {
}
var start = function() {
var app = ExpressApp.start(config);
var server;
if (config.cluster) {
server = sticky(clusterInstances, function() {
var app = ExpressApp.start(config);
var server = config.https ? serverModule.createServer(serverOpts, app) :
serverModule.Server(app);
WsApp.start(server, config);
return server;
});
} else {
var app = ExpressApp.start(config);
server = config.https ? serverModule.createServer(serverOpts, app) :
serverModule.Server(app);
WsApp.start(server, config);
}
server.listen(port, function(err) {
if (err) console.log('ERROR: ', err);
console.log('Bitcore Wallet Service running on port ' + port);
log.info('Bitcore Wallet Service running on port ' + port);
});
};

View File

@ -37,17 +37,18 @@ function getTransactionsInsight(url, addresses, from, to, cb) {
if (_.isNumber(to)) qs.push('to=' + to);
var url = url + '/api/addrs/txs' + (qs.length > 0 ? '?' + qs.join('&') : '');
request({
var args = {
method: "POST",
url: url,
json: {
addrs: [].concat(addresses).join(',')
}
}, function(err, res, txs) {
},
};
request(args, function(err, res, txs) {
if (err || res.statusCode != 200) return cb(err || res);
// NOTE: Whenever Insight breaks communication with bitcoind, it returns invalid data but no error code.
if (!_.isArray(txs) || (txs.length != _.compact(txs).length)) return cb(new Error('Could not retrieve transactions from blockchain'));
if (!_.isArray(txs) || (txs.length != _.compact(txs).length)) return cb(new Error('Could not retrieve transactions from blockchain. Request was:' + JSON.stringify(args)));
return cb(null, txs);
});

View File

@ -3,12 +3,14 @@
var _ = require('lodash');
var async = require('async');
var log = require('npmlog');
var express = require('express');
var querystring = require('querystring');
var bodyParser = require('body-parser')
var WalletService = require('./server');
log.disableColor();
log.debug = log.verbose;
log.level = 'debug';
@ -52,7 +54,9 @@ ExpressApp.start = function(opts) {
// TODO access.log
//var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'})
//app.use(morgan('combined', {stream: accessLogStream}))
app.use(require('morgan')('dev'));
// app.use(require('morgan')('dev'));
app.use(require('morgan')(':remote-addr :date[iso] ":method :url" :status :res[content-length] :response-time ":user-agent" '));
} else {
log.level = 'silent';
}

View File

@ -2,6 +2,7 @@ var $ = require('preconditions').singleton();
var _ = require('lodash');
var log = require('npmlog');
log.debug = log.verbose;
log.disableColor();
var LocalLock = require('./locallock');
var RemoteLock = require('locker');

View File

@ -4,6 +4,7 @@ var $ = require('preconditions').singleton();
var async = require('async');
var log = require('npmlog');
log.debug = log.verbose;
log.disableColor();
var WalletUtils = require('bitcore-wallet-utils');
var Bitcore = WalletUtils.Bitcore;

View File

@ -9,6 +9,7 @@ var $ = require('preconditions').singleton();
var log = require('npmlog');
var util = require('util');
log.debug = log.verbose;
log.disableColor();
var Wallet = require('./model/wallet');
var Copayer = require('./model/copayer');
@ -25,7 +26,7 @@ var Storage = function(opts) {
this.db = multilevel.client();
var con = net.connect(opts.multiLevel);
con.pipe(this.db.createRpcStream()).pipe(con);
console.log('Connected to multilevel server at:', opts.multiLevel);
log.info('Using multilevel server:' + opts.multiLevel.host + ':' + opts.multiLevel.port);
} else {
this.db = levelup(opts.dbPath || './db/bws.db', {
valueEncoding: 'json'