_revertLast.
This commit is contained in:
parent
42f5ece282
commit
469d3c35d0
@ -370,7 +370,7 @@ Chain.prototype._saveBlock = function _saveBlock(block, callback) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!this.blockdb)
|
if (!this.blockdb)
|
||||||
return callback();
|
return utils.nextTick(callback);
|
||||||
|
|
||||||
this.blockdb.saveBlock(block, callback);
|
this.blockdb.saveBlock(block, callback);
|
||||||
};
|
};
|
||||||
@ -379,7 +379,7 @@ Chain.prototype._removeBlock = function _removeBlock(tip, callback) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!this.blockdb)
|
if (!this.blockdb)
|
||||||
return callback();
|
return utils.nextTick(callback);
|
||||||
|
|
||||||
this.blockdb.removeBlock(tip, callback);
|
this.blockdb.removeBlock(tip, callback);
|
||||||
};
|
};
|
||||||
@ -829,6 +829,21 @@ Chain.prototype.revertHeight = function revertHeight(height, callback) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Chain.prototype._revertLast = function _revertLast(existing, callback) {
|
||||||
|
var self = this;
|
||||||
|
return this._removeBlock(existing.hash, function(err, existingBlock) {
|
||||||
|
if (err)
|
||||||
|
return callback(err);
|
||||||
|
|
||||||
|
self.resetHeight(existing.height - 1);
|
||||||
|
|
||||||
|
if (existingBlock)
|
||||||
|
self.emit('remove block', existingBlock);
|
||||||
|
|
||||||
|
return callback();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Chain.prototype.syncHeight = function syncHeight(callback) {
|
Chain.prototype.syncHeight = function syncHeight(callback) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var chainHeight;
|
var chainHeight;
|
||||||
@ -1077,15 +1092,10 @@ Chain.prototype.add = function add(initial, peer, callback) {
|
|||||||
// alternate tip). Reset the chain, find
|
// alternate tip). Reset the chain, find
|
||||||
// a new peer, and wait to see who wins.
|
// a new peer, and wait to see who wins.
|
||||||
// return self.revertHeight(existing.height - 1, function(err) {
|
// return self.revertHeight(existing.height - 1, function(err) {
|
||||||
return self._removeBlock(existing.hash, function(err, existingBlock) {
|
return self._revertLast(existing, function(err, existingBlock) {
|
||||||
if (err)
|
if (err)
|
||||||
return done(err);
|
return done(err);
|
||||||
|
|
||||||
self.resetHeight(existing.height - 1);
|
|
||||||
|
|
||||||
if (existingBlock)
|
|
||||||
self.emit('remove block', existingBlock);
|
|
||||||
|
|
||||||
self.emit('fork', block, {
|
self.emit('fork', block, {
|
||||||
height: existing.height,
|
height: existing.height,
|
||||||
expected: existing.hash,
|
expected: existing.hash,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user