This commit is contained in:
Jack Robison 2021-07-14 13:39:06 -04:00 committed by Victor Shyba
parent f73153ed8d
commit babb76d90d
4 changed files with 28 additions and 31 deletions

View file

@ -430,7 +430,7 @@ class BlockProcessor:
if signing_channel: if signing_channel:
raw_channel_tx = self.db.db.get( raw_channel_tx = self.db.db.get(
DB_PREFIXES.TX_PREFIX.value + self.db.total_transactions[signing_channel.tx_num] DB_PREFIXES.tx.value + self.db.total_transactions[signing_channel.tx_num]
) )
channel_pub_key_bytes = None channel_pub_key_bytes = None
try: try:

View file

@ -24,18 +24,15 @@ class DB_PREFIXES(enum.Enum):
repost = b'V' repost = b'V'
reposted_claim = b'W' reposted_claim = b'W'
undo_claimtrie = b'M' undo = b'M'
HISTORY_PREFIX = b'A' tx = b'B'
TX_PREFIX = b'B' block_hash = b'C'
BLOCK_HASH_PREFIX = b'C' header = b'H'
HEADER_PREFIX = b'H' tx_num = b'N'
TX_NUM_PREFIX = b'N' tx_count = b'T'
TX_COUNT_PREFIX = b'T' tx_hash = b'X'
UNDO_PREFIX = b'U' utxo = b'u'
TX_HASH_PREFIX = b'X' hashx_utxo = b'h'
hashx_history = b'x'
HASHX_UTXO_PREFIX = b'h'
db_state = b's' db_state = b's'
UTXO_PREFIX = b'u'
HASHX_HISTORY_PREFIX = b'x'

View file

@ -938,7 +938,7 @@ class RepostedPrefixRow(PrefixRow):
class UndoPrefixRow(PrefixRow): class UndoPrefixRow(PrefixRow):
prefix = DB_PREFIXES.undo_claimtrie.value prefix = DB_PREFIXES.undo.value
key_struct = struct.Struct(b'>Q') key_struct = struct.Struct(b'>Q')
@classmethod @classmethod
@ -965,7 +965,7 @@ class UndoPrefixRow(PrefixRow):
class BlockHashPrefixRow(PrefixRow): class BlockHashPrefixRow(PrefixRow):
prefix = DB_PREFIXES.BLOCK_HASH_PREFIX.value prefix = DB_PREFIXES.block_hash.value
key_struct = struct.Struct(b'>L') key_struct = struct.Struct(b'>L')
value_struct = struct.Struct(b'>32s') value_struct = struct.Struct(b'>32s')
@ -991,7 +991,7 @@ class BlockHashPrefixRow(PrefixRow):
class BlockHeaderPrefixRow(PrefixRow): class BlockHeaderPrefixRow(PrefixRow):
prefix = DB_PREFIXES.HEADER_PREFIX.value prefix = DB_PREFIXES.header.value
key_struct = struct.Struct(b'>L') key_struct = struct.Struct(b'>L')
value_struct = struct.Struct(b'>112s') value_struct = struct.Struct(b'>112s')
@ -1017,7 +1017,7 @@ class BlockHeaderPrefixRow(PrefixRow):
class TXNumPrefixRow(PrefixRow): class TXNumPrefixRow(PrefixRow):
prefix = DB_PREFIXES.TX_NUM_PREFIX.value prefix = DB_PREFIXES.tx_num.value
key_struct = struct.Struct(b'>32s') key_struct = struct.Struct(b'>32s')
value_struct = struct.Struct(b'>L') value_struct = struct.Struct(b'>L')
@ -1043,7 +1043,7 @@ class TXNumPrefixRow(PrefixRow):
class TxCountPrefixRow(PrefixRow): class TxCountPrefixRow(PrefixRow):
prefix = DB_PREFIXES.TX_COUNT_PREFIX.value prefix = DB_PREFIXES.tx_count.value
key_struct = struct.Struct(b'>L') key_struct = struct.Struct(b'>L')
value_struct = struct.Struct(b'>L') value_struct = struct.Struct(b'>L')
@ -1069,7 +1069,7 @@ class TxCountPrefixRow(PrefixRow):
class TXHashPrefixRow(PrefixRow): class TXHashPrefixRow(PrefixRow):
prefix = DB_PREFIXES.TX_HASH_PREFIX.value prefix = DB_PREFIXES.tx_hash.value
key_struct = struct.Struct(b'>L') key_struct = struct.Struct(b'>L')
value_struct = struct.Struct(b'>32s') value_struct = struct.Struct(b'>32s')
@ -1095,7 +1095,7 @@ class TXHashPrefixRow(PrefixRow):
class TXPrefixRow(PrefixRow): class TXPrefixRow(PrefixRow):
prefix = DB_PREFIXES.TX_PREFIX.value prefix = DB_PREFIXES.tx.value
key_struct = struct.Struct(b'>32s') key_struct = struct.Struct(b'>32s')
@classmethod @classmethod
@ -1120,7 +1120,7 @@ class TXPrefixRow(PrefixRow):
class UTXOPrefixRow(PrefixRow): class UTXOPrefixRow(PrefixRow):
prefix = DB_PREFIXES.UTXO_PREFIX.value prefix = DB_PREFIXES.utxo.value
key_struct = struct.Struct(b'>11sLH') key_struct = struct.Struct(b'>11sLH')
value_struct = struct.Struct(b'>Q') value_struct = struct.Struct(b'>Q')
@ -1153,7 +1153,7 @@ class UTXOPrefixRow(PrefixRow):
class HashXUTXOPrefixRow(PrefixRow): class HashXUTXOPrefixRow(PrefixRow):
prefix = DB_PREFIXES.HASHX_UTXO_PREFIX.value prefix = DB_PREFIXES.hashx_utxo.value
key_struct = struct.Struct(b'>4sLH') key_struct = struct.Struct(b'>4sLH')
value_struct = struct.Struct(b'>11s') value_struct = struct.Struct(b'>11s')
@ -1186,7 +1186,7 @@ class HashXUTXOPrefixRow(PrefixRow):
class HashXHistoryPrefixRow(PrefixRow): class HashXHistoryPrefixRow(PrefixRow):
prefix = DB_PREFIXES.HASHX_HISTORY_PREFIX.value prefix = DB_PREFIXES.hashx_history.value
key_struct = struct.Struct(b'>11sL') key_struct = struct.Struct(b'>11sL')
key_part_lambdas = [ key_part_lambdas = [

View file

@ -417,7 +417,7 @@ class LevelDB:
for _k, _v in self.db.iterator(prefix=Prefixes.claim_expiration.pack_partial_key(height)): for _k, _v in self.db.iterator(prefix=Prefixes.claim_expiration.pack_partial_key(height)):
k, v = Prefixes.claim_expiration.unpack_item(_k, _v) k, v = Prefixes.claim_expiration.unpack_item(_k, _v)
tx_hash = self.total_transactions[k.tx_num] tx_hash = self.total_transactions[k.tx_num]
tx = self.coin.transaction(self.db.get(DB_PREFIXES.TX_PREFIX.value + tx_hash)) tx = self.coin.transaction(self.db.get(DB_PREFIXES.tx.value + tx_hash))
# treat it like a claim spend so it will delete/abandon properly # treat it like a claim spend so it will delete/abandon properly
# the _spend_claim function this result is fed to expects a txi, so make a mock one # the _spend_claim function this result is fed to expects a txi, so make a mock one
# print(f"\texpired lbry://{v.name} {v.claim_hash.hex()}") # print(f"\texpired lbry://{v.name} {v.claim_hash.hex()}")
@ -443,7 +443,7 @@ class LevelDB:
def get_claim_metadata(self, tx_hash, nout): def get_claim_metadata(self, tx_hash, nout):
raw = self.db.get( raw = self.db.get(
DB_PREFIXES.TX_PREFIX.value + tx_hash DB_PREFIXES.tx.value + tx_hash
) )
try: try:
output = self.coin.transaction(raw).outputs[nout] output = self.coin.transaction(raw).outputs[nout]
@ -493,7 +493,7 @@ class LevelDB:
if reposted_claim: if reposted_claim:
reposted_tx_hash = self.total_transactions[reposted_claim.tx_num] reposted_tx_hash = self.total_transactions[reposted_claim.tx_num]
raw_reposted_claim_tx = self.db.get( raw_reposted_claim_tx = self.db.get(
DB_PREFIXES.TX_PREFIX.value + reposted_tx_hash DB_PREFIXES.tx.value + reposted_tx_hash
) )
try: try:
reposted_claim_txo = self.coin.transaction( reposted_claim_txo = self.coin.transaction(
@ -659,8 +659,8 @@ class LevelDB:
def get_counts(): def get_counts():
return tuple( return tuple(
util.unpack_be_uint64(tx_count) Prefixes.tx_count.unpack_value(packed_tx_count).tx_count
for tx_count in self.db.iterator(prefix=DB_PREFIXES.TX_COUNT_PREFIX.value, include_key=False) for packed_tx_count in self.db.iterator(prefix=Prefixes.tx_count.value, include_key=False)
) )
tx_counts = await asyncio.get_event_loop().run_in_executor(self.executor, get_counts) tx_counts = await asyncio.get_event_loop().run_in_executor(self.executor, get_counts)
@ -675,7 +675,7 @@ class LevelDB:
async def _read_txids(self): async def _read_txids(self):
def get_txids(): def get_txids():
return list(self.db.iterator(prefix=DB_PREFIXES.TX_HASH_PREFIX.value, include_key=False)) return list(self.db.iterator(prefix=Prefixes.tx_hash.prefix, include_key=False))
start = time.perf_counter() start = time.perf_counter()
self.logger.info("loading txids") self.logger.info("loading txids")
@ -694,7 +694,7 @@ class LevelDB:
def get_headers(): def get_headers():
return [ return [
header for header in self.db.iterator(prefix=DB_PREFIXES.HEADER_PREFIX.value, include_key=False) header for header in self.db.iterator(prefix=Prefixes.header.prefix, include_key=False)
] ]
headers = await asyncio.get_event_loop().run_in_executor(self.executor, get_headers) headers = await asyncio.get_event_loop().run_in_executor(self.executor, get_headers)