diff --git a/app/controllers/socket.js b/app/controllers/socket.js new file mode 100644 index 00000000..7bcad799 --- /dev/null +++ b/app/controllers/socket.js @@ -0,0 +1,23 @@ +'use strict'; + +// server-side socket behaviour + +// io is a variable already taken in express +var ios = null; + +module.exports.init = function(app, io_ext) { + ios = io_ext; + ios.set('log level', 1); // reduce logging + ios.sockets.on('connection', function() { + }); +}; + + +module.exports.broadcast_tx = function(tx) { + ios.sockets.emit('tx', tx); +}; + + +module.exports.broadcast_block = function(block) { + ios.sockets.emit('block', block); +}; diff --git a/app/models/Status.js b/app/models/Status.js index 9ab66785..321e2271 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/app/views/sockets/main.js b/app/views/sockets/main.js deleted file mode 100644 index b8b3f52d..00000000 --- a/app/views/sockets/main.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var Transaction = require('../../models/Transaction'); - -// server-side socket behaviour - -var io = null; - -module.exports.init = function(app, io_ext) { - io = io_ext; - io.set('log level', 1); // reduce logging - io.sockets.on('connection', function(socket) { - - }); -}; - - -module.exports.broadcast_tx = function(tx) { - io.sockets.emit('tx', tx); -}; - - -module.exports.broadcast_block = function(block) { - io.sockets.emit('block', block); -}; diff --git a/config/env/development.js b/config/env/development.js index 0d4e6c1b..fbe2cb41 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 f3b99f14..2c432d9c 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/views/sockets/main.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/Sync.js b/lib/Sync.js index eb34a487..520ba14a 100644 --- a/lib/Sync.js +++ b/lib/Sync.js @@ -5,18 +5,13 @@ 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'); - var TransactionItem = require('../app/models/TransactionItem'); - var sockets = require('../app/views/sockets/main.js'); - var CONCURRENCY = 5; + var sockets = require('../app/controllers/socket.js'); - function Sync(config) { + function Sync() { this.tx_count = 0; } @@ -68,7 +63,7 @@ function spec() { start, end, isForward); - return that.getPrevNextBlock( start, end, + return that.getPrevNextBlock( start, end, isForward ? { next: 1 } : { prev: 1}, cb); }; diff --git a/package.json b/package.json index d295bc67..c7ce3815 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,16 @@ "email": "manuelaraoz@gmail.com" }, { - "name": "Mario Colque", + "name": "Mario Colque", "email": "colquemario@gmail.com" + }, + { + "name": "Gustavo Cortez", + "email": "cmgustavo83@gmail.com" + }, + { + "name": "Juan Sosa", + "email": "bechilandia@gmail.com" } ], "bugs": { diff --git a/public/views/address.html b/public/views/address.html index bcafe336..539dca16 100644 --- a/public/views/address.html +++ b/public/views/address.html @@ -40,26 +40,6 @@

Transactions Transactions contained within this block

- - - - - - - - - - - - - - - - - - - - -
Transaction HashDatetimeFeeTransacted Amount
Loading...
{{tx.txid}}{{tx.time * 1000 | date:'medium'}}{{tx.feeds}}{{tx.valueOut}}
+
diff --git a/public/views/block.html b/public/views/block.html index a81b42dc..8d85c85d 100644 --- a/public/views/block.html +++ b/public/views/block.html @@ -50,18 +50,6 @@ Number Of Transactions {{block.tx.length}} - - Output Total - -- - - - Estimated Transaction Volume - -- - - - Transaction Fees - -- - Height {{block.height}} @@ -76,10 +64,6 @@
- - - - @@ -107,42 +91,7 @@

Transactions Transactions contained within this block

- -
-
- {{tx.txid}} - {{tx.time * 1000 | date:'medium'}} -
- -
-
- Transmitter -
-
- -
-
-
-
-

Receptor

-

Receptor

-
-
-

Bitcoin of Receptor

-

Bitcoin of Receptor

-
-
-
-
- -
- Feeds: {{tx.feeds}} -
- {{tx.valueOut}} -
-
-
- +
diff --git a/public/views/transaction/list.html b/public/views/transaction/list.html new file mode 100644 index 00000000..ca60761f --- /dev/null +++ b/public/views/transaction/list.html @@ -0,0 +1,48 @@ +
Loading...
+
+
+ {{tx.txid}} + {{tx.time * 1000 | date:'medium'}} +
+ +
+
+ No Inputs (Newly Generated isCoinBasens) +
+
+ {{vin.addr}} + {{vin.value}} BTC +

+ Outpoint: + {{vin.txid}} +

+
+
+
+
+ +
+
+
+
+
+ {{vout.scriptPubKey.type}} +
+
+
+
+ {{address}} + {{vout.value}} BTC +
+
+
+
+
+ +
+ Feeds: {{tx.feeds}} +
+ {{tx.valueOut}} +
+
+
diff --git a/server.js b/server.js index f93802af..1d61a87a 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,30 +44,35 @@ 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 +/*global app: true*/ var app = express(); //express settings @@ -76,8 +83,8 @@ require('./config/routes')(app); // socket.io var server = require('http').createServer(app); -var io = require('socket.io').listen(server); -require('./app/views/sockets/main.js').init(app,io); +var ios = require('socket.io').listen(server); +require('./app/controllers/socket.js').init(app,ios); //Start the app by listening on var port = process.env.PORT || config.port;
Relayed By --
Difficulty {{block.difficulty}}