Merge pull request #319 from bugout-dev/fix-sync

Fix sync blocks logic
pull/320/head
Sergei Sumarokov 2021-10-15 12:41:01 +03:00 zatwierdzone przez GitHub
commit cf70e2f8e9
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 19 dodań i 14 usunięć

Wyświetl plik

@ -98,20 +98,6 @@ def ethcrawler_blocks_sync_handler(args: argparse.Namespace) -> None:
if latest_stored_block_number is None:
latest_stored_block_number = 0
block_number_difference = latest_block_number - 1 - latest_stored_block_number
if args.start is None:
if block_number_difference < args.confirmations:
logger.info(
f"Synchronization is unnecessary for blocks {latest_stored_block_number}-{latest_block_number - 1}"
)
time.sleep(5)
continue
else:
bottom_block_number = latest_block_number - args.confirmations
else:
bottom_block_number = max(latest_stored_block_number + 1, args.start)
if latest_stored_block_number >= latest_block_number:
logger.info(
f"Synchronization is unnecessary for blocks {latest_stored_block_number}-{latest_block_number - 1}"
@ -119,6 +105,25 @@ def ethcrawler_blocks_sync_handler(args: argparse.Namespace) -> None:
time.sleep(5)
continue
block_number_difference = latest_block_number - 1 - latest_stored_block_number
if block_number_difference >= 70:
logger.warning(
f"Block difference is too large: {block_number_difference}, crawling {args.confirmations + 1} latest blocks"
)
bottom_block_number = latest_block_number - args.confirmations - 1
else:
if args.start is None:
if block_number_difference < args.confirmations:
logger.info(
f"Synchronization is unnecessary for blocks {latest_stored_block_number}-{latest_block_number - 1}"
)
time.sleep(5)
continue
else:
bottom_block_number = latest_stored_block_number + 1
else:
bottom_block_number = max(latest_stored_block_number + 1, args.start)
for blocks_numbers_list in yield_blocks_numbers_lists(
f"{bottom_block_number}-{latest_block_number}",
order=args.order,