I never thought I'd be getting this much crap over my peer ID formatting; it's not meant to be monitored, it's just a marker for diagnostic monitoring. I never expected some STUPID tracker site to ban my client because they were too stupid to understand it, or to monitor the http header for "user-agent" instead of the less-reliable peer ID.

Still, I've had requests to provide documentation for my peer ID, and here it is.

First off, all numerical coding is in a custom base-64 format. This format isn't standard, but was developed in order to be URL-safe. This reduces the quoting required in the announce, which reduces bandwidth needed. The digits of this base-64 format are:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-

The first 6 characters in the peer ID are the header. The first character is always "T", for "Tornado". (Versions prior to the BitTornado branding start with "S", for "SHAD0W's Experimental".) This is followed by at least 3 base-64 digits specifying the version number, in order from most-significant to least-significant revision number. Alphabetical revision specifiers are converted to zero. Example: T-0.3.10.b translates to: "T03A0". The remainder of the 6 character space is padded with "-".

The next 3 characters differ depending on the software involved. "---" indicates a standard single-download client, including btdownloadheadless.py, btdownloadcurses.py, and btdownloadgui.py. "-T-" is the peer ID used when one of my trackers is running in multitracker mode and retrieving peers from another tracker. Any other base-64 value, typically "000" and counting up, indicates it is a multi-torrent client, including btlaunchmanyheadless.py and btlaunchmanycurses.py.

The remaining 11 characters will contain random base-64 digits, intended as a key for peer access.

-------------------------------------

WARNING: While this specification has been in effect for several years, I reserve the right to change it WITHOUT NOTICE. If you don't like it, tough.