qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
28.22k stars 3.97k forks source link

qBittorrent promotion #3275

Closed rarbg closed 9 years ago

rarbg commented 9 years ago

Hello Im from rarbg , im interested in promoting qBittorrent as a replacement for utorrent/bittorent mainstream due to the recent major issues they are having. However one thing that concerns me is that the default install of qBittorrent under windows imposes a hard upload limit speed of 50k/s. Is that limit intentional ?

sledgehammer999 commented 9 years ago

imposes a hard upload limit speed of 50k/s

That isn't a hard limit. It is just a default setting. Users can change the limit or make it unlimited(by unchecking the checkbox)

rarbg commented 9 years ago

sure. assuming users are technically educated to do that. 99.9% are not. by default for me qBittorrent is not promoting fair usage of the torrent protocol by imposing a default limit on the upload speed.

ngosang commented 9 years ago

@sledgehammer999 He is right, most people will use the default options and it's not fair. We don't have a global option to "Download first parts first" in all torrents because it's bad for the swarm and we limit the upload speed at 50 KB/s when most users in Europe can upload at 500KB/s or more. I think we should remove this limit even if the download speed decreases a bit.

sledgehammer999 commented 9 years ago

sure. assuming users are technically educated to do that. 99.9% are not.

Yes but also inexperienced users will come and complain that their line doesn't get enough speed. And the reason is that the upload speed runs full and saturates the download speed.

@rarbg are you ok with a higher default limit instead of unlimited?

rarbg commented 9 years ago

@sledgehammer999 Europe : In romania you can buy 200mbits up , 1g down for 20 euros ( $22 ) ( from rds ) In france you can buy 200mbits up , 600mbit down for 35 euros ( $40 ) ( from free fr ) and so on and so on. Any country that is no longer using (A|V)DSL and is not stuck in 1992 is offering at least 5 mbps upload for 10 euros Any country that has possibilities to build cheap infrastructure is offering at least 10-20-30mbps upload for 10 euros

Asia : Even tho its the same situation in some rare countries in europe - in Asia most of the traffic is billed two ways. Local and international. Usually people get fast local traffic - 100mbps and up for cheap , the international one is expensive.

USA: We all know what kind of shit it is there

I do understand that removing the limit will be slowing downloads in case where the user fills up his upload. I do understand how hard it is to code a congestion algorithm into libtorrent , im a coder myself.

What i dont understand is why are you trying to be different compared to others on that limit ?

ngosang commented 9 years ago

Related #2808

sledgehammer999 commented 9 years ago

Apart from the slowing downloads bit, I have only one other somewhat similar argument. Inexperienced users will complain that browsing doesn't work when qbt is running(the real reason will be the seeding tasks running at full speed). I don't have any other reason.

Maybe I am biased because here in Greece the basic plans have 1Mbps upload speed and the expensive ones 5Mbps upload speeds. Also the USA market/usage is huge. They have crappy speeds and cannot be ignored.

What i dont understand is why are you trying to be different compared to others on that limit ?

