connector
This commit is contained in:
parent
8ea3a02a29
commit
709a785a42
@ -751,53 +751,57 @@ class UTXO():
|
|||||||
c = len(self.cached) - self._cache_size
|
c = len(self.cached) - self._cache_size
|
||||||
if block_height > 0 and not self.save_process and c > 0:
|
if block_height > 0 and not self.save_process and c > 0:
|
||||||
try:
|
try:
|
||||||
|
self.save_process = True
|
||||||
lb = 0
|
lb = 0
|
||||||
|
ln, rs = set(), set()
|
||||||
|
r = set()
|
||||||
|
db = set()
|
||||||
for key in iter(self.cached):
|
for key in iter(self.cached):
|
||||||
i = self.cached[key]
|
i = self.cached[key]
|
||||||
if (c>0 or lb == i[0] >> 42) and (i[0] >> 42) < block_height:
|
if (c>0 or lb == i[0] >> 42) and (i[0] >> 42) < block_height:
|
||||||
c -= 1
|
c -= 1
|
||||||
continue
|
continue
|
||||||
break
|
break
|
||||||
self.save_process = True
|
if lb:
|
||||||
for key in self.destroyed:
|
|
||||||
if key < lb:
|
for key in self.destroyed:
|
||||||
n = set()
|
if key < lb:
|
||||||
for outpoint in self.destroyed[key]:
|
n = set()
|
||||||
try:
|
for outpoint in self.destroyed[key]:
|
||||||
del self.cached[outpoint]
|
|
||||||
self.destroyed_utxo += 1
|
|
||||||
except:
|
|
||||||
try:
|
try:
|
||||||
del self.loaded[outpoint]
|
del self.cached[outpoint]
|
||||||
n.add(outpoint)
|
self.destroyed_utxo += 1
|
||||||
except:
|
except:
|
||||||
pass
|
try:
|
||||||
self.destroyed[key] = n
|
del self.loaded[outpoint]
|
||||||
self.log.critical(str(key))
|
n.add(outpoint)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
self.destroyed[key] = n
|
||||||
|
self.log.critical(str(key))
|
||||||
|
|
||||||
|
|
||||||
ln, rs = set(), set()
|
|
||||||
for key in iter(self.cached):
|
|
||||||
i = self.cached[key]
|
|
||||||
if i[0] >> 42 <= lb:
|
|
||||||
rs.add((key,b"".join((int_to_c_int(i[0]),
|
|
||||||
int_to_c_int(i[1]),
|
|
||||||
i[2]))))
|
|
||||||
ln.add(key)
|
|
||||||
lb = i[0] >> 42
|
|
||||||
c -= 1
|
|
||||||
continue
|
|
||||||
break
|
|
||||||
# if not lb:
|
|
||||||
# await asyncio.sleep(0)
|
|
||||||
# return
|
|
||||||
|
|
||||||
r = set()
|
for key in iter(self.cached):
|
||||||
db = set()
|
i = self.cached[key]
|
||||||
for key in iter(self.destroyed):
|
if i[0] >> 42 <= lb:
|
||||||
if key <= lb and key < block_height:
|
rs.add((key,b"".join((int_to_c_int(i[0]),
|
||||||
db.add(key)
|
int_to_c_int(i[1]),
|
||||||
[r.add(i) for i in self.destroyed[key]]
|
i[2]))))
|
||||||
|
ln.add(key)
|
||||||
|
lb = i[0] >> 42
|
||||||
|
c -= 1
|
||||||
|
continue
|
||||||
|
break
|
||||||
|
# if not lb:
|
||||||
|
# await asyncio.sleep(0)
|
||||||
|
# return
|
||||||
|
|
||||||
|
|
||||||
|
for key in iter(self.destroyed):
|
||||||
|
if key <= lb and key < block_height:
|
||||||
|
db.add(key)
|
||||||
|
[r.add(i) for i in self.destroyed[key]]
|
||||||
|
|
||||||
# insert to db
|
# insert to db
|
||||||
async with self._db_pool.acquire() as conn:
|
async with self._db_pool.acquire() as conn:
|
||||||
@ -814,16 +818,17 @@ class UTXO():
|
|||||||
"WHERE name = 'last_cached_block';", block_height)
|
"WHERE name = 'last_cached_block';", block_height)
|
||||||
self.saved_utxo += len(rs)
|
self.saved_utxo += len(rs)
|
||||||
self.deleted_utxo += len(r)
|
self.deleted_utxo += len(r)
|
||||||
# remove from cache
|
|
||||||
for key in ln:
|
|
||||||
try:
|
|
||||||
self.cached.pop(key)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
for key in self.destroyed:
|
|
||||||
if not self.destroyed[key]:
|
|
||||||
self.destroyed.pop(key)
|
|
||||||
if lb:
|
if lb:
|
||||||
|
# remove from cache
|
||||||
|
for key in ln:
|
||||||
|
try:
|
||||||
|
self.cached.pop(key)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
for key in self.destroyed:
|
||||||
|
if not self.destroyed[key]:
|
||||||
|
self.destroyed.pop(key)
|
||||||
self.last_saved_block = lb
|
self.last_saved_block = lb
|
||||||
finally:
|
finally:
|
||||||
self.save_process = False
|
self.save_process = False
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user