nabu icon indicating copy to clipboard operation
nabu copied to clipboard

Bandwidth control

Open Ghost-chu opened this issue 2 years ago • 3 comments

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.

Ghost-chu avatar Dec 17 '23 19:12 Ghost-chu

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?

ianopolous avatar Dec 17 '23 22:12 ianopolous

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.

Ghost-chu avatar Dec 18 '23 04:12 Ghost-chu

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.

ianopolous avatar Dec 18 '23 05:12 ianopolous