That doesn't mean that we're wrong(neither does it mean that we're right).

I could run a simple poll in the forums for abolishing that limit, or raising it to say 500KB?

Any other suggestions?

ngosang commented 9 years ago

Any other suggestions?

Other clients run a "Speed test" the first time you run the program and set up the upload / download limits according to the results. They also run a "Open ports test" to check for connectivity problems. The problem of doing this test is we depend on external services but qBittorrent can work even if the test service doesn't work.

ngosang commented 9 years ago

chrishirst commented 9 years ago

@sledgehammer999 Europe : In romania you can buy 200mbits up , 1g down for 20 euros ( $22 ) ( from rds ) In france you can buy 200mbits up , 600mbit down for 35 euros ( $40 ) ( from free fr ) and so on and so on. Any country that is no longer using (A|V)DSL and is not stuck in 1992 is offering at least 5 mbps upload for 10 euros Any country that has possibilities to build cheap infrastructure is offering at least 10-20-30mbps upload for 10 euros

The only answer to that IS, ... ... .. Who cares?????

It's up to the end user to know where they [insert expletive if required] live.

Why have qbittorrent developers to become "Nannies" for dumb arse users who can't be bothered to learn anything about what they are doing or using??? It is up to them to be at least slightly acquainted with the program, I did once facetiously suggest that uTorrent should have a "user aptitude test" before allowing installation, to weed out the ones who shouldn't even be allowed access to a computer.

And if you are so concerned about the education of your 'customers', tell them that they may have to adjust the settings to suit their environment after installation. If it is set higher, there WILL be floods of complaints about "using too much bandwidth" etc. 'Default' values are going to suit some, all or none of the the end users. That IS why they are adjustable in the configuration setting, and if end users can't be bothered to find out why, ... ... THAT is their problem. That IS why the 'Wiki' exists ... to tell them the 'stuff' the NEED to know.

chrishirst commented 9 years ago

The uTorrent "Idiots guide" uses resources that are operated by Bittorrent inc. and even then does not get it quite right.

sledgehammer999 commented 9 years ago

Why have qbittorrent developers to become "Nannies" for dumb arse users who can't be bothered to learn anything about what they are doing or using???

This can be interpreted against qbittorrent too.

About the speed test: I am positive to that.

rarbg commented 9 years ago

I agree both to @chrishirst and @sledgehammer999 But lets assume people actually donate to the client for development. You simply cant kick out stupid people that donate. What comes as a solution to my mind will be on first start of the client a simple question to the user - Are you an advanced user ? If yes - remove all limits to upload speed. If no - load the okla/speedtest average upload speed per country , remove 20% off it and set is as max upload speed. http://www.netindex.com/upload/allcountries/ I see Greece per @sledgehammer999 's example as 1.86mbps

DoumanAsh commented 9 years ago

@sledgehammer999 Although i agree that care for user is important. But making, by default, some limit on upload ain't right idea. By imposing this limit you're assuming that average user would be satisfied with this limit, but it is, as you aware, impossible to tell which limit would be ok for average user so it is actually more right to have no limit by default.

I think it brings idea of some first-install guide builtin qBittorrent with recommendation of what to do. Instead of implicitly set some defaults to user. We can make some user-friendly dialogue which will pop-up first time when qBittorrent is isntalled. This dialogue could run through major options and explain what is recommendation and etc.

P.S. No offense, but i often wonder why @chrishirst is trying to be so sour... :D

sledgehammer999 commented 9 years ago

quick peek to the ookla/speedtest page doesn't reveal an available API for integration... bummer.

rarbg commented 9 years ago

@sledgehammer999 Api is paid :) You can just parse the html every 3-6 months

chrishirst commented 9 years ago

P.S. No offense, but i often wonder why @chrishirst is trying to be so sour... :D

Nope, just pointing out a real world fact that some of you guys are either ignorant of, or naive about. No matter what defaults are set they will be useless for somebody. EDUCATION is the key, not forever messing about changing this that and the other because A. N. Other has decided that X, Y or Z is not suitable.

ngosang commented 9 years ago

I used this Python script to measure the speed and should be easy to port to C++: https://github.com/sivel/speedtest-cli/blob/master/speedtest_cli.py

Nope, just pointing out a real world fact that some of you guys are either ignorant of, or naive about.

We all know that there are stupid people around.

No matter what defaults are set they will be useless for somebody. EDUCATION is the key, not forever messing about changing this that and the other...

The goal is to reach the highest number of users and 95% don't have knowledge / time to experiment touching all the options until the software works well. The software should work out the box for these 95% who don't have the knowledge, the advanced users can tweak the options if need. When you buy a car they don't sell you the car disassembled expecting you have a master in mechanical and enough time and tools for mounting. The things just work.

Btw, the way you talk to others says a lot about your education, try to be more polite.

rarbg commented 9 years ago

@ngosang True , But that also means :dropping those 500/100 connection limits to 50/50. Why ? Isps do connection shaping also.

rarbg commented 9 years ago

Oh and @chrishirst calm your tits.

ngosang commented 9 years ago

True , But that also means :dropping those 500/100 connection limits to 50/50. Why ? Isps do connection shaping also.

There isn't connection shaping in my country, Spain, it's forbidden by law. Anyway I think in most countries there isn't connection shaping because hardware limitations in ISPs equipment. I found the main problem in connections limit is the crappy routers the ISP install at homes. If you want to test if your ISP is doing connection shaping you have to change the ISP router configuration to work "as a bridge" and buy a decent neutral router like this http://www.tp-link.com/en/products/details/cat-9_Archer-C7.html (can handle more than 3000 simultaneous connections).

After the explanation, I agree in set up connection limits to 50/50 or better 200/50 but because the crappy router problem not the connection shaping.

