Fix some single attestation network plumbing

This commit is contained in:
Eitan Seri-Levi
2025-01-07 19:53:00 +07:00
parent e95f00342b
commit 823ddf5e75
10 changed files with 72 additions and 54 deletions

View File

@@ -549,7 +549,23 @@ impl<T: BeaconChainTypes> NetworkService<T> {
// the attestation, else we just just propagate the Attestation.
let should_process = self.subnet_service.should_process_attestation(
Subnet::Attestation(subnet_id),
attestation,
attestation.data(),
);
self.send_to_router(RouterMessage::PubsubMessage(
id,
source,
message,
should_process,
));
}
PubsubMessage::SingleAttestation(ref subnet_and_attestation) => {
let subnet_id = subnet_and_attestation.0;
let single_attestation = &subnet_and_attestation.1;
// checks if we have an aggregator for the slot. If so, we should process
// the attestation, else we just just propagate the Attestation.
let should_process = self.subnet_service.should_process_attestation(
Subnet::Attestation(subnet_id),
&single_attestation.data,
);
self.send_to_router(RouterMessage::PubsubMessage(
id,

View File

@@ -17,7 +17,7 @@ use lighthouse_network::{discv5::enr::NodeId, NetworkConfig, Subnet, SubnetDisco
use slog::{debug, error, o, warn};
use slot_clock::SlotClock;
use types::{
Attestation, EthSpec, Slot, SubnetId, SyncCommitteeSubscription, SyncSubnetId,
AttestationData, EthSpec, Slot, SubnetId, SyncCommitteeSubscription, SyncSubnetId,
ValidatorSubscription,
};
@@ -363,7 +363,7 @@ impl<T: BeaconChainTypes> SubnetService<T> {
pub fn should_process_attestation(
&self,
subnet: Subnet,
attestation: &Attestation<T::EthSpec>,
attestation_data: &AttestationData,
) -> bool {
// Proposer-only mode does not need to process attestations
if self.proposer_only {
@@ -374,7 +374,7 @@ impl<T: BeaconChainTypes> SubnetService<T> {
.map(|tracked_vals| {
tracked_vals.contains_key(&ExactSubnet {
subnet,
slot: attestation.data().slot,
slot: attestation_data.slot,
})
})
.unwrap_or(true)