Atrack - A Tracker for Google’s App Engine
Atrack is a ntrack / Bittorrent tracker designed from the ground up to run on Google’s App Engine grid.
Its main goals are:
- As small codebase as possible.
- As fast as possible.
- As low bandwidth usage as possible.
- As low memory usage as possible.
For this it relies heavily (and almost completely) on memcached, no data is stored anywhere, and it lets memcached do most of the lifecycle management.
Atrack also aims to respect your privacy: other than what is needed for the most basic tracking (hashes/keys and ip/ports) atrack gathers no information whatsoever. Beyond that no aggregate statistics are kept of anything (at least once the testing/debugging phase is over), and nothing is stored permanently anywhere, not even hashes and ip/ports, they are kept in memory until they are expired by memcached and never written to disk or any other kind of permanent storage.
TODO
- Implement the BT compact tracker data format as per BEP 0023.
- Take advantage of Python instance caching as a further cache layer on top of memcached.
- Fully specify and implement the complete ntrack protocol.
- Implement “scrap convention”, but will have to make sure it introduces no performance or privacy issues.
- Write a test suite.
- IPv6 support.
Future:
- Support some kind of private tracking? Perhaps IP ACL based?
Source
The latest atrack source is kept in a Mercurial repository, you can check it out as follows:
hg clone http://hg.cat-v.org/atrack/
Contact
For feedback, bug reports, or anything else contact me. Or join #cat-v in irc.freenode.org.
Known Atrack Installations
There are many others, and none is warranted to work, installations come and go often.
- http://theninjahideout.appspot.com/announce
- http://betadoctor.appspot.com/announce
- https://betadoctor.appspot.com/announce
You can look for more (working) installation at Trackon.
License
None. Atrack is in the public domain. Because intellectual property is an oxymoron. Alternatively, if the laws of your country are so braindamaged that they don’t recognize the public domain, the code is also available under the ISC and MIT/X licenses.
Credits
Thanks to mjl for feedback and finding many of my “brown paper bag bugs”.
Thanks medecau and others in the #bittorrent irc channel for their ideas and feedback.
Thanks to Will for some more suggestions and feedback.