rarbg commented 9 years ago

@ngosang About the "hardware limitations in ISPs equipment" - its not 1992 anymore. Any decent cheap juniper/foundry/alcatel router can shape tens of thousands of subscribers with millions of packets per second without any hickups. SCE's can even do a full layer7 deep packet inspection for up to 100g without even getting high load. VDSL/ADSL modems can do the connection shaping themselves instead of the core routers/edge routers/whatever routers... FTTH routers (PON|GPON|EPON) are usually terminated in somekind of an embeded device which does NAT by default and the shaper runs on it to offload routers too. Btw can you show us the law in spain ? It would be really interesting to read for me ?

ngosang commented 9 years ago

Btw can you show us the law in spain ? It would be really interesting to read for me?

I can't found the exact paragraph because in Spain the telecommunications law has changed 5 o 6 times in the last 4 years. I think this is the last modification and talks about the net neutrality, technological neutrality, etc.. http://www.boe.es/boe/dias/2014/05/10/pdfs/BOE-A-2014-4950.pdf

Currently no operator blocks P2P connections or slows down. Even you can run P2P applications in the 3G/4G networks without problems. Also, in Spain ISPs can't spy on the traffic without a warrant, P2P programs and link pages are legal and there are not dns blocked pages (the only ones that were once blocked are working again https://torrentfreak.com/pirate-site-isp-blockades-reversed-by-court-140717/). The only blocked service is VoIP in some 3G/4G networks because the operators declare that they lose money. But they have been brought to trial by several consumer organizations and the association of Internet users and in the coming months they will have to allow all the services again.

rarbg commented 9 years ago

Thanks

Chocobo1 commented 9 years ago

I used this Python script to measure the speed and should be easy to port to C++...

Or just give the user a link to speedtest and let them enter the results manually... this should be our last option though...

I think in most countries there isn't connection shaping

Here in Taiwan, traffic shaping is a real thing, Most ISP do shaping more or less, not on CPE but on their side, xDSL/fiber ISP do less/none while cable ISP (cheap) is doing it like crazy, downloading less popular is always choked to a few kB no matter how fast the uploader can serve; for popular ones, they setup a local torrent cache server to ease their bandwidth usage.

sledgehammer999 commented 9 years ago

Integrating the speed is a hassle IMO.

I made a forum poll: https://qbforums.shiki.hu/index.php/topic,3616.0.html

Since I am not a networking guru: Is there a point in upload bandwidth that it cannot affect negatively the downstream? eg if the upstream is only 1Mbps downstream can suffer. But is it the same for 5Mbps or 15Mbps? I am thinking of asking the user "Is your upload speed bigger than 1024 kbps?". YES-> unlimited NO-> limit to 90KB/s

rarbg commented 9 years ago

@sledgehammer999 If you fill one way of your internet the other one will suffer. no matter which way it is. download affects upload and vice versa. packets travel both ways. if one way is delayed by a shaper - the other will suffer. EDIT: To give an example that covers what you asked - if you have 10g and you fill your upload your download will die and vice versa. Not because of shapers but because TCP is a two-way protocol. Especially torrents. Especially on 99% of the users using cheap nics which share the same irq for tx/rx and/or dont have any offload features.

Nemo-qB commented 9 years ago

I voted yes. Make it unlimited by default.

ngosang commented 9 years ago

@sledgehammer999 you can ask: What is your upload speed? You can discover it doing a test at http://www.speedtest.net/ I don't know => Unlimited upload speed. 1 Mbps - ( 0,125 MiB/s) => 0,1 MiB/s - ( 100 KiB/s) 2 Mbps - ( 0,25 MiB/s) => 0,2 MiB/s - ( 200 KiB/s) 5 Mbps - ( 0,625 MiB/s) => 0,5 MiB/s - ( 500 KiB/s) 10 Mbps - ( 1,25 MiB/s) => 1 MiB/s - ( 1000 KiB/s) 20 Mbps - ( 2,5 MiB/s) => 2 MiB/s - ( 2000 KiB/s) 50 Mbps - ( 6,25 MiB/s) => 5 MiB/s - ( 5000 KiB/s) 100 Mbps - ( 12,5 MiB/s) => 10 MiB/s - ( 10000 KiB/s) 200 Mbps - ( 25 MiB/s) => 20 MiB/s - ( 20000 KiB/s) 1000 Mbps - ( 125 MiB/s) => 100 MiB/s - ( 100000 KiB/s) or let the user fill one textbox with one number and do number * 0.8 / 8 = number * 0.1 = upload limit. If empty set unlimited.

