Merge pull request #189 from matiu/bug/sticky

better logs + init db after sticky
This commit is contained in:
Matias Alejo Garcia 2015-04-18 06:56:12 -03:00
commit 355290040a
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 WsApp = require('./lib/wsapp');
var config = require('./config'); var config = require('./config');
var sticky = require('sticky-session'); var sticky = require('sticky-session');
var log = require('npmlog');
log.debug = log.verbose;
log.disableColor();
var port = process.env.BWS_PORT || config.port || 3232; var port = process.env.BWS_PORT || config.port || 3232;
@ -24,24 +29,25 @@ if (config.https) {
} }
var start = function() { var start = function() {
var app = ExpressApp.start(config);
var server; var server;
if (config.cluster) { if (config.cluster) {
server = sticky(clusterInstances, function() { server = sticky(clusterInstances, function() {
var app = ExpressApp.start(config);
var server = config.https ? serverModule.createServer(serverOpts, app) : var server = config.https ? serverModule.createServer(serverOpts, app) :
serverModule.Server(app); serverModule.Server(app);
WsApp.start(server, config); WsApp.start(server, config);
return server; return server;
}); });
} else { } else {
var app = ExpressApp.start(config);
server = config.https ? serverModule.createServer(serverOpts, app) : server = config.https ? serverModule.createServer(serverOpts, app) :
serverModule.Server(app); serverModule.Server(app);
WsApp.start(server, config); WsApp.start(server, config);
} }
server.listen(port, function(err) { server.listen(port, function(err) {
if (err) console.log('ERROR: ', 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); if (_.isNumber(to)) qs.push('to=' + to);
var url = url + '/api/addrs/txs' + (qs.length > 0 ? '?' + qs.join('&') : ''); var url = url + '/api/addrs/txs' + (qs.length > 0 ? '?' + qs.join('&') : '');
var args = {
request({
method: "POST", method: "POST",
url: url, url: url,
json: { json: {
addrs: [].concat(addresses).join(',') addrs: [].concat(addresses).join(',')
} },
}, function(err, res, txs) { };
request(args, function(err, res, txs) {
if (err || res.statusCode != 200) return cb(err || res); if (err || res.statusCode != 200) return cb(err || res);
// NOTE: Whenever Insight breaks communication with bitcoind, it returns invalid data but no error code. // 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); return cb(null, txs);
}); });

View File

@ -3,12 +3,14 @@
var _ = require('lodash'); var _ = require('lodash');
var async = require('async'); var async = require('async');
var log = require('npmlog'); var log = require('npmlog');
var express = require('express'); var express = require('express');
var querystring = require('querystring'); var querystring = require('querystring');
var bodyParser = require('body-parser') var bodyParser = require('body-parser')
var WalletService = require('./server'); var WalletService = require('./server');
log.disableColor();
log.debug = log.verbose; log.debug = log.verbose;
log.level = 'debug'; log.level = 'debug';
@ -52,7 +54,9 @@ ExpressApp.start = function(opts) {
// TODO access.log // TODO access.log
//var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'}) //var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'})
//app.use(morgan('combined', {stream: accessLogStream})) //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 { } else {
log.level = 'silent'; log.level = 'silent';
} }

View File

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

View File

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

View File

@ -9,6 +9,7 @@ var $ = require('preconditions').singleton();
var log = require('npmlog'); var log = require('npmlog');
var util = require('util'); var util = require('util');
log.debug = log.verbose; log.debug = log.verbose;
log.disableColor();
var Wallet = require('./model/wallet'); var Wallet = require('./model/wallet');
var Copayer = require('./model/copayer'); var Copayer = require('./model/copayer');
@ -25,7 +26,7 @@ var Storage = function(opts) {
this.db = multilevel.client(); this.db = multilevel.client();
var con = net.connect(opts.multiLevel); var con = net.connect(opts.multiLevel);
con.pipe(this.db.createRpcStream()).pipe(con); 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 { } else {
this.db = levelup(opts.dbPath || './db/bws.db', { this.db = levelup(opts.dbPath || './db/bws.db', {
valueEncoding: 'json' valueEncoding: 'json'