Repository navigation
RatioMaster.NET 1.1.0
This release is about the client emulations. Every one of them was checked against the BitTorrent client's own published source code, which turned up a real bug and a lot of drift.
Fixed
The Transmission peer id was wrong. Transmission does not generate a random peer id: tr_peerIdInit fills eleven characters from a base-36 pool and then appends a check digit that makes their values add up to a multiple of 36. Ours were random, and drawn from a 62-character pool that can also emit upper case, so roughly 35 out of every 36 peer ids we sent were ones the real client could never produce. Its announce key was wrong too, and is now the lower-case unpadded hex the client prints with %x.
The tracker key never changed. uTorrent and BitTorrent make up a new key every ten minutes. We picked one when the torrent started and announced it until it stopped, so a seed left running overnight sent the same key a hundred times over. A key you typed yourself, or one read out of a running client, is still left alone.
The stopped announce asked for peers. A client that is leaving sends numwant=0; we kept asking for the usual 200 or 80 on the way out.
Random peer id bytes were drawn from 0-254, so they could contain a zero byte and could never contain 0xff. The real clients use 1-255.
New emulations
qBittorrent 5.1.4 and 4.6.7, uTorrent 3.5.4, Deluge 2.1.1, Vuze 5.7.5.0, BitTorrent 7.10.3, Transmission 2.94 and 3.00, and rTorrent 0.9.6, which is new to the program.
Removed
Six Azureus versions, Vuze 4.2.0.8, Deluge 1.2.0 and 0.5.x, uTorrent 3.3.2 and 3.3.0, BitTorrent 6.0.3, and Transmission 2.82 and 2.92. That takes the count from 42 down to 28. These are clients from 2007 to 2013 that nobody runs any more, and a tracker seeing one is more of a signal than a disguise. A saved torrent that used one now runs with the default client.
Also
New per-torrent option "Pause the upload while the tracker reports no leechers", on by default (#16). With nobody downloading there is nobody to upload to, so reporting upload anyway is the easiest way to get noticed. Switch it off to keep uploading.
Full changelog: https://github.com/NikolayIT/RatioMaster.NET/blob/master/HISTORY.TXT