rarbg commented 9 years ago

@ngosang data from speedtest is publicly available here http://www.netindex.com/upload/allcountries/ there is no point of making a poll for it :)

ngosang commented 9 years ago

I'm not talking about making a poll just asking the user his upload speed instead of making the upload test, it's simpler.

rarbg commented 9 years ago

@ngosang sorry i didnt read it right

rarbg commented 9 years ago

Btw im running a small test with 50 users from the site using qbittorrent ( they are moving from other clients ) . These are their issues so far ( i will be updating the list as soon as more reports come in )

  1. There is no way way to disable DHT/PEX/LSD per torrent + https://github.com/qbittorrent/qBittorrent/issues/3077#issuecomment-104807909 multi-edit if possible
  2. When adding a new torrent display the trackers on it
  3. Streaming - a lot of users use it. "Preview file..." doesnt work as expected. It just tries to open the biggest video file in the torrent even tho it might be with !qB extension and it doesnt set the download mode in sequential or first piece first mode
  4. Ban peer only for this torrent ( snubbing )
  5. Default "Share ratio limiting" value. 50k shaper doesnt help out at all , but there should be a default limit of lets say ratio of 2. That is enough to keep the swarm healthy. uTorrent has a 4 ratio default , then shape to 4k up.
  6. Prevent windows from sleeping by default when downloading
  7. When downloading single file torrents double click on the torrent or open destination folder should open the explorer with the file in question focused + https://github.com/qbittorrent/qBittorrent/pull/2544 needs merging
  8. On install setup a one-time random port , 6881 by default is not suitable because of easy shaping. Changing it to 8999 wont solve the issue. Lets not forget that if UPNP doesnt work telling the user to do NAT on their routers , giving them an extra step to see the port from the preferences is not hard. Im not talking about a random port on start , but on first start.
  9. Ban specific clients - lets say you dont want xunlei , peerflix , any streaming related client that doesnt actually seed or remain as seeder by default after torrent completion ( not related to user setup ) + https://github.com/qbittorrent/qBittorrent/issues/2489
  10. "Ignore transfer limits on local network" should not be enabled on seeding tasks
  11. DPI scaling doesnt work under very high res ( 4k ) - fonts are barely readable
  12. When ETA is less than 1m dont display it as <1m but in seconds
ngosang commented 9 years ago

1 There is no way way to disable DHT/PEX/LSD per torrent

I would like to have something like this https://github.com/qbittorrent/qBittorrent/issues/3077#issuecomment-104807909 but no one is working on it.

5 Default "Share ratio limiting" value

I think it's a good thing to by disabled, the users will share more.

7 When downloading single file torrents double click on the torrent or open destination folder should open the explorer with the file in question focused

This problem is solved #2544 but I don't know when will be merged.

8 On install setup a one-time random port , 6881 by default is not suitable because of easy shaping.

The next release will use the port 8999 by default instead of 6881. https://github.com/qbittorrent/qBittorrent/pull/2808#issuecomment-87746302 About the random port by default I like it but maybe is harder to explain users how to open ports in tutorials...

9 Ban specific clients - lets say you dont want xunlei

2489 I think it's fair to block those who don't share.

rarbg commented 9 years ago

Updated with comments + your issue ids

ngosang commented 9 years ago

2 When adding a new torrent display the trackers on it

uTorrent doesn't have this feature. Will be useful?

rarbg commented 9 years ago

@ngosang It does have it when you click ADVANCED But its useful because people tend to remove/add trackers when loading a torrent

sledgehammer999 commented 9 years ago

There is no way way to disable DHT/PEX/LSD per torrent

From a quick look in the libtorrent docs: You cannot disable those per torrent, only session wise (note: private torrents are an exception)

Streaming - a lot of users use it. "Preview file..." doesnt work as expected. It just tries to open the biggest video file in the torrent even tho it might be with !qB extension and it doesnt set the download mode in sequential or first piece first mode

It isn't supposed to work that way. If it is a multifile torrent "Preview file..." opens a dialog listing files that are media files. It doesn't force the program to download pieces in sequence. If you want that you need to enable "Sequential download" and maybe "Download first last piece" Also #182 is somewhat related.

Ban peer only for this torrent ( snubbing )

I am not sure libtorrent supports this.

Prevent windows from sleeping by default when downloading

We have that mechanism on and it works by checking if there are active torrents. Active torrents are those that: have upstream traffic for seeding torrents OR have downstream traffic for downloading torrents OR magnets that are trying to download metadata OR Force started torrents. Maybe the users downloads didn't have downstream traffic that's why it didn't prevent windows from sleeping.

Ban specific clients

I am not sure libtorrent supports that too.

DPI scaling doesnt work under very high res ( 4k ) - fonts are barely readable

I haven't researched much into this since I don't have a high DPI monitor, but this is a problem with qt itself and cannot do much to fix it.

When ETA is less than 1m dont display it as <1m but in seconds

I won't be changing that.

Your criticism is welcome, but if the above are also requirements for qbt to be promoted by rarbg I don't think they will be resolved any time soon.

ngosang commented 9 years ago

Ban specific clients

I am not sure libtorrent supports that too.

We can implement this. Maybe libtorrent has some callback when peer metadata (User-Agent) is received. If the User-Agent contains a word from a black list the peer is banned (or removed). If libtorrent doesn't have this callback we still can do it but will be less efficient.

sledgehammer999 commented 9 years ago

The question is: Is this really important to do on the client level? Shouldn't tracker worry about banning clients?

ngosang commented 9 years ago

Is this really important to do on the client level? Shouldn't tracker worry about banning clients?

Not really but can be useful to someone.For example, people who create new torrents may want the first copies are not downloaded by Xunlei users, so the torrent is shared faster. I think public trackers don't care about the clients User-Agent.

rarbg commented 9 years ago

None of the issues from the list are a requirement for us to promote qbittorrent. Only the upload limit fix is - because it affects any torrent swarm. The list was made with the help of 50+ utorrent users who said what frustrates them with the client and why they are not going to switch to it.

sledgehammer999 commented 9 years ago

who said what frustrates them with the client and why they are not going to switch to it.

Ok. Noted. Most of them are reported anyway and will be fixed sometime in the future.

rarbg commented 9 years ago

Btw @sledgehammer999 Because i run a very high-end cpu at home i usually keep it on power-saving with sleep enabled during the night

  1. Prevent windows from sleeping by default when downloading Its really going to sleep even tho there was seeding traffic on it , i double checked with my switch to see if there was traffic and there was My box is running windows 7 latest updates. Whats the way to debug it ?
sledgehammer999 commented 9 years ago

sorry for the late response. I am busy with real life. I am going to respond either tomorrow or Saturday.

mayankasthana commented 9 years ago

First of all I would love qB to be promoted! The upload speed limit is set very low even for me, in India, where the internet speeds are comparatively low, but there are FUP(Fair Usage Policy) limits on data usage. I do care about exceeding the FUP limit as internet speeds drop significantly after exceeding it. So, I would want to control the upload limit (not upload speed but share ratio mostly). But setting the default at 50KiBps is too low. As for ideas to set the default speed, I am not so keen on having a first use setup guide, because I have always liked how non cumbersome it is to download and install qB. If there is a first use setup guide which will run a speed test for 1-2 minutes, I am sure to cancel it. AND I have no problem with the upload speed, just the amount I am uploading (which is what gets counted in FUP), so the test is anyway useless for me. It would be better if we could have country wise defaults, or just unlimited as default. People who do have a problem, will eventually learn how to set the limits themselves. qB is a p2p program, and sharing is the core of the idea of a p2p program. So, it is basic knowledge that you will be uploading stuff by default. And the choice to upload slower should be a choice of the user. So, finally I would say we should not have any limit at all.

sledgehammer999 commented 9 years ago

I have locked the poll. It seems that I was the only one in favor of the limit. I am going to remove it.

sledgehammer999 commented 9 years ago

@rarbg I'll also push the change into the v3_2_x branch and it will make it into v3.2.1 release. Now I'll try to see if the prevent sleep mechanism works in a clean Windows 7 VM. If it does, I'll give debug builds to see what fails on your PC.

sledgehammer999 commented 9 years ago

@rarbg I made a small mistake. Have you enabled Tools->Options->Behavior->Power Management->Inhibit system sleep when torrents are active?

rarbg commented 9 years ago

@sledgehammer999 I havent enabled it. Its a default install of qbittorrent(its not enabled by default) that im running instead of utorrent on one of my boxes to test it.