From e9d84f0a0748a598af6bbddbed88ed75463cc72c Mon Sep 17 00:00:00 2001 From: kompotkot Date: Tue, 21 Sep 2021 14:06:21 +0000 Subject: [PATCH 1/2] Option to run block sync from current block at Ethereum --- crawlers/mooncrawl/mooncrawl/ethcrawler.py | 38 +++++++++++++++------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/crawlers/mooncrawl/mooncrawl/ethcrawler.py b/crawlers/mooncrawl/mooncrawl/ethcrawler.py index 6728e912..5b485e17 100644 --- a/crawlers/mooncrawl/mooncrawl/ethcrawler.py +++ b/crawlers/mooncrawl/mooncrawl/ethcrawler.py @@ -88,21 +88,36 @@ def ethcrawler_blocks_sync_handler(args: argparse.Namespace) -> None: """ Synchronize latest Ethereum blocks with database. """ - starting_block: int = args.start while True: - bottom_block_number, top_block_number = get_latest_blocks(args.confirmations) - if bottom_block_number is None: - bottom_block_number = 0 - bottom_block_number = max(bottom_block_number + 1, starting_block) - if bottom_block_number >= top_block_number: + latest_stored_block_number, latest_block_number = get_latest_blocks( + args.confirmations + ) + 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: + print( + 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: print( - f"Synchronization is unnecessary for blocks {bottom_block_number}-{top_block_number - 1}" + f"Synchronization is unnecessary for blocks {latest_stored_block_number}-{latest_block_number - 1}" ) time.sleep(5) continue for blocks_numbers_list in yield_blocks_numbers_lists( - f"{bottom_block_number}-{top_block_number}", + f"{bottom_block_number}-{latest_block_number}", order=args.order, ): print(f"Adding blocks {blocks_numbers_list[-1]}-{blocks_numbers_list[0]}") @@ -112,7 +127,9 @@ def ethcrawler_blocks_sync_handler(args: argparse.Namespace) -> None: with_transactions=not args.notransactions, num_processes=args.jobs, ) - print(f"Synchronized blocks from {bottom_block_number} to {top_block_number}") + print( + f"Synchronized blocks from {latest_stored_block_number} to {latest_block_number}" + ) def ethcrawler_blocks_add_handler(args: argparse.Namespace) -> None: @@ -243,8 +260,7 @@ def main() -> None: "-s", "--start", type=int, - default=0, - help="(Optional) Block to start synchronization from. Default: 0", + help="(Optional) Block to start synchronization from. Default: None - current Ethereum block minus confirmations ", ) parser_ethcrawler_blocks_sync.add_argument( "-c", From c3cc51e2e0f16ec4be7e77d099d50658e7285fe1 Mon Sep 17 00:00:00 2001 From: kompotkot Date: Tue, 21 Sep 2021 16:02:40 +0000 Subject: [PATCH 2/2] Block sync now in ProcessingOrder.ASCENDING by default --- crawlers/mooncrawl/mooncrawl/ethcrawler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crawlers/mooncrawl/mooncrawl/ethcrawler.py b/crawlers/mooncrawl/mooncrawl/ethcrawler.py index 5b485e17..a030a949 100644 --- a/crawlers/mooncrawl/mooncrawl/ethcrawler.py +++ b/crawlers/mooncrawl/mooncrawl/ethcrawler.py @@ -272,8 +272,8 @@ def main() -> None: parser_ethcrawler_blocks_sync.add_argument( "--order", type=processing_order, - default=ProcessingOrder.DESCENDING, - help="Order in which to process blocks (choices: desc, asc; default: desc)", + default=ProcessingOrder.ASCENDING, + help="Order in which to process blocks (choices: desc, asc; default: asc)", ) parser_ethcrawler_blocks_sync.add_argument( "-j",