qBittorrent
qBittorrent copied to clipboard
Wasted data client blocking algorithm/options
Suggestion
Enable a feature that blocks/limits peers with abnormal wasted data tired to their IP.
Maybe you'll tolerate 10mb (or a specified amount) from a single peer. So all peers who meet that requirement are allowed to seed to you. Otherwise they're in some sort of torrent - specific blacklist.
Better too if the same Peer is being flagged on multiple torrents if they can be blocked entirely.
Use case
It's getting ridiculous. I'm wasting almost 50% data on many torrents. (see screenshot). I have a high quality VPN, running on a mid tier truenas scale server, all with hardwired connections at every point. 800/20mbps speeds. Nothing is bottle-necked but something needs to be done here.
Extra info/examples/attachments
Still a problem. Just to bump this issue
Do you use ipfilter.dat? Bad actors on public torrents are 99% of the time are special corporate fakers. They should be filtered well by list of known parasites.
Check this: https://www.ipfilter.app/
is there a way this can be built into the app? I use Truenas Scale, so my QB is in a container. routing through another container isn't impossible but it would be much better if it was integrated. cheers
I'll second this feature request - the bad actors are able to change IP with ease so the blacklists are constantly out of date and eventually end up blocking legit peers. Not only are they sending intentionally corrupted pieces, but they've also begun to initiate a transfer at a good rate then slow their data to a crawl, sometimes leaving a legit piece, sometimes not, but tying up the transfer for hours. Bad actor mitigation options (to me) are more useful than a blocklist because it can be done in real time and if can be adjusted to be far more accurate... My suggestion would be something like: GreyList host for xxx Hours/Minutes if: -More than xxx Percent wasted data or xxx Mb wasted data or xxx bad Pieces -More than xxx Percent reduced transfer rate from peak or initial rate -Less than xxx Kb/s transfer rate
I doubt that such an advanced system would be realized soon or at all. Currently you can ban any peers manually. ipfilter doesn't contain private IPs, it filters only corporate fixed pools and of course it is updated and removes not actual data.
I'd love to contribute this feature to the code base but my programming days go back to when Fortran and COBOL were mainstream. I can make the lights flash on an arduino but not much more.
I'm not a programmer, but i have to think a running tally of each peer's wasted data is a pretty easy metric to track... and then just allowing the user to set a limit to how much wasted is allowed per peer...
seems like the shortest and easiest way to help with this isssue.
because i now have a few torrents with OVER 100% wasted space (5gb file, 7gb wasted)... and that just seems like we should have the ability to remedy that. thanks again <3
OVER 100% wasted space
Are you sure that you understand what waste means in this case? It is not space, it is simply faulty data downloaded that doesn't match the hash, but it gets rejected and that's all. So in the end you lose some traffic and download time, but if you have unlimited connection and in the end you get the full download, it is not a great problem after all.
In qB you see which peer gave you which amount of data and if you get a lot of waste, then it can't be every peer, you can easily find a bad actor, who uploaded a lot and no progress is seen afterwards. You can ban them manually.
But as I told above - generally this is a work of corporate entities, which fight for their crappy copyright. There's simply no need for a common person to come to a random public torrent and try to interfere normal process without much success and with a lot of wasted upload. Anyway torrent will be collected from other peers and they won't gain from slowing it.
I like this idea from Only1Shadow I think this could be use full for those that have a Capped´d account It also be restricted to "per session" It also could happen when the other side have an mishap on their side
@DarkVoyage wasted means wasted. I do not have an unlimited connection and as with many rural Americans my connection speed is also low (10Mbit and 1.5TB/mo) so being able to auto ban bad actors or hosts having issues on their end is of great benefit. @Blakestandal as a former programmer and database admin I can say this isnt a trivial bug fix, but neither should it be more than several hours worth of coding.
- Update the settings UI to include the option and parameters.
- Update the routine verifying checksums on each block to add/update the host in a table of IP addresses with the failed block count and wasted data bytes. Then check it against the limits in setup and add any host exceeding the limits to the banned IP list.
- If you want to get fancy and unban hosts after a time then update the routines checking for banned IPs to look at the data table for expiring bans as part of the lookup. **There's a bit more to it of course, but this is not a major programming job for a very useful feature IMHO. I wish my coding skills were up to date enough to contribute this
@DarkVoyage wasted means wasted. I do not have an unlimited connection and as with many rural Americans my connection speed is also low (10Mbit and 1.5TB/mo) so being able to auto ban bad actors or hosts having issues on their end is of great benefit. @Blakestandal as a former programmer and database admin I can say this isnt a trivial bug fix, but neither should it be more than several hours worth of coding.
- Update the settings UI to include the option and parameters.
- Update the routine verifying checksums on each block to add/update the host in a table of IP addresses with the failed block count and wasted data bytes. Then check it against the limits in setup and add any host exceeding the limits to the banned IP list.
- If you want to get fancy and unban hosts after a time then update the routines checking for banned IPs to look at the data table for expiring bans as part of the lookup. **There's a bit more to it of course, but this is not a major programming job for a very useful feature IMHO. I wish my coding skills were up to date enough to contribute this
Precisely put. Thank you. And yes, even tho I pay extra for unlimited data via Comcast I'd much appreciate downloading some 10gb file in about 10gb's worth of time... Not 24gb... (yes, literally have that happen sometimes). I use qb on truenas so checking it manually every time for bad peers is out of the question. Like stated above there needs to be a threshold per peer of how much wasted is allowed. Maybe it just flags them per client for a day or week or something. But yeah, it's ridiculous how much traffic I waste (pretty much 50 % Average).
Literally have another prime example right now. 15gb file. Wasted 17 gb. Total is 32gb downloaded. Meanwhile I've uploaded 24.
(this is within about 8 hours)
Clearly there's a flaw in this design 😂
Any chance this subject has been revisited? I'm still having the issue and it happens on different devices with different vpns and everything. Nothing common other than my hardware is old-ish. Still doesn't seem like a hardware issue. But would love more feedback. Thanks!