-
Notifications
You must be signed in to change notification settings - Fork 30
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
Private tracker support #5
Comments
There's also this definition here: http://www.bittorrent.org/beps/bep_0027.html#bep-12 Examples of announce URLs: http://tracker.what.cd:34000/igmax2lw0vabtj0y9w8box2tvxwj4fws/announce (keys have been obfuscated for anonymity). I don't believe the private key needs to actually be in the announce URL at all, but it makes it easier for users to tell what private key a torrent is using, as those are not normally exposed to the user directly. (I've seen a couple of "private" torrents that do NOT have the private key in the URL, but do use private keys).
Here's the relevant config stuff from Ocelot (an excellent but restrictively licensed tracker): config::config() {
} I'll try to get a dump of the DB schema it uses. I'm fairly certain it gets around the DB performance hit by basically caching MySQL queries in memory - allowing the flexibility of a DB but without as much performance overhead. It flushes the caches every X seconds (schedule_interval?). It largely follows the DB format XBTT uses, but with some neat variations. I used MySQL logs to gather some info on how it works - these are in no particular order but give you some idea of how it might be implemented. Grab list of users allowed to leech: Reset seeder and leecher count in DB: Grab list of torrents, including freeleech/neutral status: Clear XBTT user list?! There's lots of stuff besides that, but that's the basic stuff near as I can see. So; to answer 3... |
Maybe the db for private trackers could be into hefur? It would allow a custom and high performances format. |
By the way, checking against the database can scale if your table+index can fit in memory ;-) How many users do/will you have? |
I think that with an interface like this one, we can implement anything: https://github.com/abique/hefur/blob/master/hefur/private-tracker-controller.hh |
That seems like the easiest idea. I think aiming for Gazelle support is
Maybe the db for private trackers could be into hefur? — |
Design and implement private tracker support.
timestamp ip port downloaded uploaded key
All of this can be done with a plugin interface, or with IPCs. But as we can build a plugin which forwards requests by IPCs to an other process, then the plugin interface solves both solutions.
The text was updated successfully, but these errors were encountered: