diff --git a/app/controllers/socket.js b/app/controllers/socket.js index c2fc0f7..7bcad79 100644 --- a/app/controllers/socket.js +++ b/app/controllers/socket.js @@ -1,25 +1,23 @@ 'use strict'; -var Transaction = require('../models/Transaction'); - // server-side socket behaviour -var io = null; +// io is a variable already taken in express +var ios = null; module.exports.init = function(app, io_ext) { - io = io_ext; - io.set('log level', 1); // reduce logging - io.sockets.on('connection', function(socket) { - + ios = io_ext; + ios.set('log level', 1); // reduce logging + ios.sockets.on('connection', function() { }); }; module.exports.broadcast_tx = function(tx) { - io.sockets.emit('tx', tx); + ios.sockets.emit('tx', tx); }; module.exports.broadcast_block = function(block) { - io.sockets.emit('block', block); + ios.sockets.emit('block', block); }; diff --git a/app/models/Status.js b/app/models/Status.js index 9ab6678..321e227 100644 --- a/app/models/Status.js +++ b/app/models/Status.js @@ -97,7 +97,7 @@ function spec() { callback(null, bh.result); }); } - ], + ], function (err, result) { that.lastblockhash = result; return next(); diff --git a/config/env/development.js b/config/env/development.js index 0d4e6c1..fbe2cb4 100755 --- a/config/env/development.js +++ b/config/env/development.js @@ -14,4 +14,6 @@ module.exports = { disableAgent: true, }, network: 'testnet', + disableP2pSync: false, + disableHistoricSync: false, } diff --git a/lib/HistoricSync.js b/lib/HistoricSync.js index 11a2a54..2c432d9 100644 --- a/lib/HistoricSync.js +++ b/lib/HistoricSync.js @@ -4,19 +4,13 @@ require('classtool'); function spec() { - var mongoose = require('mongoose'); var util = require('util'); var RpcClient = require('bitcore/RpcClient').class(); var networks = require('bitcore/networks'); var async = require('async'); var config = require('../config/config'); var Block = require('../app/models/Block'); - var Transaction = require('../app/models/Transaction'); - var TransactionItem = require('../app/models/TransactionItem'); var Sync = require('./Sync').class(); - var sockets = require('../app/controllers/socket.js'); - var CONCURRENCY = 5; - function HistoricSync(opts) { this.block_count= 0; @@ -26,10 +20,12 @@ function spec() { } function p() { - var params = Array.prototype.slice.call(arguments); + var args = []; + Array.prototype.push.apply( args, arguments ); - params.unshift('[historic_sync]'); - console.log.apply(this,params); + args.unshift('[historic_sync]'); + /*jshint validthis:true */ + console.log.apply(this, args); } var progress_bar = function(string, current, total) { @@ -59,11 +55,11 @@ function spec() { var blockInfo; var blockObj; - async.series([ + async.series([ // Already got it? function(c) { Block.findOne({hash:blockHash}, function(err,block){ - if (err) { p(err); return c(err); }; + if (err) { p(err); return c(err); } if (block) { existed = 1; blockObj = block; @@ -96,7 +92,7 @@ function spec() { function(c) { if (existed) return c(); - that.sync.storeBlock(blockInfo.result, function(err, block) { + that.sync.storeBlock(blockInfo.result, function(err) { existed = err && err.toString().match(/E11000/); if (err && ! existed) return c(err); return c(); @@ -133,8 +129,9 @@ function spec() { HistoricSync.prototype.syncBlocks = function(start, end, isForward, cb) { var that = this; - p('Syncing Blocks, starting from: %s end: %s isForward:', - start, end, isForward); + p('Starting from: ', start); + p(' to : ', end); + p(' isForward: ', isForward); return that.getPrevNextBlock( start, end, @@ -203,7 +200,7 @@ function spec() { return cb(); }); }, - ], + ], function(err) { function sync() { @@ -224,7 +221,7 @@ function spec() { if (err && err.message.match(/ECONNREFUSED/) && retry_attemps--){ setTimeout(function() { - p("Retrying in %d secs ", retry_secs); + p('Retrying in %d secs', retry_secs); sync(); }, retry_secs * 1000); } @@ -232,9 +229,12 @@ function spec() { return next(err, that.block_count); }); } - sync(); + if (!err) + sync(); + else + return next(err, 0); }); - } + }; HistoricSync.prototype.import_history = function(opts, next) { var that = this; diff --git a/lib/PeerSync.js b/lib/PeerSync.js index f7e51b6..08561ac 100644 --- a/lib/PeerSync.js +++ b/lib/PeerSync.js @@ -23,7 +23,7 @@ function spec() { that.sync = new Sync({ networkName: network }); - that.sync.init(config, function() { + that.sync.init(config, function() { that.PeerManager = require('bitcore/PeerManager').createClass({ config: { network: network @@ -69,7 +69,6 @@ function spec() { }; PeerSync.prototype.handle_block = function(info) { - var self = this; var block = info.message.block; var blockHash = coinUtil.formatHashFull(block.calcHash()); console.log('[p2p_sync] Handle block: ' + blockHash); diff --git a/lib/Sync.js b/lib/Sync.js index 01a516c..1e19349 100644 --- a/lib/Sync.js +++ b/lib/Sync.js @@ -5,18 +5,19 @@ require('classtool'); function spec() { var mongoose = require('mongoose'); - var util = require('util'); - var RpcClient = require('bitcore/RpcClient').class(); - var async = require('async'); var config = require('../config/config'); var Block = require('../app/models/Block'); var Transaction = require('../app/models/Transaction'); +<<<<<<< Updated upstream var TransactionItem = require('../app/models/TransactionItem'); var sockets = require('../app/controllers/socket.js'); var CONCURRENCY = 5; +======= + var sockets = require('../app/views/sockets/main.js'); +>>>>>>> Stashed changes - function Sync(config) { + function Sync() { this.tx_count = 0; } @@ -68,7 +69,7 @@ function spec() { start, end, isForward); - return that.getPrevNextBlock( start, end, + return that.getPrevNextBlock( start, end, isForward ? { next: 1 } : { prev: 1}, cb); }; @@ -84,7 +85,7 @@ function spec() { this.db.on('error', function(err) { console.log('connection error:' + err); - moogose.disconnect(); + mongoose.disconnect(); }); this.db.on('disconnect', function(err) { @@ -99,7 +100,7 @@ function spec() { Sync.prototype.close = function() { if (!(this.opts && this.opts.skip_db_connection)) { - console.log("closing connection"); + console.log('closing connection'); this.db.close(); } }; diff --git a/server.js b/server.js index 7e4caf6..b69b910 100644 --- a/server.js +++ b/server.js @@ -4,6 +4,7 @@ //Set the node enviornment variable if not set before process.env.NODE_ENV = process.env.NODE_ENV || 'development'; + /** * Module dependencies. */ @@ -13,6 +14,7 @@ var express = require('express'), HistoricSync = require('./lib/HistoricSync').class(), mongoose = require('mongoose'); + /** * Main application entry file. */ @@ -42,31 +44,38 @@ var walk = function(path) { walk(models_path); // historic_sync process -var hs = new HistoricSync(); -hs.init({ - skip_db_connection: true, - networkName: config.network -}, function() { - hs.import_history({ - reverse: 1, - }, function(){ - console.log('historic_sync finished!'); +if (!config.disableHistoricSync) { + var hs = new HistoricSync(); + hs.init({ + skip_db_connection: true, + networkName: config.network + }, function() { + hs.import_history({ + reverse: 1, + }, function(){ + console.log('historic_sync finished!'); + }); }); -}); +} // p2p_sync process -var ps = new PeerSync(); -ps.init({ - skip_db_connection: true, - broadcast_txs: true, - broadcast_blocks: true -}, function() { - ps.run(); -}); +if (!config.disableP2pSync) { + var ps = new PeerSync(); + ps.init({ + skip_db_connection: true, + broadcast_txs: true, + broadcast_blocks: true + }, function() { + ps.run(); + }); +} // express app -var app = express(); + +/*jshint validthis:true */ +var app = express(); + //express settings require('./config/express')(app, db); @@ -76,7 +85,7 @@ require('./config/routes')(app); // socket.io var server = require('http').createServer(app); -var io = require('socket.io').listen(server); +var ios = require('socket.io').listen(server); require('./app/controllers/socket.js').init(app,io); //Start the app by listening on