ikatson / rqbit

A bittorrent client in Rust
Other
831 stars 80 forks source link

No way to restrict uploading to peers #220

Closed DoctorRyner closed 2 months ago

DoctorRyner commented 2 months ago

How to make sure it'll not upload anything? I have really low upload speeds

ikatson commented 2 months ago

How to make sure it'll not upload anything?

There's no way at the moment. The best you can do atm is --disable-upnp which will not expose your IP to the internet. But it'll still upload to peers made with outgoing connections if they need pieces.

I have really low upload speeds

If it uploads as fast as it can though, is it creating any issues? It's not obvious how is that a problem

DoctorRyner commented 2 months ago

If it uploads as fast as it can though, is it creating any issues? It's not obvious how is that a problem

That's the issue, I can't upload anything if I use torrent since it uses pretty much all of my bandwidth, that's old German internet via DSL lines, it's stupidly bad. I can't send messages/images properly in messaging apps, etc.

And I also live in Germany, if it turns out there is something licensed in the torrent for some reason, like discontinued ISO files for Nintendo Wii games or just anything, I'm gonna get a fine of few thousands euro. We actually really have to use torrents carefully since there are lawyer companies sending those claims left and right on anything suspicious, since uploading/sharing data in Germany can be a heavy crime. I would prefer to be absolutely sure

ikatson commented 2 months ago

While I can't comment on legal matters, it's important to use rqbit responsibly and in accordance with local laws.

However, I understand that the client using all available upload bandwidth can make it difficult for other apps to function properly. I'll consider adding a feature to disable uploading to help manage this.

DoctorRyner commented 2 months ago

@ikatson or I can actually implement it for you if you give me some leads how your app handles uploading

ikatson commented 2 months ago

Done this here https://github.com/ikatson/rqbit/pull/223, please validate if this works as expected

ikatson commented 2 months ago

Done in #223, closing

DoctorRyner commented 2 months ago

@ikatson CleanShot 2024-08-29 at 17 56 42@2x

CleanShot 2024-08-29 at 17 56 28@2x

Hm, it seems not to work in GUI

ikatson commented 2 months ago

You're right! Thanks for spotting. Fixing in https://github.com/ikatson/rqbit/commit/6ca35612309c0608d8df6239b9c946692b3dc389, will merge into main once the tests finish https://github.com/ikatson/rqbit/actions/runs/10618548241

ikatson commented 2 months ago

Merged into main

Pentaphon commented 1 month ago

@ikatson This feature will just make sure nobody except leechers use your client since it hurts the swarms that depend on all clients to contribute to the swarm. There's a reason that no major client allows this except the leecher modded clients. Your client will very likely be banned by any client or tracker that doesn't want to connect to people who leech and never seed. You should really rethink this decision.

DoctorRyner commented 1 month ago

@Pentaphon this is not true, all major clients I ever used had this feature. But think about 2 things:

  1. People with low upload speed will suffer and will not contribute anything substantial anyway. Any person that doesn't have good internet, will have to stop using this client if they can't restrict uploading because they will not have enough bandwidth to use the internet
  2. In Europe you LITERALLY getting fined THOUSANDS of euros if even 1 bit of a copyrighted material happens to be uploaded to someone else. And THIS is sure a thing that avert any person in Europe from using the client
ikatson commented 1 month ago

@Pentaphon

This feature will just make sure nobody except leechers use your client

Why? This is an optional, disabled by default feature. People were and are using rqbit before this feature was added, and they can keep using it after it was added like it never existed.

There's a reason that no major client allows this except the leecher modded clients

Is that true though? @DoctorRyner says it's not. I don't know, I don't use other clients. Just one other major client that has this feature would be enough to dispel this argument. @DoctorRyner can you name the ones that have it?

Your client will very likely be banned by any client or tracker that doesn't want to connect to people who leech and never seed

This seems a bit far fetched? Again, if this is an optional feature and it also exists in other major clients and they are not banned this would dispel this argument.

But if it turns out rqbit is the first to implement this out of major clients and they don't have it for the reasons stated, I can reconsider. We can put this under e.g. a build flag so that if people want it they go build rqbit themselves.

Pentaphon commented 1 month ago

all major clients I ever used had this feature

There is not a single major client that does this. qBittorrent, the most popular client right now, has no such feature. Neither does Transmission, Deluge, rtorrent, BiglyBT, etc. Otherwise, you would just use any of the major clients. Many clients, trackers, and the overall community looks down on this kind of feature. You are simply trying to torrent without uploading because of where you live. You're trying to get a relatively new torrent developer @ikatson to do this for you so you can benefit while his client loses respect from the community by enabling leechers. This feature basically makes his client akin to a leecher mod that is typically banned by every torrenting community. Hopefully, he will change his mind on this before this leeching feature shows up in a stable release.

DoctorRyner commented 1 month ago

@DoctorRyner can you name the ones that have it?

Sure, that's what I used before CleanShot 2024-10-01 at 14 22 58@2x CleanShot 2024-10-01 at 14 23 48@2x

Pentaphon commented 1 month ago

Sure, that's what I used before

Lol this is nonsense. That's not disabling upload. That's turning the speed down to zero, which also severely limits your download speed as punishment for leeching.

@ikatson here's an example of somebody trying to manipulate the qBittorrent dev years ago into allowing disabling upload. The dev responded with a firm no, closing the issue and locking the conversation. That's the most popular torrent client in the world right now.

DoctorRyner commented 1 month ago

Lol this is nonsense. That's not disabling upload. That's turning the speed down to zero, which also severely limits your download speed as punishment for leeching

I don't know what you are talking about, it gives me the same speed no matter this setting

