Closed Menduist closed 2 years ago
@vyzo can you take a look here?
@AgeManning @divagant-martian thoughts on this as the Rust Gossipsub experts?
Yep. This lgtm. We'll make a PR for rust gossipsub.
For the record, this is now implemented in rust-libp2p via https://github.com/libp2p/rust-libp2p/pull/2403 thanks to @divagant-martian.
LGTM, but can we hold on merging until we have implementation for go and rust?
@vyzo could you tackle the Golang side?
I'll try to make some time for this. Any takers?
@vyzo friendly ping. I don't think anyone else from the Go side picked this up in the meantime.
As far as I can tell, this issue has been addressed in https://github.com/libp2p/go-libp2p-pubsub/pull/473.
Doesn't look like it, the goal of this spec is to have a tunable, different backoff when unsubscribing from a topic The PR you linked reuse the same backoff setting as a regular prune AFAICT
ok, will make this configurable.
@vyzo if you haven't started already I can take. Seems pretty straightforward.
Sure, go ahead!
This is now implemented in Rust, Nim, and Go. I think we can merge this. Thanks all!
In eth2, you can't really be sure at which point you will have to subscribe from a topic. So you when unsubscribe, you may have to resubscribe in the next 60 seconds
This causes a clash with the backoff, since every peer you had in your mesh when you unsubbed is now in your backoff, and forming an healthy mesh becomes tricky.
This is a bit of a corner case, but adding a setting to tune to unsub backoff really helps with this case, and doesn't cost anything, since if you stay out of the topic, you shouldn't get GRAFTed anyway.
We implemented it in nim-libp2p: https://github.com/status-im/nim-libp2p/pull/665 which drastically improved mesh health on our busy test nodes (2500 validators, which in eth2 term is stupidly big, but that's where the issue is most visible) (each validator causes some sub/unsub):