connector
This commit is contained in:
parent
48d76431f1
commit
8c5ca2ecd8
@ -1,7 +1,6 @@
|
|||||||
from pybtc import int_to_c_int, c_int_to_int, c_int_len
|
from pybtc import int_to_c_int, c_int_to_int, c_int_len
|
||||||
import asyncio
|
import asyncio
|
||||||
from collections import OrderedDict, deque
|
from collections import OrderedDict, deque
|
||||||
from collections import OrderedDict, deque as LRU
|
|
||||||
from pybtc import LRU
|
from pybtc import LRU
|
||||||
|
|
||||||
class UTXO():
|
class UTXO():
|
||||||
@ -12,6 +11,7 @@ class UTXO():
|
|||||||
self.checkpoints = deque()
|
self.checkpoints = deque()
|
||||||
self.log = log
|
self.log = log
|
||||||
self.loaded = OrderedDict()
|
self.loaded = OrderedDict()
|
||||||
|
self.pending_saved = OrderedDict()
|
||||||
self.maturity = 100
|
self.maturity = 100
|
||||||
self.size_limit = cache_size
|
self.size_limit = cache_size
|
||||||
self._db_pool = db_pool
|
self._db_pool = db_pool
|
||||||
@ -68,19 +68,14 @@ class UTXO():
|
|||||||
utxo.add((i[0],b"".join((int_to_c_int(i[1][0]),
|
utxo.add((i[0],b"".join((int_to_c_int(i[1][0]),
|
||||||
int_to_c_int(i[1][1]),
|
int_to_c_int(i[1][1]),
|
||||||
i[1][2]))))
|
i[1][2]))))
|
||||||
|
self.pending_saved[i[0]] = i[1]
|
||||||
if block_changed:
|
if block_changed:
|
||||||
self.cached.append({i[0]: i[1]})
|
self.cached.append({i[0]: i[1]})
|
||||||
if not checkpoint_found:
|
if not checkpoint_found:
|
||||||
for i in reversed(utxo):
|
for i in reversed(self.pending_saved):
|
||||||
d = i[1]
|
self.cached.append({i: self.pending_saved[i]})
|
||||||
pointer = c_int_to_int(d)
|
self.log.critical("checkpoint not found")
|
||||||
f = c_int_len(pointer)
|
return
|
||||||
amount = c_int_to_int(d[f:])
|
|
||||||
f += c_int_len(amount)
|
|
||||||
address = d[f:]
|
|
||||||
self.cached.append({i[0]: (pointer, amount, address)})
|
|
||||||
self.log.critical("checkpoint not found")
|
|
||||||
return
|
|
||||||
self.log.critical("found checkpoint " + str(lb) + " len " + str(len(utxo)) + " cached " + str(len(self.cached)) )
|
self.log.critical("found checkpoint " + str(lb) + " len " + str(len(utxo)) + " cached " + str(len(self.cached)) )
|
||||||
|
|
||||||
# self.log.critical(">" + str(len(self.cached)))
|
# self.log.critical(">" + str(len(self.cached)))
|
||||||
@ -151,9 +146,14 @@ class UTXO():
|
|||||||
self._hit += 1
|
self._hit += 1
|
||||||
return i
|
return i
|
||||||
except:
|
except:
|
||||||
self._failed_requests += 1
|
try:
|
||||||
self.missed.add(key)
|
i = self.pending_saved[key]
|
||||||
return None
|
self._hit += 1
|
||||||
|
return i
|
||||||
|
except:
|
||||||
|
self._failed_requests += 1
|
||||||
|
self.missed.add(key)
|
||||||
|
return None
|
||||||
|
|
||||||
def get_loaded(self, key, block_height):
|
def get_loaded(self, key, block_height):
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user