|
|
@ -199,19 +199,35 @@ function spec() { |
|
|
|
}; |
|
|
|
|
|
|
|
Sync.prototype.init = function(opts) { |
|
|
|
this.rpc = new RpcClient(config.bitcoind); |
|
|
|
|
|
|
|
|
|
|
|
if (!(opts && opts.skip_db_connection)) { |
|
|
|
mongoose.connect(config.db); |
|
|
|
mongoose.connect(config.db, {server: {auto_reconnect: true}} ); |
|
|
|
} |
|
|
|
|
|
|
|
this.db = mongoose.connection; |
|
|
|
this.rpc = new RpcClient(config.bitcoind); |
|
|
|
|
|
|
|
this.db.on('error', console.error.bind(console, 'connection error:')); |
|
|
|
this.db.on('error', function(err) { |
|
|
|
console.log('connection error:' + err); |
|
|
|
moogose.disconnect(); |
|
|
|
}); |
|
|
|
|
|
|
|
this.db.on('disconnect', function(err) { |
|
|
|
console.log('disconnect:' + err); |
|
|
|
mongoose.connect(config.db, {server: {auto_reconnect: true}} ); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
Sync.prototype.import_history = function(opts, next) { |
|
|
|
|
|
|
|
var that = this; |
|
|
|
|
|
|
|
var retry_attemps = 100; |
|
|
|
var retry_secs = 2; |
|
|
|
|
|
|
|
this.db.once('open', function() { |
|
|
|
async.series([ |
|
|
|
function(cb) { |
|
|
@ -240,10 +256,23 @@ function spec() { |
|
|
|
}, |
|
|
|
|
|
|
|
function(cb) { |
|
|
|
function sync() { |
|
|
|
that.syncBlocks( function(err) { |
|
|
|
|
|
|
|
|
|
|
|
if (err && err.message.match(/ECONNREFUSED/) && retry_attemps--){ |
|
|
|
setTimeout(function() { |
|
|
|
console.log("Retrying in %d secs ", retry_secs); |
|
|
|
sync(); |
|
|
|
}, retry_secs * 1000); |
|
|
|
} |
|
|
|
else |
|
|
|
return next(err); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
if (!opts.skip_blocks) { |
|
|
|
that.syncBlocks( cb); |
|
|
|
} else { |
|
|
|
cb(); |
|
|
|
sync(); |
|
|
|
} |
|
|
|
}, |
|
|
|
/* Exploding happens on block insertion |
|
|
|