The dev responded with a firm no

Well, It's his political opinion

That's the most popular torrent client in the world right now

To be honest, I didn't even know qbittorrent exist until like 2022. Transmission is quite popular and I knew it since, well, 2014 maybe.

I'm not sure if Software should be about politics, some agenda or looking down on people and features of Software

Pentaphon commented 1 month ago

I don't know what you are talking about, it gives me the same speed no matter this setting

So why didn't you just keep using Transmission then? Why did you make @ikatson go even further than Transmission and disable upload entirely? Why doesn't Transmission have a "disable seeding" setting like you got rqbit to have?

By the way, qBittorrent went even further to stop people who try limiting their upload to ZERO by automatically resetting the upload limit back to infinity. As soon as you type in "zero" and move away from that field, it resets to infinity.

{67FD1180-4A96-47BE-979C-935C50F80B9C}

Also, here's a Transmission contributor explaining what happens when you set upload to zero.

DoctorRyner commented 1 month ago

@Pentaphon because I tend to switch all tools I have to Rust written ones.

Like vim->helix, I even maintain my fork of it to have some features like file-tree until plugin system is released.

Some other examples would be RustDesk instead of TeamViewer and https://github.com/ClementTsang/bottom instead of top.

I'm a big fan of Rust and Software written in it, it's just so much better

DoctorRyner commented 1 month ago

@ikatson if you fear political pressure or negative consequences by not obeying @Pentaphon's community, then I'm fine if you revert the change. Transmission is up and running for a couple of decades already tho

Pentaphon commented 1 month ago

I'm a big fan of Rust and Software written in it, it's just so much better

That's fine but what you are having this dev do by taking advantage of his naivete regarding torrents is just plain wrong. The reputation of his client will suffer. @ikatson I suggest you do your own research into whether all the popular clients allow seeding to be disabled instead of just listening to some random user. You will find that disabling seeding entirely is almost universally frowned upon and such behavior is met with different types of bans.

ikatson commented 1 month ago

if you fear political pressure or negative consequences by not obeying

this dev do by taking advantage of his naivete

Let's keep this civilized, folks. Noone is taking advantage of noone here - someone needed help, and it was easy for me to help, and I like working on rqbit, so I implemented this.

I did some quick googling / ChatGPT'ing and here's what it seems:

Overall, I don't like the idea of rqbit client being controversial / bad BT citizen (other than not supporting all the million modern BT features). But at the same time the potential downsides seem stretched for an optional feature. I do see though how with rqbit being very widespread it could harm the swarm quality and make this more pronounced.

So, I'm leaning to this as a compromise: making this a build flag that is disabled by default. You must build rqbit from source with this flag set if you want this behavior. That should add enough friction for it not to become widespread, but would keep the behavior if the user is ready to figure out how to build rqbit from source.

@Pentaphon it occurs to me this shouldn't be "controversial", certainly not worse than what Transmission lets you do already without building it from source. Agree?

Pentaphon commented 1 month ago

@ikatson With open source clients, people can do literally whatever they want when building from source or they can simply download a leecher mod client, but I do suggest never distributing official builds that have this feature in order to protect the reputation of your client and to keep swarms healthy. As long as you follow what major torrent clients do, you should be OK.

DoctorRyner commented 1 month ago

I guess transmission has terrible reputation with 12K GitHub stars

Pentaphon commented 1 month ago

I guess transmission has terrible reputation with 12K GitHub stars

Transmission has a good reputation partially because it does not and never will have a "disable upload" setting as shown in your screenshot posted above. Just having that setting alone would get Transmission banned from pretty much every private tracker, for example.

ikatson commented 1 month ago

Addressed in #251

DoctorRyner commented 1 month ago

@Pentaphon well, transmission does pretty much the same and it was never banned

Pentaphon commented 1 month ago

transmission does pretty much the same and it was never banned

Again, Transmission does not have a "disable upload" setting like in the screenshot above. That's going too far for many people in the torrenting community and is why you don't see it on uTorrent, qBittorrent, Deluge, etc. Anyway, this whole thing has been resolved. I'm glad the dev did what is best for his client and the community.

DoctorRyner commented 1 month ago

.@Pentaphon dude, it's the same setting that does pretty much the same thing

CleanShot 2024-10-03 at 13 22 40@2x

There is a practical reason why we use Transmission in Europe. It's not safe to use a torrent client in Europe with upload enabled, plain and simple. It's really upsetting for me that we can't escape politics even on GitHub. From my point of view, safety and user experience should come first no brainer. But I guess let's go and pressure and censor programmers and say what features they can write and what they cannot write, have a nice day, I'm leaving. Good luck to people with bad internet I guess

Pentaphon commented 1 month ago

@DoctorRyner the key words are "more or less" and "pretty much". Its not the exact same thing. There is no setting on Transmission, nor any major client that says "disable upload". Simple as that.

Also, are you kidding me? Pressuring and censoring programmers? You're the one pressuring him to do something that you know other clients refuse to do because you know he's a new torrent dev who doesn't know what other clients do. I'm simply trying to help the dev not have his client's reputation ruined by pointing him towards what all the major clients do, which is wise advice, like a new email client dev doing what other email client devs do to follow standards.

If you want to pirate, use a leecher mod, buy a VPN or use another way to pirate. It is not this dev's responsibility to help you pirate by sacrificing his client's reputation with the larger torrenting community.

DoctorRyner commented 1 month ago

I don't care anymore, go preach to someone else. No amount of gaslighting will help. I'll just switch back to Transmission without any leeching mod, compiling from source or buying a VPN. All. Straightforward. and. Simple, like every Software ought to be