New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there any way to block a specific client (Thunder)? #10258

Open
mr-cn opened this Issue Feb 5, 2019 · 12 comments

Comments

Projects
None yet
4 participants
@mr-cn
Copy link

mr-cn commented Feb 5, 2019

In China, a download software named Thunder (XunLei) is very popular. But it won't upload even just a bit of data, reporting its progress is 0%, and it is always the fastest leecher in peer list, which made me angry.

To avoid being blocked, its client name is -XL0012- with some random strings.

Here is an example:
snipaste_2019-02-05_14-21-30

I have to right click it and block the IP manually. But it is impracticable due to its a large number of users.

We really need some effective methods to solve this problem.

qBittorrent version and Operating System

qbittorrent 4.1.5 running on Win10 1803.

@mr-cn

This comment has been minimized.

Copy link
Author

mr-cn commented Feb 5, 2019

And I have used the anti-bloodsucking upload congestion control strategy. (I don't know the English exact name)
default

@Supralateral

This comment has been minimized.

Copy link

Supralateral commented Feb 5, 2019

There's a qBittorrent fork here that you may be interested in, see c0re100#2

@mr-cn

This comment has been minimized.

Copy link
Author

mr-cn commented Feb 5, 2019

There's a qBittorrent fork here that you may be interested in, see c0re100#2

That seems good.
But I am curious about if the origin qBittorrent is willing to add similar features.
If I can, I prefer to use an official version instead of a 3rd-party version.

@mr-cn

This comment has been minimized.

Copy link
Author

mr-cn commented Feb 5, 2019

I think it will be nice if we can set some rules to match a client and block it.

Such as, blocking a peer whose ip is in range from x.x.x.x to x.x.x.x, or blocking a peer whose client name contains string 'XL0012', and so on.

Even we can write a userscript to implement advanced features.

@Seeker2

This comment has been minimized.

Copy link

Seeker2 commented Feb 5, 2019

"And I have used the anti-bloodsucking upload congestion control strategy. (I don't know the English exact name)"

Anti-leech is what that option is called in English.
From this link: https://github.com/arvidn/libtorrent/blob/master/src/choker.cpp
"the anti-leech seeding algorithm is based on the paper "Improving BitTorrent: A Simple Approach" from Chow et. al. and ranks peers based on how many pieces they have, preferring to unchoke peers that just started and peers that are close to completing."
It uploads MORE to the 0% complete Thunder (XunLei) clients than 5-95% complete random peers!

A more effective means of combating peers that give nothing is enabling "regular" super seeding on ALL torrents. Max upload slots MUST be lower than number of connected peers or qBitTorrent will still upload to every peer.
Strict super seeding is a more extreme form that does not work well on torrents with <5 connected peers -- it will end up NOT uploading to good peers for long intervals of time.

Manually banning the peers is unfortunately necessary if you want to keep uploading to them to a minimum. This may require creating an ipfilter.dat block range for the worst ip ranges.

@mr-cn

This comment has been minimized.

Copy link
Author

mr-cn commented Feb 5, 2019

"And I have used the anti-bloodsucking upload congestion control strategy. (I don't know the English exact name)"

Anti-leech is what that option is called in English.
From this link: https://github.com/arvidn/libtorrent/blob/master/src/choker.cpp
"the anti-leech seeding algorithm is based on the paper "Improving BitTorrent: A Simple Approach" from Chow et. al. and ranks peers based on how many pieces they have, preferring to unchoke peers that just started and peers that are close to completing."
It uploads MORE to the 0% complete Thunder (XunLei) clients than 5-95% complete random peers!

A more effective means of combating peers that give nothing is enabling "regular" super seeding on ALL torrents. Max upload slots MUST be lower than number of connected peers or qBitTorrent will still upload to every peer.
Strict super seeding is a more extreme form that does not work well on torrents with <5 connected peers -- it will end up NOT uploading to good peers for long intervals of time.

Manually banning the peers is unfortunately necessary if you want to keep uploading to them to a minimum. This may require creating an ipfilter.dat block range for the worst ip ranges.

I see. I have taken the option name literally.

So, it means that no matter using 'super seeding' mode or changing options, there's no good way on an official build to block it out, right?

Being the same as them, I don't want to upload any a bit to these junk clients, too.

I 'm using 3rd-party version now, feeling good.

@Seeker2

This comment has been minimized.

Copy link

Seeker2 commented Feb 5, 2019

Super seeding with upload slots limited lower than max connections works well over 1+ hour time.
A 0% peer will get ONE piece that few/no other peers have and until other peers report having that piece that 0% peer is unlikely to get any more upload from you.

@mr-cn

This comment has been minimized.

Copy link
Author

mr-cn commented Feb 6, 2019

Having read this page, I understood how the super seed mode works.

But I am not the initial seeder, all peers can easily get any pieces, so I think it can't help me.

@Seeker2

This comment has been minimized.

Copy link

Seeker2 commented Feb 6, 2019

Super seeding doesn't require you being the initial seeder, it just works more efficiently there -- with less duplicate uploading. But you probably don't care as much about uploading the same piece to multiple peers over a 1 hour interval than uploading multiple pieces to leeching XunLei clients.

@GoogleBeEvil

This comment has been minimized.

Copy link

GoogleBeEvil commented Feb 9, 2019

theprogress of the two xunlei client in ur snapshot is 0% ,how can they upload to others?kidding me?
都9102年了,还有人在说迅雷不上传给其他客户端...

@mr-cn

This comment has been minimized.

Copy link
Author

mr-cn commented Feb 9, 2019

theprogress of the two xunlei client in ur snapshot is 0% ,how can they upload to others?kidding me?
都9102年了,还有人在说迅雷不上传给其他客户端...

如图这种XL0012的迅雷客户端,不论你上传多少给他们,他回报的进度永远是0%,并且不会上传任何信息给你。

不信你自己去公网随便下载几个种子,就清楚了。

有些版本的迅雷(UA是迅雷的版本号,而不是XL0012),是会上传的。

即使是9102年了,迅雷做过的恶依然不会消失!

@Seeker2

This comment has been minimized.

Copy link

Seeker2 commented Feb 12, 2019

"theprogress of the two xunlei client in ur snapshot is 0% ,how can they upload to others?"

They lie about their percentage complete, claiming always 0% even after seeds and peers have uploaded many pieces to them.

Older versions of qBitTorrent (about 3.0.10 or before?) did the same thing to a lesser degree, partially due to a bug and/or programming oversight.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment