attempt to use tx block caching again.

This commit is contained in:
Christopher Jeffrey 2014-12-08 11:34:20 -08:00
parent 3cbc54bcde
commit d37be97ad9
1 changed files with 8 additions and 15 deletions

View File

@ -394,29 +394,22 @@ Bitcoin.prototype.getTx = function(txHash, blockHash, callback) {
blockHash = '';
}
}
return bitcoinjs.getTransaction(txHash, blockHash, function(err, tx) {
if (err) return callback(err);
bitcoin.db.set('tx-block/' + txHash, { hash: tx.blockhash }, utils.NOOP);
return callback(null, bitcoin.tx(tx));
});
if (blockHash && typeof blockHash === 'string') {
return bitcoindjs.getTransaction(txHash, blockHash, function(err, tx) {
if (err) return callback(err);
bitcoin.db.set('tx-block/' + txHash, { hash: blockHash }, utils.NOOP);
bitcoin.db.set('tx-block/' + txHash,
{ hash: blockHash }, utils.NOOP);
return callback(null, bitcoin.tx(tx));
});
}
return bitcoin.db.get('tx-block/' + txHash, function(err, block) {
if (block) {
return bitcoinjs.getTransaction(txHash, block.hash, function(err, tx) {
if (err) return callback(err);
return callback(null, bitcoin.tx(tx));
});
}
// Will traverse blockchain - slow:
return bitcoinjs.getTransaction(txHash, blockHash, function(err, tx) {
// Will traverse blockchain if no block - slow:
return bitcoinjs.getTransaction(txHash, block ? block.hash : '', function(err, tx) {
if (err) return callback(err);
bitcoin.db.set('tx-block/' + txHash, { hash: tx.blockhash }, utils.NOOP);
if (!block) {
bitcoin.db.set('tx-block/' + txHash,
{ hash: tx.blockhash }, utils.NOOP);
}
return callback(null, bitcoin.tx(tx));
});
});