Sign up ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

I've just finished the intial blockchain download/verify in my BitcoinQt client (17 hours..) and I now see that BitcoinQt is happily eating all of my upstream bandwidth. (About 110kByte/sec on my ADSL line.)

I'm going to be applying bandwidth limits to the app using Waterroof, which should probably work --

But shouldn't there be a built-in method for BitcoinQt to be more polite about its bandwidth consumption?

share|improve this question

4 Answers 4

If your goal is just to get a stable Bitcoin node running, and not to contribute to the network, you can add listen=0 to your bitcoin.conf file. This generally (though not always) keeps your upload bandwidth in check.

If you want to contribute to the Bitcoin network without using up too much of your own bandwidth, however, there are ways of limiting your upload speed for Bitcoin Core (Bitcoin-qt) only. Instructions depend on your OS, so what follows is a breakdown on what to do with each OS.

The following instructions are abridged from this article I wrote recently:

Limiting Bitcoin Bandwidth on Windows

  1. Download and Install NetBalancer.

  2. Start Bitcoin Core if it isn’t already running.

  3. Run NetBalancer.

  4. Find “bitcoin-qt.exe” in the list of running applications in the NetBalancer dialog and double-click it to change its bandwidth rules.

  5. Under “Upload Priority” choose “Limited”, set the maximum amount of bandwidth for Bitcoin Core to use, and confirm.

You’re done! NetBalancer will now sit in the background and make sure Bitcoin Core doesn’t use more bandwidth than you want it to.

Limiting Bandwidth on Mac OS X

OS X 10.10 Yosemite and later

For OS X 10.10 Yosemite and later, there is no easy way to limit the bandwidth of a particular application, but the overall system bandwidth can be limited as follows:

  1. Visit Apple Developer Downloads and log in with your Apple ID.

  2. Search for “Hardware IO Tools for Xcode” and download the latest stable (non-beta) version.

  3. Open the .dmg and double-click “Network Link Conditioner.prefpane” to install the prefpane. From now on, you can enable/disable Network Link Conditioner from System Preferences.

  4. From the Network Link Conditioner pane in System Preferences, click “Manage Profiles”, then click the “+” button to add a new profile.

  5. Edit the profile and add your desired maximum upload speed.

  6. Save your edit, exit the profile manager, choose your new profile, and flip the big switch to enable the limiter.

Mac OS will place an icon in your notification tray so you remember that it’s on. Unlike the Windows/Linux solutions, this will limit the bandwidth for your entire system, so be sure to turn it off you’re not running Bitcoin Core.

OS X 10.9 Mavericks and earlier

For OS X 10.9 Mavericks you can use IceFloor to configure bandwidth rules. For 10.8 Mountain Lion and earlier, use Waterroof. Alternatively, if you want a simple way to control the overall system bandwidth limit instead of just Bitcoin Core, follow the instructions above for OS X 10.10 Yosemite and later.

Limiting Bandwidth on Linux

  1. Make sure you have tc installed by typing tc at the command line. If you get “command not found”, install tc using your favorite package manager. If you're on a Debian-based distribution, the easiest way to install tc is by using apt-get:

    sudo apt-get update

    sudo apt-get install tc

  2. Download the script from the official Bitcoin Core repository using wget:


  3. Open the script in a text editor. Find the line that says IF="eth0" and change eth0 to reflect the network interface that your internet connection runs through. To get a list of your computer's network interfaces, use ifconfig on the command line. My computer is connected wirelessly through wlan1, so the IF line of my looks like this:


  4. LINKCEIL should reflect the limit of the network interface, and most likely does not need to be changed.


  5. Change LIMIT to be the maximum bandwidth you want Bitcoin Core to use (I chose 1mbit). If you don’t have any other Bitcoin Core nodes in your local network, you can delete the line that says LOCALNET. This line is there to make a bandwidth exception for port 8333 communications within your local network (i.e. not out to the internet).


    Leave the rest of the commands in alone unless you know what you're doing. The final top section of my ended up looking like this:

    #network interface on which to limit traffic
    #limit of the network interface in question
    #limit outbound Bitcoin protocol traffic to this rate
  6. Exit your editor and make the script executable with the following command:

    chmod +x ./

  7. Run the script as superuser:

    sudo ./

    Your Bitcoin Core bandwidth will be throttled until you reboot your computer!

Optionally, you can set the script to run every time you start your computer. Instructions for running scripts on boot will vary depending on your Linux distribution. On Ubuntu, one of the ways to run a script on boot is by adding the script to your /etc/rc.local file.


Hopefully this post was helpful in showing you how to limit the bandwidth of Bitcoin Core! For the full version, including images and extra information, check out the original article here.

share|improve this answer
+1 for making me aware of tc – Geremia 5 hours ago

You've asked two questions here: Will it, and Should it? The first I can answer, though the second is a little bit of a discussion question, which are discouraged here on StackExchange.

I've found this thread and this issue describing adding this as a new feature. Short answer: The devs know about it, and it's pretty low on their priority list.

share|improve this answer
I'd like to add: this is low on priority list, most likely because end users aren't supposed to use a full client like this one, instead they'd better use either an e-wallet or a thin client. – o0'. Feb 18 '13 at 14:04

One answer mentioned in the thread is to add


to your bitcoin.conf (which is in {User}\AppData\Roaming\Bitcoin).

This stops other nodes connecting to you to download the blockchain, hence stopping the large upstream bandwidth consumption

share|improve this answer
Not really, since you still connect to a number of nodes in the network they might also ask for blocks and transactions that you saw, but they did not yet. You do however limit the number of connections. It's a really rough cap though. – cdecker Jul 8 '13 at 8:00
But what if you want to run a full node? – Geremia 5 hours ago

If your bitcoin client is running on a dedicated linux machine you might want to try wondershaper. It allows you to limit the bandwith of your network adapter. For instance

sudo wondershaper eth0 1024 56

limits your bandwith to 1024 Kbps download and 56 Kbps upload rate.

sudo wondershaper -c eth0

clears interface limits and brings you back to full speed.

share|improve this answer
Is there a way to restrict wondershaper to a specific process (PID)? – Geremia Jul 16 at 22:09

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.