Skip to content
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

Bandwidth control #84

Open
Ghost-chu opened this issue Dec 17, 2023 · 3 comments
Open

Bandwidth control #84

Ghost-chu opened this issue Dec 17, 2023 · 3 comments

Comments

@Ghost-chu
Copy link

Are there any plans to add bandwidth control features?
This is a long-standing issue in Kubo, when you need to embed IPFS into an application, if the bandwidth can't be controlled, it usually results in exhausting all the available bandwidth and causing the user's network to block.

@ianopolous
Copy link
Member

We use this in Peergos currently and on public servers the idle (not serving blocks on bitswap, but normal kademlia, identify etc. usage) bandwidth is ~20-100KB/s. We hope to reduce that in the future.

Or do you mean a bandwidth limit for active use? In general though, yes, bandwidth control features do sound good. Like a limit per peer, and total for example. Maybe per protocol too. How would you be looking to use it?

@Ghost-chu
Copy link
Author

We use this in Peergos currently and on public servers the idle (not serving blocks on bitswap, but normal kademlia, identify etc. usage) bandwidth is ~20-100KB/s. We hope to reduce that in the future.

Or do you mean a bandwidth limit for active use? In general though, yes, bandwidth control features do sound good. Like a limit per peer, and total for example. Maybe per protocol too. How would you be looking to use it?

It's good to keep them separate, it helps to precisely control the resources that IPFS can consume.

For me, I just want to keep IPFS working with as little impact on the user's network as possible.
The main traffic will be delivered through the master node, but anyone can join in to help deliver it.

I tried Kubo and it's nice to be able to limit the number of connections, but the lack of bandwidth limiting features is a dead giveaway. (Since it was mentioned in 2016, developers don't seem to have the will to implement it)

Many users have routers that do not perform well, and IPFS can easily destroy a user's home network through the sheer volume of connections and traffic, ultimately resulting in network slowdowns and even outages.

I want IPFS to work in a way that doesn't interfere with the user's network, but assists in the transfer of files (even though it's not fast), which it need on bandwidth and connections control.

If a user starts an IPFS application and immediately exhausts all the connections and bandwidth allocated by the ISP and causes the network to become unstable or disconnected (or even the router to go down), the user will simply avoid enabling the application if possible.

@ianopolous
Copy link
Member

It sounds like you want to be able to limit the total bandwidth used, i.e. the coarsest possible control. I think we will implement that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants