walletdb: cleanup wipe method.
This commit is contained in:
parent
5b43f76307
commit
704d9e1783
@ -470,115 +470,43 @@ WalletDB.prototype.backup = function backup(path) {
|
||||
|
||||
WalletDB.prototype.wipe = co(function* wipe() {
|
||||
var batch = this.db.batch();
|
||||
var dummy = new Buffer(0);
|
||||
var i, keys, key, gte, lte;
|
||||
var total = 0;
|
||||
var iter, item;
|
||||
|
||||
this.logger.warning('Wiping WalletDB TXDB...');
|
||||
this.logger.warning('I hope you know what you\'re doing.');
|
||||
|
||||
// All TXDB records
|
||||
keys = yield this.db.keys({
|
||||
gte: TXDB.layout.prefix(0x00000000, dummy),
|
||||
lte: TXDB.layout.prefix(0xffffffff, dummy)
|
||||
iter = db.iterator({
|
||||
gte: new Buffer([0x00]),
|
||||
lte: new Buffer([0xff])
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
for (;;) {
|
||||
item = yield iter.next();
|
||||
|
||||
if (!item)
|
||||
break;
|
||||
|
||||
try {
|
||||
switch (item.key[0]) {
|
||||
case 0x62: // b
|
||||
case 0x63: // c
|
||||
case 0x65: // e
|
||||
case 0x74: // t
|
||||
case 0x6f: // o
|
||||
case 0x68: // h
|
||||
case 0x52: // R
|
||||
batch.del(item.key);
|
||||
total++;
|
||||
break;
|
||||
}
|
||||
} catch (e) {
|
||||
yield iter.end();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
// All recent block hashes
|
||||
keys = yield this.db.keys({
|
||||
gte: layout.h(0),
|
||||
lte: layout.h(0xffffffff)
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
}
|
||||
|
||||
// The state record
|
||||
batch.del(layout.R);
|
||||
|
||||
// All block maps
|
||||
keys = yield this.db.keys({
|
||||
gte: layout.b(0),
|
||||
lte: layout.b(0xffffffff)
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
}
|
||||
|
||||
// All outpoint maps
|
||||
keys = yield this.db.keys({
|
||||
gte: layout.o(constants.NULL_HASH, 0),
|
||||
lte: layout.o(constants.HIGH_HASH, 0xffffffff)
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
}
|
||||
|
||||
// All TX maps (e -- old)
|
||||
gte = new Buffer(33);
|
||||
gte.fill(0);
|
||||
gte[0] = 0x65;
|
||||
|
||||
lte = new Buffer(33);
|
||||
lte.fill(255);
|
||||
lte[0] = 0x65;
|
||||
|
||||
keys = yield this.db.keys({
|
||||
gte: gte,
|
||||
lte: lte
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
}
|
||||
|
||||
// All block maps (b -- 32 byte old)
|
||||
gte = new Buffer(33);
|
||||
gte.fill(0);
|
||||
gte[0] = 0x62;
|
||||
|
||||
lte = new Buffer(33);
|
||||
lte.fill(255);
|
||||
lte[0] = 0x62;
|
||||
|
||||
keys = yield this.db.keys({
|
||||
gte: gte,
|
||||
lte: lte
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
}
|
||||
|
||||
// All block records (c -- old)
|
||||
gte = new Buffer(5);
|
||||
gte.fill(0);
|
||||
gte[0] = 0x63;
|
||||
|
||||
lte = new Buffer(5);
|
||||
lte.fill(255);
|
||||
lte[0] = 0x63;
|
||||
|
||||
keys = yield this.db.keys({
|
||||
gte: gte,
|
||||
lte: lte
|
||||
});
|
||||
|
||||
for (i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
batch.del(key);
|
||||
}
|
||||
this.logger.warning('Wiped %d txdb records.', total);
|
||||
|
||||
yield batch.write();
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user