From 59ad2731ba1b8362a359d0809269b526d8665a61 Mon Sep 17 00:00:00 2001 From: Kevin F Date: Mon, 16 Jan 2023 23:31:30 -0600 Subject: [PATCH] Disconnect peers who stem a bad block --- src/gossip/server/acceptstem.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/gossip/server/acceptstem.py b/src/gossip/server/acceptstem.py index 4d50386d..cf2e7158 100644 --- a/src/gossip/server/acceptstem.py +++ b/src/gossip/server/acceptstem.py @@ -1,3 +1,4 @@ +import traceback from typing import TYPE_CHECKING from typing import List import secrets @@ -61,10 +62,18 @@ async def accept_stem_blocks( if not raw_block: break + try: + bl = Block(block_id, raw_block, auto_verify=True) + except Exception as e: + logging.warn( + f"Error in received stem block {block_id} {str(e)}") + logging.debug(traceback.format_exc()) + break + + logging.debug("Got a stem block, put into queue") - block_queue_to_use.put( - Block(block_id, raw_block, auto_verify=True) - ) + + block_queue_to_use.put(bl) # Regardless of stem phase, we add to queue # Client will decide if they are to be stemmed