Skip to content

Commit 6a8d13e

Browse files
authored
Send IDONTWANT on publish to avoid downloading data we already have (#6513)
* Send `IDONTWANT` on publish to avoid downloading data we already have. * Merge branch 'unstable' into send-idontwant-on-publish * Move broadcast of `IDONTWANT` to after publishing.
1 parent 9f657b0 commit 6a8d13e

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

beacon_node/lighthouse_network/gossipsub/src/behaviour.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,11 @@ where
776776
return Err(PublishError::AllQueuesFull(recipient_peers.len()));
777777
}
778778

779+
// Broadcast IDONTWANT messages
780+
if raw_message.raw_protobuf_len() > self.config.idontwant_message_size_threshold() {
781+
self.send_idontwant(&raw_message, &msg_id, raw_message.source.as_ref());
782+
}
783+
779784
tracing::debug!(message=%msg_id, "Published message");
780785

781786
if let Some(metrics) = self.metrics.as_mut() {
@@ -1830,7 +1835,7 @@ where
18301835

18311836
// Broadcast IDONTWANT messages
18321837
if raw_message.raw_protobuf_len() > self.config.idontwant_message_size_threshold() {
1833-
self.send_idontwant(&raw_message, &msg_id, propagation_source);
1838+
self.send_idontwant(&raw_message, &msg_id, Some(propagation_source));
18341839
}
18351840

18361841
tracing::debug!(
@@ -2702,7 +2707,7 @@ where
27022707
&mut self,
27032708
message: &RawMessage,
27042709
msg_id: &MessageId,
2705-
propagation_source: &PeerId,
2710+
propagation_source: Option<&PeerId>,
27062711
) {
27072712
let Some(mesh_peers) = self.mesh.get(&message.topic) else {
27082713
return;
@@ -2713,8 +2718,8 @@ where
27132718
let recipient_peers = mesh_peers
27142719
.iter()
27152720
.chain(iwant_peers.iter())
2716-
.filter(|peer_id| {
2717-
*peer_id != propagation_source && Some(*peer_id) != message.source.as_ref()
2721+
.filter(|&peer_id| {
2722+
Some(peer_id) != propagation_source && Some(peer_id) != message.source.as_ref()
27182723
});
27192724

27202725
for peer_id in recipient_peers {

0 commit comments

Comments
 (0)