Tribler / gumby

Experiment runner framework for IPv8 and Tribler
11 stars 36 forks source link

Gumby should support a custom LibTorrent tracker #285

Open qstokkink opened 7 years ago

qstokkink commented 7 years ago

To allow for experiments to use full-fledged LibTorrent, a functional LibTorrent tracker is required. This should probably be implemented like the Dispersy tracker, using a twistd service (see run_tracker.sh) on the sync node.

Implementation details of the libtorrent udp tracker api can be found here.

devos50 commented 3 years ago

Is this still something we would like to have?

qstokkink commented 3 years ago

Ideally, yes. Currently we have no choice but to use the wild Internet (slower and more prone to unexpected interference).

synctext commented 2 years ago

@qstokkink and @devos50 .. Would a handy ToDo be?

devos50 commented 2 years ago

@synctext twisted has been removed from Tribler a long time ago, and has been superseded by asyncio. I would avoid using specialised "services" and use Gumby modules instead (e.g., a UDPTorrentTrackerModule or HTTPTorrentTrackerModule).

Note that we are already have code to setup UDP and HTTP torrent trackers in Tribler, see here. This code is part of our unit testing framework and can easily be ported to Gumby since it does not require additional dependencies. It might even be possible to directly import the tracker code from Gumby, without duplicating the tracker logic in the Gumby codebase (although that would not be a very clean solution).

Also, Tribler support in Gumby is still broken unfortunately. @kozlovsky is currently working on this.

devos50 commented 2 years ago

Even though we have code for HTTP torrent trackers, this code seems to be very basic and does not follow the HTTP torrent tracker standards. For example, it does not register peers that are announcing their torrent download. I found this because I require a torrent tracker in one of my ongoing experiments.