fix(swarm): don't emit NewExternalAddrCandidate on clients#4886
fix(swarm): don't emit NewExternalAddrCandidate on clients#4886nazar-pc wants to merge 5 commits intolibp2p:masterfrom
NewExternalAddrCandidate on clients#4886Conversation
da4e971 to
a0022d4
Compare
thomaseizinger
left a comment
There was a problem hiding this comment.
Thanks! This makes sense. I've left two comments.
…e are no listeners
a0022d4 to
8659c50
Compare
NewExternalAddrCandidate events if there are no listenersNewExternalAddrCandidate if there are no listeners
NewExternalAddrCandidate if there are no listenersNewExternalAddrCandidate if there are no listeners
NewExternalAddrCandidate if there are no listenersNewExternalAddrCandidate on clients
|
@nazar-pc It seems there is a test-failure in |
|
This pull request has merge conflicts. Could you please resolve them @nazar-pc? 🙏 |
|
@nazar-pc can you resolve the merge conflicts? |
Approvals have been dismissed because the PR was updated after the send-it label was applied.
|
This pull request has merge conflicts. Could you please resolve them @nazar-pc? 🙏 |
|
|
|
@thomaseizinger Stalled PR here. |
The test is failing because We will need to make |
Description
Nodes without active listen addresses (aka "clients") still produce external address candidates via protocols such as identify through the observed address. Those are however guaranteed to be useless as not having any listeners means no other node can reach us.
Notes & open questions
There are a few more issues that this PR didn't fix (UDP: I now see that transports take care of this in their translation implementation):
This PR could be potentially incorrect in case there are protocols where it is possible to have observed address without listener addresses, but I am not aware of such protocols and it would still be possible to work around that with user-level code.
Change checklist