Merge pull request #171 from braydonf/fix-benchmarks

Update benchmarks
This commit is contained in:
Chris Kleeschulte 2015-09-01 14:30:06 -04:00
commit af6528e1f1
2 changed files with 40 additions and 19 deletions

View File

@ -2,18 +2,18 @@
var benchmark = require('benchmark'); var benchmark = require('benchmark');
var async = require('async'); var async = require('async');
var memdown = require('memdown'); var sinon = require('sinon');
var Block = require('../lib/block'); var bitcore = require('bitcore');
var AddressModule = require('../lib/modules/address'); var Block = bitcore.Block;
var DB = require('../lib/db'); var AddressService = require('../lib/services/address');
var maxTime = 20; var maxTime = 20;
var blockData1 = require('./data/block-367238.json'); var blockData1 = require('./data/block-367238.json');
var blockData2 = require('./data/block-367239.json'); var blockData2 = require('./data/block-367239.json');
var blockData3 = require('./data/block-367240.json'); var blockData3 = require('./data/block-367240.json');
console.log('Benchmarking Address Block Handler'); console.log('Address Service Block Handler');
console.log('----------------------------------'); console.log('-----------------------------');
async.series([ async.series([
function(next) { function(next) {
@ -25,15 +25,21 @@ async.series([
Block.fromBuffer(new Buffer(blockData3, 'hex')) Block.fromBuffer(new Buffer(blockData3, 'hex'))
]; ];
var blocksLength = 3; var blocksLength = 3;
var db = new DB({store: memdown}); var node = {
var addressModule = new AddressModule({db: db}); services: {
bitcoind : {
on: sinon.stub()
}
}
};
var addressService = new AddressService({node: node});
function blockHandler(deffered) { function blockHandler(deffered) {
if (c >= blocksLength) { if (c >= blocksLength) {
c = 0; c = 0;
} }
var block = blocks[c]; var block = blocks[c];
addressModule.blockHandler(block, true, function(err, operations) { addressService.blockHandler(block, true, function(err, operations) {
if (err) { if (err) {
throw err; throw err;
} }

View File

@ -5,7 +5,7 @@ var bitcoin = require('bitcoin');
var async = require('async'); var async = require('async');
var maxTime = 20; var maxTime = 20;
console.log('Benchmarking Bitcoind.js native interface versus Bitcoind JSON RPC interface'); console.log('Bitcoin Service native interface vs. Bitcoin JSON RPC interface');
console.log('----------------------------------------------------------------------'); console.log('----------------------------------------------------------------------');
// To run the benchmarks a fully synced Bitcore Core directory is needed. The RPC comands // To run the benchmarks a fully synced Bitcore Core directory is needed. The RPC comands
@ -26,22 +26,29 @@ var fixtureData = {
] ]
}; };
var bitcoind = require('../').daemon({ var bitcoind = require('../').services.Bitcoin({
datadir: process.env.BITCORENODE_DIR || '~/.bitcoin', node: {
network: 'testnet' datadir: process.env.HOME + '/.bitcoin',
network: {
name: 'testnet'
}
}
}); });
bitcoind.on('error', function(err) { bitcoind.on('error', function(err) {
bitcoind.log('error="%s"', err.message); console.error(err.message);
}); });
bitcoind.on('open', function(status) { bitcoind.start(function(err) {
bitcoind.log('status="%s"', status); if (err) {
throw err;
}
console.log('Bitcoin Core started');
}); });
bitcoind.on('ready', function() { bitcoind.on('ready', function() {
bitcoind.log('status="%s"', 'chaintip ready.'); console.log('Bitcoin Core ready');
var client = new bitcoin.Client({ var client = new bitcoin.Client({
host: 'localhost', host: 'localhost',
@ -147,8 +154,16 @@ bitcoind.on('ready', function() {
.run(); .run();
} }
], function(err) { ], function(err) {
if (err) {
throw err;
}
console.log('Finished'); console.log('Finished');
bitcoind.stop(); bitcoind.stop(function(err) {
process.exit(); if (err) {
console.error('Fail to stop services: ' + err);
process.exit(1);
}
process.exit(0);
});
}); });
}); });