From ec111259c1e02a45f5f2b25a8a019acf211bde2a Mon Sep 17 00:00:00 2001 From: hopinheimer Date: Sat, 18 Apr 2026 01:13:00 -0400 Subject: [PATCH] adding `PayloadAttestationMessage` to `RejectedPayloadAttestation` --- .../src/payload_attestation_verification.rs | 2 ++ .../gossip_methods.rs | 23 ++++++++++--------- .../src/network_beacon_processor/mod.rs | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/beacon_node/beacon_chain/src/payload_attestation_verification.rs b/beacon_node/beacon_chain/src/payload_attestation_verification.rs index 308a9c7cae..1ee6ae149a 100644 --- a/beacon_node/beacon_chain/src/payload_attestation_verification.rs +++ b/beacon_node/beacon_chain/src/payload_attestation_verification.rs @@ -218,6 +218,8 @@ impl VerifiedPayloadAttestationMessage { payload_attestation_message: PayloadAttestationMessage, chain: &BeaconChain, ) -> Result { + // TODO(manas): i think we can have a shuffling cache. but this an interim solution + // can be discussed. let head_snapshot = chain.head_snapshot(); let head_state = &head_snapshot.beacon_state; diff --git a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs b/beacon_node/network/src/network_beacon_processor/gossip_methods.rs index 9387a4df3f..edeb191bb6 100644 --- a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs +++ b/beacon_node/network/src/network_beacon_processor/gossip_methods.rs @@ -134,8 +134,8 @@ struct RejectedAggregate { } struct RejectedPayloadAttestation { + payload_attestation_message: Box, error: PayloadAttestationError, - message_slot: Slot, } /// Data for an aggregated or unaggregated attestation that failed verification. @@ -3669,17 +3669,18 @@ impl NetworkBeaconProcessor { self: &Arc, message_id: MessageId, peer_id: PeerId, - payload_attestation_message: PayloadAttestationMessage, + payload_attestation_message: Box, ) { - let message_slot = payload_attestation_message.data.slot; - - let result = self + let result = match self .chain - .verify_payload_attestation_message_for_gossip(payload_attestation_message) - .map_err(|error| RejectedPayloadAttestation { + .verify_payload_attestation_message_for_gossip(*payload_attestation_message.clone()) + { + Ok(verified) => Ok(verified), + Err(error) => Err(RejectedPayloadAttestation { + payload_attestation_message: payload_attestation_message.clone(), error, - message_slot, - }); + }), + }; self.process_gossip_payload_attestation_result(result, message_id, peer_id); } @@ -3717,14 +3718,14 @@ impl NetworkBeaconProcessor { } } Err(RejectedPayloadAttestation { + payload_attestation_message, error, - message_slot, }) => { self.handle_payload_attestation_verification_failure( peer_id, message_id, error, - message_slot, + payload_attestation_message.data.slot, ); } } diff --git a/beacon_node/network/src/network_beacon_processor/mod.rs b/beacon_node/network/src/network_beacon_processor/mod.rs index 2b354aaa20..a2f030a0fc 100644 --- a/beacon_node/network/src/network_beacon_processor/mod.rs +++ b/beacon_node/network/src/network_beacon_processor/mod.rs @@ -485,7 +485,7 @@ impl NetworkBeaconProcessor { processor.process_gossip_payload_attestation( message_id, peer_id, - *payload_attestation_message, + payload_attestation_message, ) };