cleanup.
This commit is contained in:
parent
c97c51eae0
commit
5830cc044b
@ -17,6 +17,7 @@ fullnode. Bcoin runs in node.js, but it can also be browserified.
|
|||||||
- Fast UTXO retrieval by address for wallets (10000 utxos from 10000 different
|
- Fast UTXO retrieval by address for wallets (10000 utxos from 10000 different
|
||||||
addresses in ~700ms, 50000+ utxos from 10-100 addresses in ~400ms)
|
addresses in ~700ms, 50000+ utxos from 10-100 addresses in ~400ms)
|
||||||
- Segregated witness support for block/tx validation and wallets.
|
- Segregated witness support for block/tx validation and wallets.
|
||||||
|
- Versionbits suport.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
|
|||||||
123
lib/bcoin/bst.js
123
lib/bcoin/bst.js
@ -623,126 +623,3 @@ function clone(node) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
module.exports = BST;
|
module.exports = BST;
|
||||||
|
|
||||||
if (module.parent)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var tree = new BST();
|
|
||||||
|
|
||||||
function bench(tree, name) {
|
|
||||||
var start = Date.now();
|
|
||||||
var istart = Date.now();
|
|
||||||
for (var i = 0; i < 100000; i++) {
|
|
||||||
tree.insert('foo ' + i, 'bar ' + i);
|
|
||||||
}
|
|
||||||
console.log('%s insert: %d', name, Date.now() - istart);
|
|
||||||
var sstart = Date.now();
|
|
||||||
for (var i = 0; i < 100000; i++) {
|
|
||||||
tree.search('foo ' + i);
|
|
||||||
}
|
|
||||||
console.log('%s search: %d', name, Date.now() - sstart);
|
|
||||||
var rstart = Date.now();
|
|
||||||
for (var i = 0; i < 100000; i++) {
|
|
||||||
if (i > 50000)
|
|
||||||
tree.remove('foo ' + i);
|
|
||||||
}
|
|
||||||
console.log('%s remove: %d', name, Date.now() - rstart);
|
|
||||||
var itstart = Date.now();
|
|
||||||
tree.range('foo 700', 'foo 80000');
|
|
||||||
console.log('%s iter: %d', name, Date.now() - itstart);
|
|
||||||
console.log('%s total: %d', name, Date.now() - start);
|
|
||||||
}
|
|
||||||
|
|
||||||
bench(tree, 'tree');
|
|
||||||
|
|
||||||
var tree = new BST();
|
|
||||||
for (var i = 0; i < 1000; i++) {
|
|
||||||
tree.insert('foo ' + i, 'bar ' + i);
|
|
||||||
}
|
|
||||||
for (var i = 0; i < 1000; i++) {
|
|
||||||
assert(tree.search('foo ' + i).toString('utf8') === 'bar ' + i);
|
|
||||||
if (i > 900)
|
|
||||||
tree.remove('foo ' + i);
|
|
||||||
}
|
|
||||||
for (var i = 0; i < 1000; i++) {
|
|
||||||
if (i > 900)
|
|
||||||
assert(tree.search('foo ' + i) == null);
|
|
||||||
else
|
|
||||||
assert(tree.search('foo ' + i).toString('utf8') === 'bar ' + i);
|
|
||||||
}
|
|
||||||
|
|
||||||
var items = tree.range('foo 700', 'foo 800');
|
|
||||||
|
|
||||||
//utils.print(items);
|
|
||||||
|
|
||||||
tree.open(function() {
|
|
||||||
var batch = tree.batch();
|
|
||||||
for (var i = 0; i < 1000; i++) {
|
|
||||||
var key = 'foo ' + i;
|
|
||||||
var val = new Buffer('bar ' + i, 'ascii');
|
|
||||||
batch.put(key, val);
|
|
||||||
}
|
|
||||||
batch.write(function(err) {
|
|
||||||
if (err)
|
|
||||||
throw err;
|
|
||||||
var batch = tree.batch();
|
|
||||||
for (var i = 0; i < 1000; i++) {
|
|
||||||
var key = 'foo ' + i;
|
|
||||||
var val = new Buffer('bar ' + i, 'ascii');
|
|
||||||
if (i > 950)
|
|
||||||
batch.del(key);
|
|
||||||
else
|
|
||||||
batch.put(key, val);
|
|
||||||
}
|
|
||||||
batch.write(function(err) {
|
|
||||||
if (err)
|
|
||||||
throw err;
|
|
||||||
utils.forRangeSerial(0, 1000, function(i, next) {
|
|
||||||
var key = 'foo ' + i;
|
|
||||||
var val = new Buffer('bar ' + i, 'ascii');
|
|
||||||
tree.get(key, function(err, value) {
|
|
||||||
if (i > 950) {
|
|
||||||
assert(err);
|
|
||||||
assert(err.type === 'NotFoundError');
|
|
||||||
return next();
|
|
||||||
}
|
|
||||||
if (err)
|
|
||||||
return next(err);
|
|
||||||
assert(utils.isEqual(value, val));
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
}, function(err) {
|
|
||||||
if (err)
|
|
||||||
throw err;
|
|
||||||
var iter = tree.iterator({
|
|
||||||
gte: 'foo 900',
|
|
||||||
lte: 'foo 999',
|
|
||||||
keyAsBuffer: false,
|
|
||||||
fillCache: false
|
|
||||||
});
|
|
||||||
(function next() {
|
|
||||||
iter.next(function(err, key, value) {
|
|
||||||
if (err) {
|
|
||||||
return iter.end(function(e) {
|
|
||||||
throw err;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (key === undefined) {
|
|
||||||
return iter.end(function(e) {
|
|
||||||
if (e)
|
|
||||||
throw e;
|
|
||||||
utils.print(tree.dump());
|
|
||||||
tree.approximateSize(null, null, function(err, size) {
|
|
||||||
utils.print(size);
|
|
||||||
return console.log('done');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
console.log(key + ' : ' + value);
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|||||||
@ -255,8 +255,6 @@ Peer.prototype.broadcast = function broadcast(items) {
|
|||||||
packetType = 'block';
|
packetType = 'block';
|
||||||
else if (type === constants.inv.tx)
|
else if (type === constants.inv.tx)
|
||||||
packetType = 'tx';
|
packetType = 'tx';
|
||||||
else if (type === constants.inv.filteredblock)
|
|
||||||
packetType = 'merkleblock';
|
|
||||||
else
|
else
|
||||||
assert(false, 'Bad type.');
|
assert(false, 'Bad type.');
|
||||||
|
|
||||||
@ -1069,8 +1067,8 @@ Peer.prototype._handleGetData = function handleGetData(items) {
|
|||||||
utils.debug(
|
utils.debug(
|
||||||
'Served %d items to %s with getdata (notfound=%d).',
|
'Served %d items to %s with getdata (notfound=%d).',
|
||||||
items.length - notfound.length,
|
items.length - notfound.length,
|
||||||
notfound.length,
|
self.host,
|
||||||
self.host);
|
notfound.length);
|
||||||
|
|
||||||
if (notfound.length > 0)
|
if (notfound.length > 0)
|
||||||
self._write(self.framer.notFound(notfound));
|
self._write(self.framer.notFound(notfound));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user