Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GossipSub 1.2] Allow sending IDONTWANTs when publishing #642

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jxs
Copy link
Member

@jxs jxs commented Nov 13, 2024

With the introduction of getBlobsV1 for the Cancun upgrade in the Ethereum network, nodes may publish blobs (messages) retrieved from the Execution Layer without receiving them through Gossipsub. In such cases, a node already has the blobs and can conserve download bandwidth by sending out IDONTWANT messages to peers for the blobs it publishes. This prevents the node from receiving the same blobs again through gossip.
This PR aims to clarify the behavior at the specification level.
See more here

Thanks!

Copy link
Contributor

@vyzo vyzo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds reasonable, whats the implementation status?

@jxs
Copy link
Member Author

jxs commented Nov 13, 2024

Hi Vyzo, on our case it's implemented and merged soon to be released, on other implementations I don't know.
CC @ppopth @nisdas @Nashatyrev @StefanBratanov @arnetheduck

@vyzo
Copy link
Contributor

vyzo commented Nov 13, 2024

ok, lets wait a little for the other implementations to catch up and we merge it

@Nashatyrev
Copy link
Contributor

Implemented in JVM-libp2p here: libp2p/jvm-libp2p#386

@nisdas
Copy link

nisdas commented Nov 19, 2024

@ppopth can confirm, but we should already be doing this in the go-implementation when publishing

@ppopth
Copy link
Contributor

ppopth commented Nov 26, 2024

@ppopth can confirm, but we should already be doing this in the go-implementation when publishing

No, go-libp2p-pubsub is not doing this now. It has to be implemented.

@@ -56,6 +56,7 @@ This section lists the configuration parameters that needs to agreed on across c
When the peer receives the first message instance it immediately broadcasts
(not queue for later piggybacking) `IDONTWANT` with the `messageId` to all its mesh peers.
This could be performed prior to the message validation to further increase the effectiveness of the approach.
Additionally, on networks where multiple messages share the same messageId, a user may choose to broadcast IDONTWANT when publishing.
Copy link
Contributor

@ppopth ppopth Nov 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's good to note that the publisher still shouldn't publish the message to the peers that previously sent an IDONTWANT to the publisher.

It's trivial to know this but I'm afraid that some implementers will forget this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Triage
Development

Successfully merging this pull request may close these issues.

5 participants