13 ms·
What.cd's Gazelle on GitHub
- kbar13 13y agonot really sure why we're posting private trackers' projects, but here is waffles.fm's: https://github.com/wafflesfm/batter https://github.com/wafflesfm/batter
- antocv 13y agoIs waffels still going, are they accepting new members?
- dewey 13y agoYes and yes, but this is not the place to ask for invites.
- foobarbazqux 13y agoWhy not?
- dewey 13y agoBecause it's against their rules and the rules of pretty much all the other private trackers too.
- deleted 13y ago[deleted]
- antocv 13y agoI respect those rules but I think they're stupid, as I havent met anyone in person who knew what waffles.fm or what.cd is but Ive been a member of what.cd since a few weeks after what.cd began (after the great oink piggie raid, what was that one called again?), its been years now.
- quchen 13y agoCould someone explain what this is?
- nutmeg 13y agoThe Bittorrent tracker software used to run What.CD, a popular music torrent site.
- aroch 13y ago'Gazelle' is the bittorrent tracker frontend developed by What.CD (For those not in the know, one of the largest music trackers out there).
- bigdubs 13y agoactually 'ocelot' is the tracker itself, gazelle is just the site that the users access to get the torrents
- aroch 13y agoI corrected myself as soon as I posted...Not enough coffee this morning
- quchen 13y agoAh, thanks.
- andrewflnr 13y agoSo, what is a bittorrent tracker?
- dewey 13y agohttp://en.wikipedia.org/wiki/BitTorrent_tracker http://en.wikipedia.org/wiki/BitTorrent_tracker
- FZeroX 13y agoThe tracker tells you who else has the files you want, in a nutshell. Basic bittorrent outline: You download a .torrent file which contains (amongst other things) a list of files, their hashes, and a list of trackers to connect to. Your BitTorrent client connects to the tracker and says "Hi, who else has or is looking for these files"? It returns a list of these people (aka "peers") and your BitTorrent client then connects directly to peers to download the files (and upload them to other people).
- Spittie 13y agoThey wrote a small announcement in their forum. For anyone that can't read it: This is an important change for Gazelle coders. You may have noticed that gazelle/ is now redirecting to http://whatcd.github.io/Gazelle/. This is due to the fact that we are now hosting our public Gazelle repository on GitHub. The old gazelle site had become severely outdated and a nuisance to maintain. Luckily for us, GitHub is the perfect solution. You can view our Gazelle repository here—it is accompanied by a GitHub page providing a brief overview of the project as well as a wiki with important information such as installation instructions, coding standards, and API documentation.
- daturkel 13y agoThis might get passed off as something for people looking do to evil/illegal/etc projects, but Gazelle is easily the best tracker front-end out there and it's super customizable (google "Gazelle tracker" and you'll likely find a bunch of screenshots of different sites implementing it differently—from skinning it to adding new features). Bittorrent is underused as a medium for legal downloads and I encourage anyone interested in a torrent site of any kind to check this out before they try to write their own.
- FZeroX 13y agoThis is my go-to example of a cool legal* website running Gazelle: http://panda.cd/ http://panda.cd/ If you know of any others please let me know! * Not that the well-known ones are illegal either, really, but the point is slightly academic as they will still throw people in jail over it...
- mjgoins 13y agoNot free (or "open source") from what I can tell. COPYRIGHTED AND PATENTED PENDING BY WHAT.CD INCORPORATED, DBA/AKA PROJECT GAZELLE Which is a bit confusing, but then later: FOR NONCOMMERCIAL PURPOSES ONLY
- slacka 13y agoIt was first released under the GPLv3 http://torrentfreak.com/gazelle-rejuvenates-the-bittorrent-tracker-community-080828/ http://torrentfreak.com/gazelle-rejuvenates-the-bittorrent-t... You can view a mirror of the original release here: https://code.google.com/p/gazellewhatcd/ https://code.google.com/p/gazellewhatcd/
- sciurus 13y agoLooking at your link, I see https://code.google.com/p/gazellewhatcd/source/browse/trunk/COPYING.txt https://code.google.com/p/gazellewhatcd/source/browse/trunk/.... That isn't the GPLv3. That isn't even a free software license (https://www.gnu.org/philosophy/free-sw.html https://www.gnu.org/philosophy/free-sw.html), since they only grant a license "FOR NONCOMMERCIAL PURPOSES".
- stayclassytally 13y agoAlso, this page: http://whatcd.github.io/Gazelle/ http://whatcd.github.io/Gazelle/
- k2052 13y agoI find it repulsive that a torrent tracker is released under a restrictive license with Copyrights and Patents.
- adPothier 13y agoOcelot, their custom-made C++ tracker is a nice piece of code. They were forced to drop out php-based and XBTT-based trackers some years ago when the server load from their became huge peer swarm became unmanageable. TorrentFreak made a great story about this[1]. [1] http://torrentfreak.com/what-cd-debuts-lightweight-tracker-for-its-5-million-peers-101014/ http://torrentfreak.com/what-cd-debuts-lightweight-tracker-f...
- FZeroX 13y agoPHP wasn't really the limiting factor, it's the architecture that XBTT uses that really kills you - an SQL query for every single announce! (With millions of peers that means hundreds of SQL queries per second just to maintain your swarm) Some other cool trackers to look at are Shadowolf (although I believe that's discontinued, sadly) and Lioness if that's floating around anywhere (What.CD likes wildcat-based codenames)
- brass9 13y agoIs the ocelot code opensource? I'd be interested in it.
- dewey 13y agoYes, it's in the repository (https://github.com/WhatCD/Gazelle/blob/master/ocelot-0.6.tar.bz2 https://github.com/WhatCD/Gazelle/blob/master/ocelot-0.6.tar...)
- calpaterson 13y agoIf you want to start a bittorrent tracker but don't want to bother with all of the trouble of things like Gazelle, you might like thehighseas, a straightforward bittorrent tracker I wrote: https://github.com/calpaterson/thehighseas https://github.com/calpaterson/thehighseas
- dewey 13y agoThat's a different league though. Gazelle provides a lot more than just listing torrents.
- lysa 13y agoI'm not sure about that. Feature-wise it might be in a different league but the code is absolutely horrible.
- calpaterson 13y agoAbsolutely, I just thought I'd mention it in case people want to get into bittorrent but want an easier way to get started
- FZeroX 13y agoGazelle isn't actually a tracker though - it's a web front-end / torrent website, but doesn't actually do the tracking part itself.
- calpaterson 13y agoThanks - but having written a bittorrent tracker + web interface, I'm aware of the distinction. Most people who want to set up something simple don't actually care though, and my hope is that thehighseas helps people get started sharing with friends.
- FZeroX 13y agoSorry, I didn't mean to patronize your face off - was clarifying more for the benefit of other readers who are not so au fait with the infrastructure :)
- kurrepalt 13y agoCool, it's like watching how people did PHP 4-5 years ago when there weren't many frameworks available, and people used GLOBAL variables for accessing the DB/cache.
- wdewind 13y agohttps://github.com/WhatCD/Gazelle/blob/master/classes/wiki.class.php https://github.com/WhatCD/Gazelle/blob/master/classes/wiki.c... Yeah, not to be negative, but it literally has SQL and HTML in one file. Ooof.
- kurrepalt 13y agoYes, the thing I also noted first was that it doesn't have any bootstrap/router (only 'bootstrap' is the one that's included at the top of each .php-file, wordpress-style). Development must have been pure pain. :( I really understand why people hate PHP so much when all they get to see is purely non-optimized shit. It generally has a really bad reputation which it doesn't deserve. Especially in HN-circles.
- wdewind 13y agoYes I agree wholeheartedly. There are two very fair knocks against PHP: it's not the fastest, and the API uses somewhat inconsistent standards and conventions (isset vs. is_array for instance...so frustrating). But for the slowness aspect, it's not so slow that you are really hindered by this unless you are doing something that requires very intense performance, in which case why are you using a higher level language anyway. Pretty much the rest of its bad reputation is undeserved, and the downsides are on the level of give and take you get with any other language.
- mercurial 13y agoI guess coding standards where that locality trumped separation of concerns. Also, I find string interpolation in SQL kind of hot. Especially when magic quotes are deprecated. I'm sure you can do nice things in PHP if you try hard enough, but you sure don't need to make any effort to do something absolutely terrible.
- adamdavis 13y agoI remember working with gazelle for a torrent site for live Phish recordings. Truly a terrifying code base.
- FZeroX 13y agoI was an architect and coder on this project back at the very beginning and for a few years after launch, if you have any questions about the code then ask away :)
- brass9 13y agoI don't understand. Why is this on HN now? IIRC project Gazelle had been open-sourced several years ago.
- dewey 13y agoBecause they just started to mirror their own git to GitHub and the documentation is more accessible there than the internal wiki on a private tracker.
- jzelinskie 13y agoThere's pressure being put on Gazelle right now because Waffles and AnimeBytes are writing a replacement called Batter[1] using Django. I've also been working on a tracker in Go called Chihaya[2] that will replace Ocelot. I'm glad they finally opening things up more, but it might be a bit too late. If you're interested in working on a more modern rewrite of Gazelle's software stack that has actual software development practices (continuous integration, tests, style guidelines), check out the projects. Both projects are BSD 2 Clause, btw. [1] https://github.com/wafflesfm/batter https://github.com/wafflesfm/batter [2] https://github.com/pushrax/chihaya https://github.com/pushrax/chihaya
- wcauchois 13y agothanks for the links. i gotta say though, your indentation style on chihaya is crackodactyl.
- jzelinskie 13y agoIt's only gofmt with lines <80 chars; there is a function call or two broken into multiple lines to meet that. I'm scrapping that limit and just going to make it as readable as possible. The real crazy thing is GitHub using 8 spaces for tabs!
- MrDOS 13y agoWhat's the motivation for replacing Ocelot? My understanding is that it's mostly a drop-in replacement for XBTT (please correct me if I'm wrong); is one of the design goals of Chihaya to modernize the API?
- dustywusty 13y agoThis code's pretty riddled with SQL injection vulnerabilities. Can't imagine anyone recommending use of this for new projects. For a single instance, https://github.com/WhatCD/Gazelle/blob/master/sections/user/user.php https://github.com/WhatCD/Gazelle/blob/master/sections/user/... The $UserId variable, which is used throughout the queries within this file, is set by an unfiltered GET variable.
- deeebug 13y agoActually they check the $_GET['id'] variable, which is used to set the $UserId variable. Check the top of the source: if (empty($_GET['id']) || !is_numeric($_GET['id']) || (!empty($_GET['preview']) && !is_numeric($_GET['preview']))) {
- dfrey 13y agoYou must maintain a 0.4 ratio of pushes to pulls on github to use this repository.