forked from LBRYCommunity/lbry-sdk
use mempool cache in transaction_get_batch
This commit is contained in:
parent
77d58b82a0
commit
6eeabb1a1a
3 changed files with 11 additions and 5 deletions
|
@ -56,7 +56,7 @@ async def get_recent_claims(env, index_name='claims', db=None):
|
||||||
db.prefix_db.unsafe_commit()
|
db.prefix_db.unsafe_commit()
|
||||||
db.assert_db_state()
|
db.assert_db_state()
|
||||||
|
|
||||||
logging.info("finished sending %i claims to ES, deleted %i", cnt, len(touched_claims), len(deleted_claims))
|
logging.info("finished sending %i claims to ES, deleted %i", cnt, len(deleted_claims))
|
||||||
finally:
|
finally:
|
||||||
if need_open:
|
if need_open:
|
||||||
db.close()
|
db.close()
|
||||||
|
|
|
@ -29,6 +29,7 @@ class MemPoolTx:
|
||||||
out_pairs = attr.ib()
|
out_pairs = attr.ib()
|
||||||
fee = attr.ib()
|
fee = attr.ib()
|
||||||
size = attr.ib()
|
size = attr.ib()
|
||||||
|
raw_tx = attr.ib()
|
||||||
|
|
||||||
|
|
||||||
@attr.s(slots=True)
|
@attr.s(slots=True)
|
||||||
|
@ -230,7 +231,7 @@ class MemPool:
|
||||||
txout_pairs = tuple((to_hashX(txout.pk_script), txout.value)
|
txout_pairs = tuple((to_hashX(txout.pk_script), txout.value)
|
||||||
for txout in tx.outputs)
|
for txout in tx.outputs)
|
||||||
tx_map[hash] = MemPoolTx(txin_pairs, None, txout_pairs,
|
tx_map[hash] = MemPoolTx(txin_pairs, None, txout_pairs,
|
||||||
0, tx_size)
|
0, tx_size, raw_tx)
|
||||||
|
|
||||||
# Determine all prevouts not in the mempool, and fetch the
|
# Determine all prevouts not in the mempool, and fetch the
|
||||||
# UTXO information from the database. Failed prevout lookups
|
# UTXO information from the database. Failed prevout lookups
|
||||||
|
|
|
@ -1461,9 +1461,14 @@ class LBRYElectrumX(SessionBase):
|
||||||
for tx_hash in tx_hashes:
|
for tx_hash in tx_hashes:
|
||||||
if tx_hash in batch_result and batch_result[tx_hash][0]:
|
if tx_hash in batch_result and batch_result[tx_hash][0]:
|
||||||
continue
|
continue
|
||||||
tx_info = await self.daemon_request('getrawtransaction', tx_hash, True)
|
tx_hash_bytes = bytes.fromhex(tx_hash)[::-1]
|
||||||
raw_tx = tx_info['hex']
|
mempool_tx = self.mempool.txs.get(tx_hash_bytes, None)
|
||||||
block_hash = tx_info.get('blockhash')
|
if mempool_tx:
|
||||||
|
raw_tx, block_hash = mempool_tx.raw_tx.hex(), None
|
||||||
|
else:
|
||||||
|
tx_info = await self.daemon_request('getrawtransaction', tx_hash, True)
|
||||||
|
raw_tx = tx_info['hex']
|
||||||
|
block_hash = tx_info.get('blockhash')
|
||||||
if block_hash:
|
if block_hash:
|
||||||
block = await self.daemon.deserialised_block(block_hash)
|
block = await self.daemon.deserialised_block(block_hash)
|
||||||
height = block['height']
|
height = block['height']
|
||||||
|
|
Loading…
Reference in a new issue