From ef88d3a9b614961baed72c1b5eacd8aec807a1d1 Mon Sep 17 00:00:00 2001 From: madlabman <10616301+madlabman@users.noreply.github.com> Date: Thu, 4 Sep 2025 21:07:35 +0200 Subject: [PATCH] fix: do not check zero block root --- src/modules/csm/checkpoint.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/modules/csm/checkpoint.py b/src/modules/csm/checkpoint.py index 0fb6573c1..cb1cead01 100644 --- a/src/modules/csm/checkpoint.py +++ b/src/modules/csm/checkpoint.py @@ -177,9 +177,12 @@ def _get_block_roots(self, checkpoint_slot: SlotNumber): pivot_index = checkpoint_slot % SLOTS_PER_HISTORICAL_ROOT # The oldest root can be missing, so we need to check it and mark it as well as other missing slots pivot_block_root = br[pivot_index] - slot_by_pivot_block_root = self.cc.get_block_header(pivot_block_root).data.header.message.slot - calculated_pivot_slot = max(checkpoint_slot - SLOTS_PER_HISTORICAL_ROOT, 0) - is_pivot_missing = slot_by_pivot_block_root != calculated_pivot_slot + if pivot_block_root == ZERO_BLOCK_ROOT: + is_pivot_missing = True + else: + slot_by_pivot_block_root = self.cc.get_block_header(pivot_block_root).data.header.message.slot + calculated_pivot_slot = max(checkpoint_slot - SLOTS_PER_HISTORICAL_ROOT, 0) + is_pivot_missing = slot_by_pivot_block_root != calculated_pivot_slot # Replace duplicated roots with `None` to mark missing slots br = [