From 84679b1c071f415b88bcd7120fe2a041eb57d0ca Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Wed, 25 Mar 2026 18:22:28 -0500 Subject: [PATCH] Remove redundant invalid-node check from filter_block_tree The children filter already skips invalid nodes, so a valid parent whose only children are invalid becomes a leaf and gets rejected by node_is_viable_for_head. The top-level check was redundant. --- consensus/proto_array/src/proto_array.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/consensus/proto_array/src/proto_array.rs b/consensus/proto_array/src/proto_array.rs index 8ae8d20234..1731a79afb 100644 --- a/consensus/proto_array/src/proto_array.rs +++ b/consensus/proto_array/src/proto_array.rs @@ -1217,14 +1217,7 @@ impl ProtoArray { return false; }; - // Nodes with invalid execution payloads are never viable. - // (The spec doesn't need this check because invalid blocks aren't in store.blocks.) - if node - .execution_status() - .is_ok_and(|status| status.is_invalid()) - { - return false; - } + // Skip invalid children — they aren't in store.blocks in the spec. let children: Vec = self