check block-tx cache from db.

This commit is contained in:
Christopher Jeffrey 2014-12-09 09:50:15 -08:00
parent fbbc8f5fb2
commit add618c1e5

View File

@ -572,14 +572,15 @@ Bitcoin.prototype.__defineGetter__('chainHeight', function() {
Bitcoin.prototype.getBlockByTxid =
Bitcoin.prototype.getBlockByTx = function(txid, callback) {
return bitcoindjs.getBlockByTx(txid, function(err, block) {
if (err) return callback(err);
bitcoin.db.get('block-tx/' + txid, function(err, blocks) {
blocks = blocks || [];
blocks.push({ hash: block.hash });
bitcoin.db.set('block-tx/' + txid, blocks, utils.NOOP);
return bitcoin.db.get('block-tx/' + txid, function(err, block) {
if (block) {
return self.getBlock(block.hash, callback);
}
return bitcoindjs.getBlockByTx(txid, function(err, block) {
if (err) return callback(err);
bitcoin.db.set('block-tx/' + txid, { hash: block.hash }, utils.NOOP);
return callback(null, bitcoin.block(block));
});
return callback(null, bitcoin.block(block));
});
};