-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
I2P Only Mode #7716
Comments
BiglyBT uses DHT over I2P, so it must be possible. |
This feature does not require DHT, as stated in the issue I2P supports out proxies. I2P DHT is a lot more work that it seems like libtorrent won't support any time soon: #7408 Either way, even if it didn't support outproxies, one of the main reasons I want this is to prevent leaks, which has already happened to me when I thought a torrent was going to go through I2P but didn't. |
libtorrent currently talks to i2p via the SAM protocol. Does this protocol support ways of contacting plain IPs and ports and speak arbitrary protocols? |
To follow this ticket. |
In the browser there's a button labeled "subscribe" on the right On mobile the ... in the top right has a subscribe button |
No, you don't need to do that as @Scripter17 pointed out. |
I think they mean this: Inside I2P there are http (and socks? not sure) proxies (called "outproxies") that allow the user to access regular internet (and maybe something more like Tor The issue creator wants libtorrent to have a mode where the BT client connects to:
Such that all connections go through I2P. So it should be possible if you connect to these proxies through SAM. To the OP, and to any others that may think about using public outproxies, if this gets implemented: Beware that public proxies are a shared resource, you should not overload them. This is something like advice not to torrent through Tor. The case when you might want to do this, is when you have your own outproxy, or the outproxy owner is specifically OK with this. |
What anikey-from-i2p said is correct. I did not reply to the question about SAM as I don't know anything about it other than what it is used for. I2P/i2pd lets you configure outproxies. Since it seems that SAM does not allow to communicate outside I2P (from the asked question), I guess that the connection to the outproxy may need to be done manually. I would assume this is a regular HTTP/SOCKS connection but inside I2P (which you can then use to communicate outside I2P), but I'm not sure. I'm also not sure if theres a way to query which outproxy the user is using, so there may need to be an additional option for that. If SAM does not allow communication outside the network then it is a shame you cannot reuse the already existing proxy connection. I guess there are two acceptable implementations here:
The latter was my original request, but maybe it should be the first one after realizing the difficulty, and also about anikey's comment about not overloading them. There are not too many public outproxies for I2P from my experience. Edit: Maybe the solution to the first one is to use I2P in mixed mode and just configure a socks proxy as the local I2P socks proxy. I think it is good to still have the first as a separate option for the reasons above. |
That's only for HTTP / SOCKS. For other interfaces, such as SAM, the app should do it on its own.
That is not, and should not, be an option. For one thing: the user may configure multiple different HTTP proxies, each with its own outproxy. I think there is also an option to have multiple outproxies and load balance between them. Outproxies are an application-level thing, not a network-level thing. The core of I2P provides users with a way to send packets between two points anonymously. The rest is up to the apps. One of which is the HTTP proxy, which supports setting outproxies.
Does the IP network allow you to send SMS messages to phone numbers? Inherently, no. But some persons may create gateways to send SMS from the Internet. A similar thing with I2P and outproxies to the Internet.
I think that's what the "Mixed mode" option does, but I'm not sure and cannot find documentation of this option.
One can always run a private outproxy, not unsimilar to a personal VPN. Or even paid outproxies, like paid VPN services people use to torrent. (But I don't know of such services as of now).
In any case, an HTTP/SOCKS proxy does not provide you with an option to listen on a port, so you will only be able to initiate outgoing connections. (Kind of like being behind Symmetric NAT). So you won't be able to seed efficiently. The solution might be to run an actual VPN protocol on top of I2P (and make sure that I2P router does not see that VPN otherwise you might get an infinite loop - maybe use linux network namespaces for this, if you run bittorrent and i2p on the same machine). |
My understanding is that:
Either way, in it's current form, connections to clearnet peers will still be made on torrents with clearnet trackers |
maybe check this out = #7461 |
It sounds like the outproxy suggestion doesn't work. Partly because there (probably) aren't enough public outproxies to support torrenting, but primarily because outproxies are for the web, not for arbitrary protocol (like bittorrent). However, having a mode where all torrents are treated as I2P torrents would work. However, it would require support for DHT over I2P in order to find peers. Keep in mind the (clear net) trackers can't be used. |
I don't think DHT is required in this case, because I2P torrents use their own, inside-i2p trackers. They don't use clear net trackers. |
I no longer think the outproxy suggestion should be implemented, although I don't understand what you mean by "primarily because outproxies are for the web". i2pd (and I think the official java router too) supports SOCKS outproxies, not just HTTP. But anyway, it doesn't matter.
??? Why? It's not like clearnet DHT is being used to find I2P peers, I don't see why I2P DHT is required and why I2P trackers can't be used in this case. |
Consider the case of a normal torrent, no i2p tracker. If you want to download it over the i2p network you need peers. Where do you find peers without DHT over i2p? |
On I2P trackers. Just add an open tracker (the most popular one is probably opentracker.dg2.i2p) (or multiple) and hope that the other I2P peers chose the same tracker. That's kind of how cross-seeding works - make a clearnet torrent available on I2P by just adding it to a tracker. Maybe also some special pseudo-tracker software can be made that just proxies it to I2P DHT. (But I've not heard of it, and I'm not sure it is possible.) |
if that's an acceptable approach, there's no need to add any new features to libtorrent. You just need a tool that replaces all trackers with an i2p tracker in |
As I have understood, i2p DHT is a thing. It exists on the default i2psnark client for example. Moreover, the i2p page says "Contact the I2P developers if you wish to develop a client supporting DHT". |
Yes, it is a thing. PEX too. And there are issues for them: DHT: #7408 I interpret that the original thing the author of this issue was requesting, is for libtorrent to support torrenting over I2P outproxy. But maybe that can be done by creating an I2P client tunnel to the outproxy and pointing the regular libtorrent proxy to it. |
@zzzi2p, @anikey-from-i2p, @mpeter50, @Vort, @absolutep, @jiigen, @OvercookedBeef, @ValeZAA, @garret, @absolutep: Can you look this recent @arvidn PR? |
Check this out regarding I2P DHT & I2P PeX BiglyBT supports it since past 5-6 years https://github.com/BiglySoftware/BiglyBT/wiki/I2P |
PEX is in progress as noted above. DHT is a LOT of work. As suggested by another commenter above, recommended workaround is to auto-add http://opentracker.dg2.i2p/a announce to all i2p torrents, that's what i2psnark does even though it has DHT, that gets you 99% of the way there without doing DHT. Edit: Not sure if BiglyBT does that though, or if they have a different default opentracker |
You've pinged me and a bunch of others at least 4 times all at once in different places, why? We already get notifications by replying, you know that because you've replied to this issue "for notifications" (despite their being a button..). I don't see how this relates to I2P only mode at all. I looked through the PR and maybe I missed something but I don't see anything about blocking clearnet connections. I2P PEX is something very nice to have but I don't see how it's relevant to this discussion. Please, explain why you immediately needed all of our attention. |
From qbittorrent/qBittorrent#19913
Suggestion
libtorrent supports I2P, but it currently only uses I2P for torrents with I2P trackers. My suggestion is a mode that uses I2P for every torrent. I2P has outproxy support so it won't just fail on a regular torrent.
Use case
I2P only mode would ensure that no traffic went outside of I2P. This means that people without a VPN can add torrents without worry of leaking, similar to the network interface option.
The text was updated successfully, but these errors were encountered: