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

Support or bridge the I2P network via a plugin in Tribler #6737

Closed
devos50 opened this issue Jan 20, 2022 · 17 comments · Fixed by #8371
Closed

Support or bridge the I2P network via a plugin in Tribler #6737

devos50 opened this issue Jan 20, 2022 · 17 comments · Fixed by #8371
Assignees
Milestone

Comments

@devos50
Copy link
Contributor

devos50 commented Jan 20, 2022

As suggested by a user in a Reddit thread:

I2P network is supported or bridged via a plugin in Tribler.

This bridge will help users of Tribler, as new set of peers from I2P will help in uploading/downloading the torrent. Thereby, bypassing the bottleneck of DHT Blocked calls currently faced by Tribler.

ogb871avggc81

I am thinking on the line of something that can be seen from above image.

@absolutep
Copy link

any update on this?

@absolutep
Copy link

Libtorrent has released new version which supports I2P now = https://github.com/arvidn/libtorrent/releases

Can we have this feature now?

@xoriole
Copy link
Contributor

xoriole commented Jun 5, 2023

@absolutep The support for libtorrent v2 is not yet available on Tribler so will have to wait before we can have this.

@qstokkink qstokkink removed this from the Backlog milestone Aug 23, 2024
@qstokkink qstokkink added this to the 8.1.0 milestone Sep 5, 2024
@qstokkink qstokkink self-assigned this Jan 7, 2025
@teddyrogers
Copy link

@qstokkink with the addition of I2P in Tribler, do we need to install and connect to I2P separately or will it be similar to BiglyBT where it comes included with the installer?

https://github.com/BiglySoftware/BiglyBT/wiki/I2P

@absolutep
Copy link

@qstokkink with the addition of I2P in Tribler, do we need to install and connect to I2P separately or will it be similar to BiglyBT where it comes included with the installer?

https://github.com/BiglySoftware/BiglyBT/wiki/I2P

More importantly, will Tribler support I2P DHT or I2P PeX??

@qstokkink
Copy link
Contributor

install and connect to I2P separately

Currently, we allow connections from peers behind I2P. There is an option to route Tribler to the local I2P client, but we don't use this (I'm not sure if this even makes sense, given our own anonymization).

will Tribler support I2P DHT or I2P PeX?

This is not supported by our underlying library. That means this is a bit more effort than "turn feature on". So, maybe in the future. But, not short term. We would have to first investigate the protocol, see if it fits our implementation, revise our software architecture, etc. etc.

@teddyrogers
Copy link

Currently, we allow connections from peers behind I2P.

Correct me if wrong, Triblers I2P implementation will route I2P traffic over the Tribler network?

There is an option to route Tribler to the local I2P client, but we don't use this (I'm not sure if this even makes sense, given our own anonymization).

I agree, it does not make sense to me. I was going to make the recommendation against if that were to be the implementation.

@qstokkink
Copy link
Contributor

Correct me if wrong, Triblers I2P implementation will route I2P traffic over the Tribler network?

It depends on how you define "over Tribler the network". The nuance is that "traffic over I2P" will go through our network, not "I2P traffic". Assuming you meant the former: yes, correct.

@teddyrogers
Copy link

It depends on how you define "over Tribler the network". The nuance is that "traffic over I2P" will go through our network, not "I2P traffic".

Through the Tribler network is indeed what I meant.

How will I2P work in practice, will we be able to designate the number of Tribler hops, before Tribler connects to an I2P entry node, then traffic is routed over I2P gateway as normal?

@qstokkink
Copy link
Contributor

@teddyrogers That is correct. Your experience should pretty much be the same, except that you might see some I2P peers appearing in the peer list of your downloads.

@teddyrogers
Copy link

@qstokkink good to know!

Some more questions regarding I2P implementation, will we be able to...

  1. ...add and use I2P trackers? E.g. http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a
  2. ...define the number of inbound and outbound I2P tunnels including hops?

@qstokkink
Copy link
Contributor

"No" to (1) and (2): for both of those features, we need to connect to/through a local I2P service, which would be able to set those things.

That also relates to my previous answer. Those features are related to running "I2P traffic", instead of "traffic over I2P".

@teddyrogers
Copy link

teddyrogers commented Jan 27, 2025

@qstokkink how many default I2P inbound and outbound tunnels and hops will Tribler be utilising?

Can we utilise a (socks) connection to connect to I2P http eepsites? While on the subject can this be done in current Tribler network, on 8.0.7?

I know this is a subjective question and answer, what are the I2P speeds like?

@qstokkink
Copy link
Contributor

Tribler is, in the next release (not 8.0.7), able to connect to the edges of the I2P network. It doesn't have "I2P inbound and outbound tunnels and hops". You cannot "connect to I2P http eepsites". For those things, you'll have to actually use I2P instead of Tribler.

what are the I2P speeds like?

From what I read on the libtorrent GitHub, speeds offered by I2P peers are so low that they are usually kicked from the peer list in favor of "vanilla" Bittorrent-protocol peers. So, this functionality will probably only be noticable when you are downloading "rare" torrents and there are no other peers available.

@absolutep
Copy link

will Tribler support I2P DHT or I2P PeX?

This is not supported by our underlying library. That means this is a bit more effort than "turn feature on". So, maybe in the future. But, not short term.

I2P PeX @qstokkink is being tested/implemented right now arvidn/libtorrent#7831

We would have to first investigate the protocol, see if it fits our implementation, revise our software architecture, etc. etc.

Yes, I understand, just attaching it here so that you can revisit or understand or coordinate with libtorrent developer on this if you have any coding related questions, cause of difference in approach of anonymous architecture etc.

Thanks.

@teddyrogers
Copy link

Tribler is, in the next release (not 8.0.7)

Apologies, what I meant was in Tribler network, as it is now in 8.0.7 (not I2P related), would it be possible to use for http requests to access websites?

It doesn't have "I2P inbound and outbound tunnels and hops".

Dumb it down for me, when Tribler is connected to I2P it looks similar to this?

Tribler Client -> Tribler Network -> SAM Bridge -> I2P Network

@qstokkink
Copy link
Contributor

would it be possible to use for http requests to access websites?

Ah, I see: no, this is blocked by Tribler's exit node script (assuming nobody runs a modified exit node script). Only Bittorrent related data passes through, like http tracker requests.

Tribler Client -> Tribler Network -> SAM Bridge -> I2P Network

AFAIK, with the disclaimer that there are a lot of changes being made as we speak (see also @absolutep's most recent comment): we now allow incoming Tribler Client <-> Tribler Network <- I2P Network. If we hook in some additional settings, we could get Tribler Client <-> Tribler Network <-> SAM Bridge <-> I2P Network, but (again see @absolutep's comment) this seems like it doesn't work quite right yet in our underlying library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

5 participants