Description
The IDONTWANT
control signal was recently introduced to instruct peers to suppress the propagation of messages that a node has already received from other sources (or that it is otherwise aware of). This mechanism aims to reduce unnecessary message duplication within the network.
Currently, go-libp2p-pubsub emits IDONTWANT
signals only while processing incoming messages. These signals are dispatched early in the inbound pipeline (specifically, during RPC prevalidation and before messages are handed off to the application). Tests performed in controlled environments by various groups have confirmed measurable reductions in redundant traffic from this new feature.
However, there is an additional opportunity to further decrease superfluous network traffic: sending an IDONTWANT
signal to mesh peers when the app invokes Publish
. In this scenario, the IDONTWANT
would precede the corresponding Publish
RPC (in fact, the Publish
RPC itself may even be discarded if the peer had previously signalled disinterest via an IDONTWANT
).
This optimization is particularly useful in highly synchronized environments, such as the Ethereum network. When a block is produced, CL nodes typically race to source blobs locally (from the EL), construct sidecars, and disseminate them to peers. In 60–70% of cases the required data is already present in the local EL. In these situations, the application issues a Publish
and does not need to receive the same message from its peers, so triggering an IDONTWANT
would correctly signal that.