Opened 9 years ago

Last modified 6 years ago

#2461 new Enhancement

Add TEX support (BEP #28)

Reported by: tiennou Owned by: charles
Priority: Normal Milestone: None Set
Component: libtransmission Version: 1.75
Severity: Normal Keywords: bep patch-needed
Cc: chantra@…, amontero@…

Description

It would be nice to have Transmission manage each torrent tracker list automatically.

See http://www.bittorrent.org/beps/bep_0028.html for implementation guidelines.

Change History (10)

comment:1 Changed 9 years ago by tiennou

A quick implementation sketch is available here http://github.com/tiennou/transmission/tree/bep28-tex, which only handle parsing/writing the LTEP handshake (mainly copy/paste from PEX).

In fact, it relies on :

  • getting the flat tracker list for a given torrent to compute its hash for the handshake code to be complete,
  • adding a date_added flag to each tracker's struct, s.t we can send the TEX message with new trackers.

comment:2 Changed 9 years ago by jch

I don't think this extension make much sense until we implement support for magnet links, as described in #2096.

comment:3 follow-up: Changed 9 years ago by tiennou

IMHO this extension is orthogonal to BEP9, since it has nothing to do with the DHT. It's just a way for peers to share tracker urls (like PEX does for peers). I think it helps in keeping a swarm strong, since a user that manually add trackers to a torrent will allow its client to propagate the new tracker along the swarm, preventing us from manually adding things in the first place ;-).

Quick note so that it's recorded somewhere: I've asked on #bittorrent about TEX state, libtorrent (Rasterbar) has already implemented it. Also, while the spec does not state anything about it, I'm pretty sure TEX should be disabled for private torrents.

comment:4 in reply to: ↑ 3 Changed 9 years ago by jch

Replying to tiennou:

IMHO this extension is orthogonal to BEP9, since it has nothing to do with the DHT. It's just a way for peers to share tracker urls (like PEX does for peers).

It is orthogonal to BEP9, but it is most useful in combination with BEP9, since it allows obtaining a list of trackers for a torrent obtained from a magnet:btih: link.

Not objecting to implementing BEP28, just mentioning that it might make more sense to work on BEP9 first.

comment:5 Changed 9 years ago by tiennou

Agreed, but I would see it the other way around, given BEP9 is *a lot* harder to do ;-). I've just tried, and it requires copious amount of changes from tr_ctor down to peer-msgs (mainly to allow Transmission to handle the creation of a tr_torrent whose only the info_hash is known). It can be done, though, so that's not out of the question. But BEP9 would benefit more from this one than the other way around.

comment:6 Changed 8 years ago by chantra

  • Cc chantra@… added

Looks like this one could be a candidate now that ticket #2096 is solved.

comment:7 follow-up: Changed 7 years ago by jordan

Which clients support TEX?

comment:8 in reply to: ↑ 7 Changed 7 years ago by bseos

Replying to jordan:

Which clients support TEX?

qBittorrent
SoMud?
uTorrent

Last edited 7 years ago by bseos (previous) (diff)

comment:9 Changed 7 years ago by jordan

Thanks bseos :)

comment:10 Changed 6 years ago by amontero

  • Cc amontero@… added
Note: See TracTickets for help on using tickets.