From 5693d860029571651ed1b497a01f56dc9fe6b6d9 Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Fri, 22 May 2026 10:50:45 -0700 Subject: [PATCH 1/2] Ensure we use the right fork when calculating payload attestation sig domain (#9342) Using `state.fork` is a bit sketchy at the fork boundary. It's safer to just use the payload attestations slot Co-Authored-By: Eitan Seri-Levi --- .../src/per_block_processing/signature_sets.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/consensus/state_processing/src/per_block_processing/signature_sets.rs b/consensus/state_processing/src/per_block_processing/signature_sets.rs index 0686c4d605..ef7109dd94 100644 --- a/consensus/state_processing/src/per_block_processing/signature_sets.rs +++ b/consensus/state_processing/src/per_block_processing/signature_sets.rs @@ -378,10 +378,11 @@ where .data .slot .epoch(E::slots_per_epoch()); + let fork = spec.fork_at_epoch(epoch); let domain = spec.get_domain( epoch, Domain::PTCAttester, - &state.fork(), + &fork, state.genesis_validators_root(), ); From 5045e8dd85cdb4fe50e65f9160a72edefaba074d Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Fri, 22 May 2026 10:50:50 -0700 Subject: [PATCH 2/2] Custody backfill sync only penalize peers once per batch (#9340) During custody backfill sync if a peer fails to serve columns for a batch don't penalize them more than once per batch Co-Authored-By: Eitan Seri-Levi --- .../network/src/sync/custody_backfill_sync/mod.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/beacon_node/network/src/sync/custody_backfill_sync/mod.rs b/beacon_node/network/src/sync/custody_backfill_sync/mod.rs index fe4c7dfe4c..c85610613c 100644 --- a/beacon_node/network/src/sync/custody_backfill_sync/mod.rs +++ b/beacon_node/network/src/sync/custody_backfill_sync/mod.rs @@ -593,7 +593,7 @@ impl CustodyBackFillSync { Err(err) => { debug!(batch_epoch = %batch_id, error = ?err, "Batch download failed"); - // If there are any coupling errors, penalize the appropriate peers + // If there are any coupling errors, penalize the appropriate peers. if let RpcResponseError::BlockComponentCouplingError(coupling_error) = err && let CouplingError::DataColumnPeerFailure { error, @@ -601,15 +601,19 @@ impl CustodyBackFillSync { exceeded_retries: _, } = coupling_error { + let mut failed_peers = HashSet::new(); for (column_index, faulty_peer) in faulty_peers { debug!( ?error, ?column_index, ?faulty_peer, - "Custody backfill sync penalizing peer" + "Custody backfill sync: peer failed to serve column" ); + failed_peers.insert(faulty_peer); + } + for peer in failed_peers { network.report_peer( - faulty_peer, + peer, PeerAction::LowToleranceError, "Peer failed to serve column", );