Jump to content

Any chance of adding some anti-poisoning measures in newer versions?


Recommended Posts

Any chance of adding some anti-poisoning measures in newer versions?

Here are the things that are currently really user unfriendly now.

Lets have situation where there is a share with multiple small files (like multi-part RAR archive).

Also, let's have same share shared by several different torrents.

Now, one of these torrents has some poisoning. Part XXXX gets redownloaded again and again, due to HASH check failure. Some IPs are banned but that's not enough to get healthy version of XXXX part. In several hours lots of MBs are wasted on corrupt data.

What is difficult here is that I can't explicitly say "stop downloading part XXXX", or "stop downloading file that uses XXXX part". I must guess to which file the XXXX part belongs.

What is even bigger problem is that utorrent still tries to downlad part XXXX, even after its file is marked as skipped. The only way to stop download of XXXX part is to exit utorrent right after XXXX part is discarded.

Now, why would do this? So I could take same file from the other torrent, that is probably not poisoned. And in the meantime download all other files from the 1st torrent that have no poisoining.

So additional useful functionality needed here would be to somehow merge finished correct file from 2nd torrent with original torrent, and thus get some helthy XXXX parts to share with other users of 1st torrent.

Currently, I need to mix and match between finished files of both torrents in order to get whole download, while original torrent will never get correct XXXX part to share with other users.

Link to comment
Share on other sites

There's a reason why uTorrent automatically bans after 5 hashfails from a given peer.

Which, in most cases is not effective enough

If torrent is well poisoned, it will have just too many IP addresses to be banned.

In the time one IP gets banned (several redonwload of single part) several new poisoned IP are ready to connect. In the meantime you download lots of waste.

And there is no other way to "anti-poison" a swarm. No, you can't just repair a piece out of nowhere from whatever other non-poisoned torrent.

Well, I already can do this manually. It won't help for poisoned torrent, but I surely can take good files from poisoned archive, skip the bad ones manually and then download missing files from other torrent with same content.

If that could be automatized to some level it would help great in combating poisoning.

For example if two torrents have exact same file (same hash and all), why not then be able to borrow some part from different torrent, instead of the corrupt one that keeps redownloading itself.

Link to comment
Share on other sites

Nope, in most cases, each .torrent file is different, even if the files are exactly the same. Reason? Files can be divided up in an infinitely many different number of ways, and hash data for EACH piece is stored in .torrent files. If pieces are divided up differently in separate .torrent files, each pieces' hash will NOT match in each .torrent file. As such, if the infohash isn't the same, it is not considered the same .torrent, no matter what the contents are. There is no such thing as a "file" in BitTorrent, only pieces.

Link to comment
Share on other sites

Anyway, at least one improvement should be added into utorrent.

And that is immediate stopping of download for pieces in files marked as skipped.

Currently, such pieces utorrent will still try to download, only usinging workaround from 1st post helps.

Also, it would be nice if you could order in utorrent to skip files that belong to specific piece you don't wish to download.

Link to comment
Share on other sites

Firstly, an additional anti-poisoning measure already exists in µTorrent that you may not be using: ipfilter.dat

It may not take long to discover ip ranges that the poisoners are working in -- and adding them to your ipfilter.dat list can be done even while µTorrent is running...though you have to tell µTorrent to recheck the ipfilter.dat file by disabling/enabling ipfilter under advanced settings. Consider basically EVERYTHING in the ip range as hostile, and many in the 210.x.x.x range are as well. Getting a big blocklist from BlueTack http://www.bluetack.co.uk/ is a start, though you may have to convert it to ipfilter.dat format.

It only takes 1 incorrect bit to make µTorrent throw out an entire piece -- which on large torrents may be 2 or 4 MB in size! The poisoners are not looking to upload a LOT to you, only 1 bad ~16 KB portion of a piece -- so you lose the whole piece and µTorrent won't even know which ip sent that bad portion, and instead it has to flag ALL participants for that piece as potentially hostile. Once they accumulate 5 failures each, they get banned. So even as poisoners get banned, so too do possibly good sources.

Try reducing max connections PER torrent to a low number such as 5-20 and also reduce upload slots to only 2-4 (if they're not at that already), this will reduce the odds of multiple ips uploading the same piece to you at the same time. Your download speed will NOT be as fast this way, but it will find poisoners faster. Copy µTorrent's logs so you can later add those bad ips to your permanent ipfilter.dat file!

Link to comment
Share on other sites

  • 2 weeks later...


This topic is now archived and is closed to further replies.

  • Create New...