Merge pull request #23 from cubedro/develop

POC9 update
This commit is contained in:
Marian OANCΞA 2015-03-22 23:10:26 +02:00
commit cf498f7604

View File

@ -8,6 +8,13 @@ var Primus = require('primus'),
Latency = require('primus-spark-latency'), Latency = require('primus-spark-latency'),
Socket; Socket;
var ETH_VERSION,
NET_VERSION,
API_VERSION;
var INSTANCE_NAME = process.env.INSTANCE_NAME;
web3.setProvider(new web3.providers.HttpProvider('http://' + (process.env.RPC_HOST || 'localhost') + ':' + (process.env.RPC_PORT || '8080')));
Socket = Primus.createSocket({ Socket = Primus.createSocket({
transformer: 'websockets', transformer: 'websockets',
pathname: '/api', pathname: '/api',
@ -15,17 +22,9 @@ Socket = Primus.createSocket({
plugin: {emitter: Emitter, sparkLatency: Latency} plugin: {emitter: Emitter, sparkLatency: Latency}
}); });
var INSTANCE_NAME = process.env.INSTANCE_NAME; if(process.env.NODE_ENV === 'production' && INSTANCE_NAME === "")
var ETH_VERSION = "unknown";
if(process.env.NODE_ENV === 'production')
{ {
if(process.env.INSTANCE_NAME === "") INSTANCE_NAME = shelljs.exec('ec2metadata --instance-id', {silent: true}).output;
{
INSTANCE_NAME = shelljs.exec('ec2metadata --instance-id', {silent: true}).output;
}
// ETH_VERSION = shelljs.exec((process.env.ETH_IMPLEMENTATION === 'go' ? 'ethereum version' : 'eth -V'), {silent: true}).output;
} }
var socket = new Socket(process.env.WS_SERVER || 'ws://localhost:3000'); var socket = new Socket(process.env.WS_SERVER || 'ws://localhost:3000');
@ -37,13 +36,20 @@ function Node()
{ {
var self = this; var self = this;
web3.setProvider(new web3.providers.HttpProvider('http://' + (process.env.RPC_HOST || 'localhost') + ':' + (process.env.RPC_PORT || '8080'))); try {
ETH_VERSION = web3.version.client;
ETH_VERSION = web3.version; NET_VERSION = web3.version.network;
API_VERSION = web3.version.api;
}
catch (err) {
console.log("couldn't get Version");
}
this.info = { this.info = {
name: INSTANCE_NAME || (process.env.EC2_INSTANCE_ID || os.hostname()), name: INSTANCE_NAME || (process.env.EC2_INSTANCE_ID || os.hostname()),
node: 'unknown', node: ETH_VERSION,
net: NET_VERSION,
api: API_VERSION,
os: os.platform(), os: os.platform(),
os_v: os.release() os_v: os.release()
}; };
@ -167,24 +173,13 @@ Node.prototype.getBlock = function(number)
} }
try { try {
block = web3.eth.getBlock(number); block = web3.eth.getBlock(number, true);
block.arrival = Date.now(); block.arrival = Date.now();
block.propagation = block.arrival - (block.timestamp * 1000); block.propagation = block.arrival - (block.timestamp * 1000);
if(block.hash != '?' && typeof block.difficulty !== 'undefined') if(block.hash != '?' && typeof block.difficulty !== 'undefined')
{ {
block.difficulty = web3.toDecimal(block.difficulty); block.difficulty = web3.toDecimal(block.difficulty);
try {
block.txCount = web3.eth.getBlockTransactionCount(block.hash) || '?';
}
catch (err) {
this.stats.errors.push({
code: '4',
msg: err
});
console.log(err);
}
} }
} }
catch (err) { catch (err) {
@ -272,7 +267,7 @@ Node.prototype.txDensityChart = function()
{ {
return txDensity = _.map(this.blocks, function(block) return txDensity = _.map(this.blocks, function(block)
{ {
return block.txCount; return block.transactions.length;
}); });
} }
@ -295,7 +290,7 @@ Node.prototype.getStats = function()
this.getLatestBlocks(); this.getLatestBlocks();
this.stats.mining = web3.eth.mining; this.stats.mining = web3.eth.mining;
this.stats.gasPrice = web3.toDecimal(web3.eth.gasPrice); this.stats.gasPrice = web3.eth.gasPrice.toString(10);
this.stats.listening = web3.net.listening; this.stats.listening = web3.net.listening;
} }
@ -346,6 +341,7 @@ Node.prototype.setWatches = function()
this.pendingWatch = web3.eth.filter('pending'); this.pendingWatch = web3.eth.filter('pending');
this.pendingWatch.watch( function(log) { this.pendingWatch.watch( function(log) {
console.log(log); console.log(log);
// console.log(self.pendingWatch.get());
// console.log('pending changed'); // console.log('pending changed');
// self.stats.pending = parseInt(log.number); // self.stats.pending = parseInt(log.number);
}); });
@ -384,6 +380,8 @@ Node.prototype.stop = function()
if(this._socket) if(this._socket)
socket.end(); socket.end();
web3.reset();
if(this.updateInterval) if(this.updateInterval)
clearInterval(this.updateInterval); clearInterval(this.updateInterval);