commit
cf498f7604
52
lib/node.js
52
lib/node.js
@ -8,6 +8,13 @@ var Primus = require('primus'),
|
||||
Latency = require('primus-spark-latency'),
|
||||
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({
|
||||
transformer: 'websockets',
|
||||
pathname: '/api',
|
||||
@ -15,19 +22,11 @@ Socket = Primus.createSocket({
|
||||
plugin: {emitter: Emitter, sparkLatency: Latency}
|
||||
});
|
||||
|
||||
var INSTANCE_NAME = process.env.INSTANCE_NAME;
|
||||
var ETH_VERSION = "unknown";
|
||||
|
||||
if(process.env.NODE_ENV === 'production')
|
||||
{
|
||||
if(process.env.INSTANCE_NAME === "")
|
||||
if(process.env.NODE_ENV === 'production' && INSTANCE_NAME === "")
|
||||
{
|
||||
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 WS_SECRET = process.env.WS_SECRET || "eth-net-stats-has-a-secret";
|
||||
|
||||
@ -37,13 +36,20 @@ function Node()
|
||||
{
|
||||
var self = this;
|
||||
|
||||
web3.setProvider(new web3.providers.HttpProvider('http://' + (process.env.RPC_HOST || 'localhost') + ':' + (process.env.RPC_PORT || '8080')));
|
||||
|
||||
ETH_VERSION = web3.version;
|
||||
try {
|
||||
ETH_VERSION = web3.version.client;
|
||||
NET_VERSION = web3.version.network;
|
||||
API_VERSION = web3.version.api;
|
||||
}
|
||||
catch (err) {
|
||||
console.log("couldn't get Version");
|
||||
}
|
||||
|
||||
this.info = {
|
||||
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_v: os.release()
|
||||
};
|
||||
@ -167,24 +173,13 @@ Node.prototype.getBlock = function(number)
|
||||
}
|
||||
|
||||
try {
|
||||
block = web3.eth.getBlock(number);
|
||||
block = web3.eth.getBlock(number, true);
|
||||
block.arrival = Date.now();
|
||||
block.propagation = block.arrival - (block.timestamp * 1000);
|
||||
|
||||
if(block.hash != '?' && typeof block.difficulty !== 'undefined')
|
||||
{
|
||||
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) {
|
||||
@ -272,7 +267,7 @@ Node.prototype.txDensityChart = function()
|
||||
{
|
||||
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.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;
|
||||
}
|
||||
|
||||
@ -346,6 +341,7 @@ Node.prototype.setWatches = function()
|
||||
this.pendingWatch = web3.eth.filter('pending');
|
||||
this.pendingWatch.watch( function(log) {
|
||||
console.log(log);
|
||||
// console.log(self.pendingWatch.get());
|
||||
// console.log('pending changed');
|
||||
// self.stats.pending = parseInt(log.number);
|
||||
});
|
||||
@ -384,6 +380,8 @@ Node.prototype.stop = function()
|
||||
if(this._socket)
|
||||
socket.end();
|
||||
|
||||
web3.reset();
|
||||
|
||||
if(this.updateInterval)
|
||||
clearInterval(this.updateInterval);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user