2022-07-31 05:32:43 +00:00
|
|
|
from typing import Set
|
|
|
|
|
|
|
|
from onionrblocks import Block
|
|
|
|
|
2022-09-27 17:21:00 +00:00
|
|
|
from logger import log as logging
|
2022-07-31 05:32:43 +00:00
|
|
|
|
|
|
|
from .deleteblock import delete_block
|
|
|
|
from .getblocks import get_blocks_after_timestamp
|
|
|
|
|
|
|
|
|
|
|
|
def clean_block_database():
|
|
|
|
"""Delete expired blocks from block db"""
|
|
|
|
remove_set: Set[bytes] = set()
|
|
|
|
block: Block
|
|
|
|
|
|
|
|
for block in get_blocks_after_timestamp(0):
|
|
|
|
try:
|
|
|
|
Block(block.id, block.raw, auto_verify=True)
|
|
|
|
except ValueError: # block expired
|
|
|
|
remove_set.add(block)
|
2022-09-27 17:21:00 +00:00
|
|
|
|
2022-07-31 17:23:01 +00:00
|
|
|
if len(remove_set):
|
2022-09-27 17:21:00 +00:00
|
|
|
logging.info(f"Cleaning {len(remove_set)} blocks")
|
2022-07-31 17:23:01 +00:00
|
|
|
[i for i in map(delete_block, remove_set)]
|