Fixed reorg tests.
This commit is contained in:
parent
07b1ff3111
commit
f1da1e7612
@ -267,9 +267,17 @@ HeaderService.prototype._onBlock = function(block) {
|
||||
}
|
||||
|
||||
if (reorg) {
|
||||
self._handleReorg(block, header); // this sets the last header
|
||||
self._saveHeaders(self._onHeader(header));
|
||||
return;
|
||||
return self._handleReorg(block, header, function(err) {
|
||||
|
||||
if (err) {
|
||||
log.error(err);
|
||||
self.node.stop();
|
||||
return;
|
||||
}
|
||||
|
||||
self._saveHeaders(self._onHeader(header));
|
||||
|
||||
}); // this sets the last header
|
||||
}
|
||||
|
||||
self._broadcast(block);
|
||||
@ -385,8 +393,13 @@ HeaderService.prototype._onHeadersSave = function(err) {
|
||||
}
|
||||
|
||||
if (reorg) {
|
||||
self._handleReorg();
|
||||
return;
|
||||
return self._handleReorg(null, null, function(err) {
|
||||
if (err) {
|
||||
log.error(err);
|
||||
this.node.stop();
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
log.info('Header Service: emitting headers to block service.');
|
||||
@ -505,15 +518,13 @@ HeaderService.prototype._detectStartupReorg = function(callback) {
|
||||
|
||||
};
|
||||
|
||||
HeaderService.prototype._handleReorg = function(block, header) {
|
||||
HeaderService.prototype._handleReorg = function(block, header, callback) {
|
||||
|
||||
var self = this;
|
||||
self.getAllHeaders(function(err, headers) {
|
||||
|
||||
if (err || !headers) {
|
||||
log.error(err || new Error('Missing headers'));
|
||||
self.node.stop();
|
||||
return;
|
||||
return callback(err || new Error('Missing headers'));
|
||||
}
|
||||
|
||||
var hash = headers.getIndex(self._originalTip.height).hash;
|
||||
@ -528,7 +539,7 @@ HeaderService.prototype._handleReorg = function(block, header) {
|
||||
|
||||
assert(hash, 'To reorg, we need a hash to reorg to.');
|
||||
self.emit('reorg', hash, headers);
|
||||
|
||||
callback();
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
var expect = require('chai').expect;
|
||||
var sinon = require('sinon');
|
||||
var net = require('net');
|
||||
var spawn = require('child_process').spawn;
|
||||
var path = require('path');
|
||||
@ -32,10 +31,6 @@ var headers = blocks.map(function(block) {
|
||||
return block.header;
|
||||
});
|
||||
|
||||
console.log(headers);
|
||||
|
||||
var magic = new Buffer('fabfb5da', 'hex');
|
||||
|
||||
var debug = true;
|
||||
var bitcoreDataDir = '/tmp/bitcore';
|
||||
|
||||
@ -255,6 +250,8 @@ describe('Reorg', function() {
|
||||
return;
|
||||
}
|
||||
var data = JSON.parse(resData);
|
||||
expect(data.height).to.equal(7);
|
||||
expect(data.hash).to.equal(reorgBlock.rhash());
|
||||
done(resError, resData);
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user