-
Notifications
You must be signed in to change notification settings - Fork 445
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
IPv8 trackers often respond with an empty wan_introduction_address #5936
Comments
Currently, when we send an introduction request to an IPv8 tracker, the tracker will only respond with a non-empty
Another related issue is that when the IPv8 trackers do return a |
I've noticed this while testing Channels 3.0 prototype. Only one in three attempts to connect two peers in a custom community would work on average. |
Precondition: All of these trackers are should be running the exact same script. If the precondition holds, this is probably due to the flat 2 minute timeout in the tracker scripts. We could increase the timeout if the trackers know only a small amount of peers. However, due to the hardware NAT puncturing timeout, the success rate of IntroductionRequests may then decrease as the firewall/router mappings close. |
@qstokkink Yes, this is why I didn't suggest just increasing the 120s removal time. We only want to gossip peers that the tracker still can connect to. |
@egbertbouman if I read between the lines, it seems to me like concrete suggestion of this issue is then to add a keep-alive message to the bootstrap script (at least when the peer count is low). Is that correct? |
Sounds like a good idea. Seriously. |
@qstokkink That's correct. Although we also need to consider that peers may decide not to respond to an introduction request if the |
Sounds good. Thanks for clarifying 👍 |
This previously mentioned keep-alive mechanism is added in Tribler/py-ipv8#954. Hopefully, this will fix the low number of introduction addresses that we get from trackers. I also made a Jenkins job that gives some information about the |
I extended the Jenkins experiment a bit to show the number of reachable addresses. It turns out that a peer that does 100 bootstrap attempts at a >10s interval typically gets around 10 unique reachable peers from a tracker. |
Could we please document the exact timeout and tracker behaviour in readthedoc? |
@synctext Sure. And I guess we should probably also discuss the basics of introduction-requests/responses and NAT puncturing. I don't think this documented either (or at least not that I can easily find). |
If you want documentation on the original 2011 magic values (120 second timeout etc.) you can reference this paper: Halkes G, Pouwelse J. UDP NAT and Firewall Puncturing in the Wild. InInternational Conference on Research in Networking 2011 May 9 (pp. 1-12). Springer, Berlin, Heidelberg. |
This issue seems to have been fixed along the way by the following PR and resource:
@egbertbouman (since you're assigned) can we close this? |
Sorry for the late response, but yes, I think we can close it. |
No description provided.
The text was updated successfully, but these errors were encountered: