Note: The headings on this list indicate the Macintosh System bundle names; the bullet points indicate the version of the System File included in that bundle. This is to make it clearer for people searching for specific bundle versions as opposed to System File versions. Finder File versions are not indicated. 1 Classic Mac OS 1.1 Macintosh System Software (0 - 0.3) 1.1.1 System File 1 1.1.2. I'm disappointed to see Mac OS's new battery longevity features just drain the battery to 80% then back to 100% now and then to keep the cells energized. I'd have much rather preferred a 50-80% setting and some 'exercise' routines that happen once or twice a week. You can use Network Link Conditioner. You will want to ignore the testing settings. Make a Custom Profile and set to have no packets dropped and no delay. Start with uplink and downlink at 2.45 Mbps each and see if you need lower limits to prevent disconnects. This means the conversions will take longer time, but I don't care because I run it at night. There is similar C program for Linux called cpulimit, but it wont compile on my Mac. Note: To get the PID, run first the top -u command in one Terminal window. Copy and paste the bash script (below) and save it in a text file (e.g cpulimitrob.sh). From the Apple menu in the corner of your screen, choose About This Mac. You should see the macOS name, such as macOS Big Sur, followed by its version number. If you need to know the build number as well, click the version number to see it. Which macOS version is the latest?
In this article, we will learn how to limit the outgoing bandwidth of Bitcoin Core (formerly Bitcoin-qt), so we can leave it listening in the background without completely saturating our internet connection.
For many of us, leaving Bitcoin Core running isn’t just a way for us to keep tabs on incoming bitcoin transactions, but a way to contribute resources to the Bitcoin network. By running Bitcoin Core in the background, your computer acts as a “full node”, forwarding new transactions, providing blocks to other nodes, and generally helping keep the Bitcoin network healthy. To do this, your internet connection needs to be able to accept incoming connections on TCP port 8333.
After you have the port forwarded for a few hours, however, you may notice your internet connection becoming unresponsive for other things like web surfing. This is because Bitcoin Core uses all your connection’s upload bandwidth and your router isn’t smart enough to sort out the traffic. Some routers support QoS, which is a way of prioritizing important traffic (like web browsing) over baseline traffic (like bitcoin traffic). If your router supports QoS, then you should use it instead of following this guide to limit bandwidth – this guide is for those of us whose routers choke up when Bitcoin Core is running.
IMPORTANT NOTE: If you limit the bandwidth of Bitcoin Core far below your actual upload speed, it can actually harm the Bitcoin network instead of helping it. To be a responsible maintainer of the Bitcoin network, you should test your upload speed and then set your outgoing bandwidth limit to be as close to your actual speed as possible (e.g. 90%). This guide is intended solely for people whose internet connections go unresponsive due to Bitcoin Core completely saturating their upload bandwidth.
Section Navigation
Limiting Bitcoin Bandwidth on Windows
On Windows, there are a few choices available for limiting the bandwidth of an application. Two of the more popular ones are NetLimiter ($29.95, 30-day trial) and NetBalancer (Free version with limitations, full version $49.95). The free version of NetBalancer allows the user to limit the bandwidth of up to 3 apps at once, and since we only need to limit bandwidth on one app (Bitcoin Core), NetBalancer will be sufficient for this tutorial.
How to Limit Bandwidth on Windows:
Download and Install NetBalancer.
Start Bitcoin Core if it isn’t already running.
Run NetBalancer and you should see a GUI that looks similar to this:
Find “bitcoin-qt.exe” in the list of running applications in the NetBalancer dialog and double-click it to change its bandwidth rules.
Under “Upload Priority” choose “Limited”, and set the maximum amount of bandwidth for Bitcoin Core to use. Keep in mind that 1KB/s (Kilobyte per second, note the uppercase “B”) is 8 times as much as 1Kb/s (Kilobit per second, lowercase “b”). NetBalancer measures in Kilobytes (KB) by default, but your internet connection is likely measured in Megabits (Mb). So for example, if you want to limit Bitcoin Core’s bandwidth to 8Mb/s, you will need to enter 1000KB/s into NetBalancer.
The “bitcoin-qt.exe” entry should show the new rule under the “Priority” column:
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
In OS X versions before 10.10, there was a handy tool for shaping traffic bandwidth called ipfw. In OS X 10.10 and later, Apple replaced the ipfw tool with pfctl, and there is limited documentation on how to use the new tool to limit bandwidth on an app-by-app basis (if you know how, please share in the comments or on Stack Exchange!) Apple provides their own method of limiting bandwidth for developers (Network Link Conditioner), but unfortunately it affects the network speed system-wide, rather than allowing the user to choose which apps to throttle.
The result is that on OS X 10.9 Mavericks and earlier, we will be able to control the bandwidth of Bitcoin Core specifically, but on OS X 10.10 Yosemite and later, we will only be able to limit the overall system bandwidth.
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:
Visit Apple Developer Downloads and log in with your Apple ID.
Search for “Hardware IO Tools for Xcode” and download the latest stable (non-beta) version. As of writing, the download was “Hardware IO Tools for Xcode 6.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.
From the Network Link Conditioner pane in System Preferences, click “Manage Profiles”, then click the “+” button to add a new profile. I named mine “Bitcoin Core”.
Edit the profile and add your desired maximum upload speed:
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, use IceFloor to configure bandwidth rules. For OS X 10.8 Mountain Lion and earlier, use WaterRoof to configure bandwidth rules. We want to limit outgoing traffic on TCP Port 8333. 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
There are comparatively many tools for limiting bandwidth on Linux compared to Windows and Mac OS, but I’ve found that not all of them are as reliable as others. Trickle is a popular way to limit a program’s bandwidth, but after a few tests under Linux Mint 17.1, I found it to consistently crash Bitcoin Core after a few hours of uptime. Wondershaper is another “plug and go” bandwidth limiting solution, but only allows bandwidth limiting on an entire adapter, not for a specific application or port. Tc isn’t as user-friendly as the other two, but in my tests it has been the most reliable, so that’s what we will use for this tutorial.
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 usingapt-get
:Download the tc.sh script from the official Bitcoin Core repository using wget:
Open the script in a text editor. Find the line that says
IF='eth0'
and changeeth0
to reflect the network interface that your internet connection runs through. To get a list of your computer’s network interfaces, useifconfig
on the command line. My computer is connected wirelessly throughwlan1
, so the IF line of my tc.sh looks like this:LINKCEIL should reflect the limit of the network interface, and most likely does not need to be changed.
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 tc.sh alone unless you know what you’re doing. The final top section of my tc.sh ended up looking like this:
Exit your editor and make the script executable with the following command:
Run the script as superuser:
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.
Conclusion
Now you can contribute your extra bandwidth to the Bitcoin network no matter what OS you’re running, and without slowing down the connection for your housemates. Hope you enjoyed this tutorial, and please leave any thoughts in the comments!
More Articles Tagged #cryptocurrency
Comments
Now I can confirm that Limiter №6 Mac version doesn’t work on Mac OS X 10.5. The version that was published 26 of june was tested only on 10.7.
I think I solved that problem. If anyone can confirm it works OK, I’ll update the version on “downloads” page.
This version should work on Mac OS X 10.5 and later (32-bit, Intel CPU):
http://dl.dropbox.com/u/18475891/Limiter6-v1a-gui1.dmg
http://dl.dropbox.com/u/18475891/Limiter6-v1a-gui2.dmg
EDIT: the same with Molot
EDIT-2: also Limiter №6 english manual updated. Thanks to Tavi Scurtu and sinkmusic.
Limiter Mac Os Sierra
If you want to fix my English you can get [doc-version], fix it and send me back.