walletdb: more refactoring.

This commit is contained in:
Christopher Jeffrey 2016-10-24 10:52:28 -07:00
parent 45464c412f
commit ffc17b48c2
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
3 changed files with 26 additions and 20 deletions

View File

@ -1119,19 +1119,20 @@ ChainDB.prototype.scan = co(function* scan(start, filter, iter) {
while (entry) {
block = yield this.getBlock(entry.hash);
txs = [];
total++;
if (!block) {
if (!this.options.spv && !this.options.prune)
throw new Error('Block not found.');
yield iter(entry, txs);
entry = yield entry.getNext();
continue;
}
this.logger.info(
'Scanning block %s (%d).',
entry.rhash, block.height);
txs = [];
entry.rhash, entry.height);
for (i = 0; i < block.txs.length; i++) {
tx = block.txs[i];

View File

@ -136,7 +136,8 @@ main.genesis = {
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
ts: 1231006505,
bits: 486604799,
nonce: 2083236893
nonce: 2083236893,
height: 0
};
/**
@ -501,7 +502,8 @@ testnet.genesis = {
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
ts: 1296688602,
bits: 486604799,
nonce: 414098458
nonce: 414098458,
height: 0
};
testnet.genesisBlock =
@ -646,7 +648,8 @@ regtest.genesis = {
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
ts: 1296688602,
bits: 545259519,
nonce: 2
nonce: 2,
height: 0
};
regtest.genesisBlock =
@ -788,7 +791,8 @@ segnet3.genesis = {
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
ts: 1452831101,
bits: 486604799,
nonce: 0
nonce: 0,
height: 0
};
segnet3.genesisBlock =
@ -907,7 +911,8 @@ segnet4.genesis = {
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
ts: 1452831101,
bits: 503447551,
nonce: 0
nonce: 0,
height: 0
};
segnet4.genesisBlock =
@ -1047,7 +1052,8 @@ simnet.genesis = {
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
ts: 1401292357,
bits: 545259519,
nonce: 2
nonce: 2,
height: 0
};
simnet.genesisBlock =

View File

@ -1213,6 +1213,7 @@ WalletDB.prototype._rescan = co(function* rescan(chaindb, height) {
}
if (height == null) {
assert(this.network.block.keepBlocks > 36);
height = this.height - 36;
if (height < 0)
height = 0;
@ -1462,10 +1463,6 @@ WalletDB.prototype.writeGenesis = co(function* writeGenesis() {
WalletDB.prototype.forceTip = co(function* forceTip(entry) {
var tip = HeaderRecord.fromEntry(entry);
if (entry === this.network.genesis)
tip.height = 0;
yield this.setTip(tip);
});
@ -1476,8 +1473,10 @@ WalletDB.prototype.forceTip = co(function* forceTip(entry) {
WalletDB.prototype.getTip = co(function* getTip() {
var height = yield this.getHeight();
if (height === -1)
return;
return yield this.getHeader(height);
});
@ -1655,7 +1654,7 @@ WalletDB.prototype._addBlock = co(function* addBlock(entry, txs) {
var i, tip, tx;
if (entry.height <= this.height) {
this.logger.warning('Connecting low blocks.');
this.logger.warning('Wallet is connecting low blocks.');
return total;
}
@ -1673,7 +1672,7 @@ WalletDB.prototype._addBlock = co(function* addBlock(entry, txs) {
for (i = 0; i < txs.length; i++) {
tx = txs[i];
if (yield this._addTX(tx, tip))
if (yield this._insert(tx, tip))
total++;
}
@ -1712,7 +1711,7 @@ WalletDB.prototype._removeBlock = co(function* removeBlock(entry) {
var i, tx, tip, prev, block;
if (entry.height > this.height) {
this.logger.warning('Disconnecting high blocks.');
this.logger.warning('Wallet is disconnecting high blocks.');
return 0;
}
@ -1738,7 +1737,7 @@ WalletDB.prototype._removeBlock = co(function* removeBlock(entry) {
for (i = block.txs.length - 1; i >= 0; i--) {
tx = block.txs[i];
yield this._unconfirmTX(tx, tip);
yield this._unconfirm(tx, tip);
}
yield this.setTip(prev);
@ -1774,7 +1773,7 @@ WalletDB.prototype.addTX = co(function* addTX(tx) {
this.logger.warning('Retroactively inserting confirmed transaction.');
}
return yield this._addTX(tx);
return yield this._insert(tx);
} finally {
unlock();
}
@ -1788,7 +1787,7 @@ WalletDB.prototype.addTX = co(function* addTX(tx) {
* @returns {Promise}
*/
WalletDB.prototype._addTX = co(function* addTX(tx, block) {
WalletDB.prototype._insert = co(function* insert(tx, block) {
var result = false;
var i, wids, wid, wallet;
@ -1832,7 +1831,7 @@ WalletDB.prototype._addTX = co(function* addTX(tx, block) {
* @returns {Promise}
*/
WalletDB.prototype._unconfirmTX = co(function* unconfirmTX(tx, block) {
WalletDB.prototype._unconfirm = co(function* unconfirm(tx, block) {
var i, wid, wallet;
for (i = 0; i < tx.wids.length; i++) {