Category Archives: CryptoCurrency

Bitcoin Mining on Mac OS X – Twinfury ASICs

The flood gates on Bitcoins ASIC miners is definitely open with more Bitfury-based devices hitting the streets. My last post on Bitfury based USB sticks covered the Bi•Fury ASIC miner. Bi•Fury packs dual 55nm Bitfury ASIC chips, a striking red design, and hashes at around 5 Gh/s.

The Twinfury USB miner, currently available from Minecoin.net, is another new USB ASIC based based on a dual 55nm Bitfury design.

Twinfury

Right away you will notice these devices have much larger heat-sinks than the Bi•Fury ASICs requiring 3x the clearance. However, this comes with noticeable benefits as the Twinfury hashes at half the temperature Bi•Fury: about 16C versus 38C in my tests. In addition the Twinfury USB stick includes a button for resetting the device without having to unplug it, a handy addition inherited from the Blue & Red Fury ASIC predecessors.

Now that we have a rundown on the features, let’s see what what we can do to get it hashing under OS X!

Miner Installation

As with the HashBuster Micro before it, the Twinfury is currently only supported by bfgminer. So, the first step is to install bfgminer on OS X. There is a thread here on the Bitcoin Talk forums which discusses various ways to install bfgminer on Mac OS X. The most full-proof method is to use Homebrew:

  1. Launch Terminal.app from Spotlight or your Applications folder
  2. Install Homebrew by entering the following in the command prompt:
    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
  3. Run the following command and then fix any reported issues:
    brew doctor
  4. Tap the following Homebrew repository so that you can install packages from it:
    brew tap nwoolls/xgminer
  5. Finally, install bfgminer:
    brew install bfgminer --HEAD

Note: It is important that you use the --HEAD argument (two dashes prefix) until bfgminer 3.9.1 is released. This will install the miner using the latest source from Github which includes some fixes for Twinfury on OS X.

Driver Installation

Like the HashBuster Micro (and in contrast to the Bi•Fury) the Twinfury USB ASIC requires no installed kernel extension or driver.

Detection

After bfgminer is installed you can use the -d? argument to list available devices with bfgminer:

bfgminer -S twinfury:all -d?
[2013-12-28 00:58:45] Started bfgminer 3.9.0
[2013-12-28 00:58:48] Devices detected:
[2013-12-28 00:58:48] Device (driver=twinfury; procs=2; path=/dev/cu.usbmodem3a21)
1 devices listed

Mining

Once the Twinfury stick is detected you can start bfgminer using the -o, -u and -p arguments to begin mining:

bfgminer -S twinfury:all -o hostname -u username -p password

Twinfury bfgminer

The red-and-green color scheme above is thanks to a small Christmas-themed update released by the bfgminer author just prior to the holidays. I’ve done similar things in my own software in the past and think it’s a nice touch.

If you have any questions feel free to post them in the comments below or on this thread at the Bitcoin Talk forums. Happy mining!

Bitcoin Mining on Mac OS X – Bi•Fury ASICs

In my previous post on Bitfury based USB sticks I looked at the Blue Fury and Red Fury ASICs. Those sticks pack a single 55nm Bitfury ASIC chip and hash at between 2.2 and 3.0 Gh/s, depending on cooling and other factors.

The Bi•Fury stick (currently in stock) is another new USB ASIC based on the 55nm Bitfury chip. As the name implies, this new stick packs two chips instead of the Blue/Red Fury’s one and hashes at an advertised 5 Gh/s.

Bi•Fury

These devices are very professional and visually striking as far as USB miners go. They have a very nice red PCB and matching red heat-sink.

Let’s see what it takes to get mining with one of these under OS X!

Miner Installation

As with most previous ASICs, the first step is to install either bfgminer or cgminer on OS X (unlike the HashBuster Micro cgminer is perfectly capable of utilizing the Bi•Fury). There is a thread here on the Bitcoin Talk forums which discusses various ways to install cgminer and bfgminer on Mac OS X. One of the more full-proof methods is to use Homebrew:

  1. Launch Terminal.app from Spotlight or your Applications folder
  2. Install Homebrew by entering the following in the command prompt:
    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
  3. Run the following command and then fix any reported issues:
    brew doctor
  4. Tap the following Homebrew repository so that you can install packages from it:
    brew tap nwoolls/xgminer
  5. Finally, install either cgminer or bfgminer:
    brew install bfgminer

Note: if you’d like to install the miner using the latest source from Github rather than the latest official package, use the –HEAD (two dashes prefix) parameter, e.g.:

brew install bfgminer --HEAD

Driver Installation

The setup here is nearly identical to the Blue Fury and Red Fury sticks. Running bfgminer requires the correct kernel extension to be loaded in order to detect the Bi•Fury stick and cgminer will fail to detect the stick unless that same kernel extension is unloaded. As with the Blue and Red Fury sticks there is no driver or software to download. When using bfgminer the Apple Communication Device Class (CDC) driver will be used and when using cgminer that driver (kernel extension) must be unloaded.

To load the required Apple drivers (if you intend to use bfgminer) execute the following command:

sudo kextload -b com.apple.driver.AppleUSBCDC

To unload the driver (if you intend on using cgminer) execute the following:

sudo kextunload -b com.apple.driver.AppleUSBCDC

Detection

With the proper Bitcoin mining software installed and the kernel extensions loaded (or unloaded), you can use the -d? argument to list available devices with bfgminer:

bfgminer -d? -S bifury:all
[2013-12-19 01:53:26] Started bfgminer 3.8.1
[2013-12-19 01:53:29] Devices detected:
[2013-12-19 01:53:29] Device (driver=bifury; procs=2; path=/dev/cu.usbmodem5d11)
1 devices listed

or with cgminer:

cgminer -d?
[2013-12-19 01:52:12] Started cgminer 3.8.5
[2013-12-19 01:52:14] Devices detected:
[2013-12-19 01:52:14] 0. BXF 0 (driver: bitfury)
[2013-12-19 01:52:14] 1 devices listed

Mining

Once the Bi•Fury stick is detected you can start your preferred mining software using the -o, -u and -p arguments to begin mining:

cgminer -o hostname -u username -p password

Bi*Fury cgminer

Note that using bfgminer requires an additional -S argument:

bfgminer -S bifury:all -o hostname -u username -p password

Bi*Fury bfgminer

If you have any questions feel free to post them in the comments below or on this thread at the Bitcoin Talk forums. Happy mining!

Bitcoin Mining on Windows – MultiMiner

MultiMiner Icon
For the past eight months, I have been more than a little interested — and involved — in Bitcoin and Litecoin mining on Mac OS X. I have authored many how-to articles for Bitcoin and Litecoin mining. I also maintain several repositories for running popular mining software, cgminer and bfgminer, on OS X. I work closely with the authors of both projects ensuring that new builds are up-to-date and functional on OS X.

But I’ve been up to more than that in the world of crypto-currency. The truth is, if you want to do scrypt mining (the algorithm using by Litecoin) then you do not want to use a Mac. They may be okay to try this sort of thing out (and are fine for ASIC mining Bitcoins), but scrypt mining is very hard on a GPU and things get very hot very fast. Not only are you likely to damage your hardware, but you will never get the sort of hashing performance you get out of a purpose-built machine. The best way to go about things is to build an open-air Windows or Linux “rig” – which, being a geek, is exactly what I did:

Deepcore

To clear up the obvious questions:

  • Yes, it is almost more desk parts and zip ties than computer
  • Yes that is a dish rack and yes it does make things go faster
  • Yes, it is loud enough to be relegated to the storage room
  • Yes, I did name it Deepcore after the mining rig in The Abyss

It was a lot of fun to build. You can read about how to build them on sites such as coinminingrigs.com. But I quickly grew tired of using batch files to control the various mining devices in the mining rig I had created. And the more devices I added, and more coins I started to investigate, the more tedious it got.

What is MultiMiner?

The tagline for MultiMiner is “Your coins. Your pools. Your way.” MultiMiner was designed from the start with a very specific purpose in mind: to make it simple to use every mining capable device on a PC to mine any coin on any mining pool, and in any combination. No existing utility at the time (and to this day that I know of) made it simple to view all of the devices on a machine and then choose what coins to mine with them, mixing and matching as you please.

Work on MultiMiner began in June of 2013 and has evolved since then:

MultiMiner v1

MultiMiner Version 1.0

MultiMiner v2

MultiMiner Version 2.0

Over time, development has shifted from focusing solely on flexibility and control to including ease-of-use and integration in the design goals.

Let’s check out what MultiMiner looks like to the new Bitcoin miner on Windows.

Driver Installation

Depending on the mining devices you plan on using you will need one or more of the following drivers installed:

There are several things to note here:

  1. The BF1.INF file for the Red & Blue Fury sticks is currently unsigned. The newer your version of Windows (up to 8.1), the harder it will be to install. I have been assured it is just a standard USB device driver (it contains no DLL or DRV). But you will have to take specific steps depending on your version of Windows to get the driver installed (Google helps here).
  2. The HashBuster Micro “driver” is actual a utility called Zadig that registers the standard WinUSB driver for a selected device. By running the utility you can select your HashBuster Micro device and register the driver with a click.
  3. From what I understand, the older AMD drivers work better for scrypt mining. Ultimately you want to use something like Catalyst 12.8, but this may or may not be reasonable depending on whether your mining rig is dedicated.

Miner Installation

You can download the latest version of MultiMiner from releases.multiminerapp.com. For the adventurous (and my coding colleagues) you can also download the source from source.multiminerapp.com and compile it yourself in the free Visual Studio 2013 Express for Desktop. You can use either the standard Windows installer (created with the wonderful Inno Setup) or just download and extract the zip file.

MultiMiner Installer

From there you can launch either the Desktop shortcut or executable file directly.

Getting Started

Initially MultiMiner was created to allow the user maximum control over each individual mining device. Focus on the new user began with version 1.1 which introduced — among other things — a Getting Started wizard:

Getting Started

The wizard walks the user through downloading dependencies such as bfgminer, choosing a virtual currency, setting up a mining pool, and enabling special features such as smart phone monitoring (utilizing the MobileMiner API) and exchange rate integration (utilizing the Coinbase API).

Downloading and Installing Bfgminer

The wizard was designed to help the new miner get up-and-going but is totally optional. All of the options within the Getting Started wizard can be accessed using the toolbar and context menus within the main application.

Hardware Detection

MultiMiner uses the underlying mining engine (bfgminer) to detect available mining devices and then presents an interface for selecting individual coins to mine.

Brief View

You can use the Scan Hardware context menu (when not mining) to detect any newly available mining hardware and the context menu for each individual mining device to select a configured coin.

Mining

MultiMiner has two primary modes of mining. You can right-click on each device and use its context menu to assign a coin (multi-select works as well). Or you can enable “Automatic mining” based on profitability data from either the CoinChoose API or the CoinWarz API.

Configure Strategies

The mining strategies also let you to automate setups where slower PCs will automatically mine the lowest difficulty coin any any given time, or mine based on straight price versus profitability.

Open Source

MultiMiner is an Open Source C# project released under the permissive MIT license. The source code is broken into individual assemblies that are documented in the README.md on GitHub. There is also a sample project available on GitHub that illustrates how to use the assemblies and classes to mine Bitcoins.

Conclusion

There is definitely more in store for MultiMiner. The application already runs well on OS X and Linux using Mono, but I plan on creating native UIs for those platforms in Qt rather than using the current WinForms UI (which will remain for Windows).

MultiMiner Linux

There are also plans on splitting the core application into a CLI / service application and then a UI front-end.

Finally, I plan on making MultiMiner intranet-aware, allowing a single instance to detect and control other running instances on the local network (you can currently use MobileMiner to achieve a similar setup).

If you have any feedback or issues please use the forums at talk.multiminerapp.com as this will give others a chance to help as well.

As always: happy mining!

Bitcoin Mining on Mac OS X – HashBuster ASICs

Another new ASIC is hitting the streets based on the same 55nm Bitfury ASIC chip found in the Blue & Red Fury USB sticks. This new board, known as the HashBuster Micro, packs nine of the chips found on the Bitfury USB sticks, clocking in at around 23 Gh/s once it is setup and hashing. And, like the previous ASICs I’ve looked at, with a small amount of work is is a wonderful Bitcoin hasher under Mac OS X.

Hashbuster-Clothed

Hardware Purchase

The HashBuster Micro board is available from HashBuster.com for 1 BTC, but is currently sold out. You can also purchase them from the Eligius mining pool store. They are 0.86 BTC and ship very quickly (I had mine in four days).

Hardware Preparation

Now this may either be a turn off or a draw for you, but either way: the HashBuster Micro does require a small amount of hardware DIY before it will be ready to mine. What comes in the box is the PCB board, a barrel plug for power (with bare wires at the end), and a USB cable. There is no fan, no heat-sinks, and you will need to work out how to get power to the board. Here is the board as it comes in the box:

Hashbuster-Naked

So you’ll want to purchase at least one 80mm fan, either a single CPU heat sink or a pack of mosfet head sinks, and a 12 volt, 5 amp power brick (if you do not have one). Here’s a quick order list from Amazon:

Miner Installation

Unlike the ASICMINER Block Erupters and Red/Blue Fury USB sticks, the HashBuster Micro is currently only supported by bfgminer. So, the first step is to install bfgminer on OS X. There are several ways to go about this, from compiling bfgminer yourself, to using Homebrew, to downloading a precompiled binary.

There is a thread here on the Bitcoin Talk forums which discusses various ways to install bfgminer on Mac OS X. One of the more full-proof methods is to use Homebrew:

  1. Launch Terminal.app from Spotlight or from your Applications folder
  2. Install Homebrew by entering the following command:
    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
  3. Run the following command and fix any reported issues:
    brew doctor
  4. Tap this Homebrew repostory so that you can install packages from it:
    brew tap nwoolls/xgminer
  5. Finally, install either cgminer or bfgminer:
    brew install bfgminer

If you’d like to install the miner using the latest source from Github rather than the latest official package, use the –HEAD (two dashes prefix) parameter, e.g.:

brew install bfgminer --HEAD

Driver Installation

Unlike the ASICMiner Block Erupters and Bitfury USB sticks, the HashBuster Micro requires no installed kernel extension or driver. Woo-hoo!

Detection

Once you have the proper Bitcoin mining software installed, you can use the -d? argument to list available devices with bfgminer:

bfgminer -d?
[2013-12-10 10:07:35] Started bfgminer 3.8.1
[2013-12-10 10:07:38] Devices detected:
[2013-12-10 10:07:38] HashBuster.micro Project by HashBuster for Eligius.st (driver=hashbusterusb; procs=9; serial=180000005298AB36; path=usb:093:002)
1 devices listed

Mining

Once the HashBuster Micro is detected you can fire up bfminer using the -o, -u and -p arguments to start hashing away:

bfgminer -o hostname -u username -p password

Hashbuster-Hashing

Feel free to leave any questions below or on this thread on the Bitcoin Talk forums. As always, happy mining!

Bitcoin Mining on Mac OS X – Bitfury ASICs

A new batch of ASICs is hitting the market based on the 55nm Bitfury ASIC chip (abbreviated BF1). The most popular of these are USB sticks branded as either Blue Fury or Red Fury, depending on the color of the onboard LED. The BF1 Fury sticks look very similar to the ASICMINER Block Erupter sticks. However, while the Block Erupters hash at 335Mh/s the new BF1 Fury sticks hash at anywhere from 2.2Gh/s up to 3.0Gh/s.

Red Fury

Miner Installation

As with the ASICMINER Block Erupters, the first step is to install either bfgminer or cgminer on OS X. There are several ways to go about this, from compiling them yourself, to using Homebrew, to downloading precompiled binaries.

There is a thread here on the Bitcoin Talk forums which discusses various ways to install cgminer and bfgminer on Mac OS X. One of the more full-proof methods is to use Homebrew:

  1. Launch Terminal.app from Spotlight or from your Applications folder
  2. Install Homebrew by entering the following command:
    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
  3. Run the following command and fix any reported issues:
    brew doctor
  4. Tap this Homebrew repostory so that you can install packages from it:
    brew tap nwoolls/xgminer
  5. Finally, install either cgminer or bfgminer:
    brew install cgminer

If you’d like to install the miner using the latest source from Github rather than the latest official package, use the –HEAD (two dashes prefix) parameter, e.g.:

brew install bfgminer --HEAD

Driver Installation

As with the ASICMINER Block Erupters, bfgminer requires the correct kernel extension to be loaded in order to detect the BF1 Fury stick. And, as with the Block Erupters, cgminer will fail to detect the BF1 Fury stick unless that same kernel extension is unloaded. Unlike with the Block Erupter there is no driver or software to download. When using bfgminer the Apple Communication Device Class (CDC) driver will be used. When using cgminer that driver (kernel extension) must be unloaded.

To load the required Apple drivers (if you intend to use bfgminer) execute the following commands:

sudo kextload -b com.apple.driver.AppleUSBCDC
sudo kextload -b com.apple.driver.AppleUSBCDCACMData

To unload those drivers (if you intend on using cgminer) execute the following:

sudo kextunload -b com.apple.driver.AppleUSBCDC
sudo kextunload -b com.apple.driver.AppleUSBCDCACMData

Detection

Once you have the proper Bitcoin mining software installed and the kernel extensions loaded (or unloaded), you can use the -d? argument to list available devices with bfgminer:

bfgminer -d? -S bigpic:all
[2013-12-19 01:54:19] Started bfgminer 3.8.1
[2013-12-19 01:54:25] Devices detected:
[2013-12-19 01:54:25] Device (driver=bigpic; procs=1; path=/dev/cu.usbmodem3a21)
1 devices listed

or with cgminer:

cgminer -d?
[2013-11-21 16:49:06] Started cgminer 3.8.2
[2013-11-21 16:49:09] Devices detected:
[2013-11-21 16:49:09] 0. BF1 0 (driver: bitfury)
[2013-11-21 16:49:09] 1 devices listed

Mining

Once the BF1 Blue Fury or Red Fury is detected you can fire up your chosen miner using the -o, -u and -p arguments to start hashing away:

cgminer -o hostname -u username -p password

BF1 cgminer

Running bfgminer requires an additional -S argument:

bfgminer -S bigpic:all -o hostname -u username -p password

BF1 bfgminer

Feel free to leave any questions below or on this thread on the Bitcoin Talk forums. And happy mining!

Cryptocoin Mining on Mac OS X – Wallet Backups

If you’ve taken cryptocoin mining beyond the hobby stages, you probably have at least one digital wallet on your system – possibly several. What happens if your OS were to crash? If you were to reinstall? Where would your accumulated cryptocurrency be?

Gone.

It is very important that you backup the private keys that secure your digital wallet so that you can restore them at a later time. Otherwise the keys required to claim ownership of your coins will be gone forever. It is also important that you backup your wallets regularly. It is not enough to backup your keys just once. See this entry on securing the bitcoind wallet for more details.

So what steps can you take on Mac OS X to keep your wallets backed up? Luckily OS X comes with several tools that help along the way. Additionally, the Unix foundation of OS X allows us to fall back on some time-tested solutions for this project.

Step One – Create an Encrypted Disk Image

Step one will be to create an encrypted disk image used to store the wallet.dat backups. This is what Steve Gibson refers to as “Pre-Internet Encryption” – encrypting important data before backing it up to the Web.

  1. Launch Disk Utility from the Applications folder
  2. Click New Image
  3. Save the image somewhere that is itself backed up (e.g. Dropbox or Wuala)
  4. For the name, specify Wallet Backups (so that the below scripts match)
  5. For Encryption, select either 128 or 256 (256 is more secure and should be plenty fast for this)
  6. Click Create

New Disk Image

Step Two – Create a Backup Script

Now that we have a secure place to store wallet backups, the next step is to create a script that will do the grunt-work. Namely it should mount the encrypted disk image, backup any wallet.dat files (we could have Bitcoin, Litecoin, and who knows what other digital wallets – get them all), and then unmount the encrypted image.

We can do all of this with Automator and a couple of shell scripts.

  1. Launch Automator from the Applications folder
  2. Select Application and click Choose
  3. Add a Get Specified Finder Items action
  4. Select the DMG file created in Step One
  5. Add a Mount Disk Image action
  6. Add a Run Shell Script action and enter:
    cd ~/Library/Application Support && rsync -R ./*/wallet.dat /Volumes/Wallet Backups/
  7. Add another Run Shell Script action and enter:
    diskutil unmount /Volumes/Wallet Backups/
  8. Click File, Save
  9. Save as BackupWallets.app in Applications

Complete Automator Application

Step Three – Schedule the Backup

Armed with encrypted storage and a backup script, the only thing left is to schedule the backup. The Unix foundation of OS X means we can do this by editing the system crontab, a configuration file that specifies the commands to run for cron, the Unix job scheduler.

  1. Launch Terminal from the Applications folder
  2. Enter the following and press Return:
    export EDITOR=nano && crontab -e
  3. Enter the following into the nano editor:
    # backup wallets at midnight every Sunday
    0 0 * * 0 open /Applications/BackupWallets.app
  4. Type Ctrl+X, Y, Return

crontab

Conclusion

And we’re done. You can check your disk image each Sunday after midnight to ensure that your wallets have been backed up. You can also run the BackupWallets.app application to backup your wallets on-demand.

Bitcoin Mining on Mac OS X – ASICs

While it’s been possible to purchase ASICs (Application Specific Integrated Circuits – chips specifically created to mine Bitcoins in this case) for several months, it has been a difficult and risky process involving auctions on forums with one-way exchanges of money for promises of future hardware. However, recently ASICMINER has made it much easier to purchase their Blades and USB miners. You can pick up one of the USB ASIC miners for around $90 USD (at current exchange rates). One of these will hash at around 333 Mh/s at a fraction of the power usage of modern GPUs.

USB Block Erupter

Installation

To get started using a USB ASIC under OS X, such as the Block Erupter from ASICMINER, you will first need to install either cgminer or bfgminer. You can refer to my previous article for details on installing cgminer or bfgminer under OS X. The basic steps are:

  1. Launch Terminal.app from Spotlight or your Applications folder
  2. Install Homebrew by entering the following command:
    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
  3. Run the following command and fix any reported issues:
    brew doctor
  4. Tap this Homebrew repostory so that you can install packages from it:
    brew tap nwoolls/xgminer
  5. Finally, install either cgminer or bfgminer:
    brew install cgminer

If you’d like to install the miner using the latest source from Github rather than the latest official package, use the –HEAD (two dashes prefix) parameter, e.g.:

brew install bfgminer --HEAD

NOTE: if you are going to use bfgminer, at this time you must use the above –HEAD parameter to get the latest changes from Github. Otherwise USB devices may not be recognized automatically.

Driver Installation

If you are using bfgminer you must install the CP210x USB to UART Bridge VCP driver found here. This driver will break USB support in cgminer. Click here for instructions on removing the driver. If you get a page saying your session timed out, visit the main knowledge base site first, and then navigate to the removal instructions. I’ve also reproduced their instructions below:

To uninstall the VCP driver from a Mac OS machine, just drag the driver to the trash from the System/Library/Extensions folder (SilabsUSBDriver) and then reboot the machine.

To verify if a driver is present, plug in a CP210x device and check the /dev directory for a device named “tty.SLAB_USBtoUART”. If this is not present, it means no VCP driver is active, or that the CP210x device has a VID/PID combination that does not match the driver installed. The VID/PID can be found in the device listing in the System Profiler (even if a corresponding driver is not installed).

Detection

Once you have successfully installed one of the above Bitcoin miners, use the following commands to probe for the ASIC USB devices:

cgminer --ndevs

The above command should show USB details for each Erupter ASIC:

[2013-07-01 17:16:30] USB all: found 18 devices - listing known devices
.USB dev 0: Bus 58 Device 2 ID: 10c4:ea60
Manufacturer: 'Silicon Labs'
Product: 'CP2102 USB to UART Bridge Controller'
.USB dev 1: Bus 93 Device 2 ID: 10c4:ea60
Manufacturer: 'Silicon Labs'
Product: 'CP2102 USB to UART Bridge Controller'
[2013-07-01 17:16:30] 2 known USB devices

For bfgminer, use the following command:

bfgminer -S all -d?

The bfgminer output should show ICA devices for the Erupter ASIC:

[2013-07-01 17:15:12] Started bfgminer 3.1.1
[2013-07-01 17:15:17] Devices detected:
[2013-07-01 17:15:17] 0. OCL 0 (driver: opencl)
[2013-07-01 17:15:17] 1. OCL 1 (driver: opencl)
[2013-07-01 17:15:17] 2. ICA 0 (driver: icarus)
[2013-07-01 17:15:17] 3. ICA 1 (driver: icarus)
[2013-07-01 17:15:17] 4 devices listed

Mining

Finally, once you have ensured the miner is recognizing your ASIC, you can start mining with it. You can start cgminer without any special parameters:

cgminer -o hostname -u username -p password

Or start bfgminer with the -S all parameter:

bfgminer -o hostname -u username -p password -S all

cgminer USB Erupter

If you run into any issues you can leave comments below. However, if your issues are specific to cgminer or bfgminer you can find specific forum threads for them here and here.

UPDATE: Several readers have asked how to mine using only their ASIC devices and not their GPUs. Both cgminer and bfgminer support the –disable-gpu (two dashes prefix) argument:

cgminer -o hostname -u username -p password --disable-gpu
bfgminer -o hostname -u username -p password -S all --disable-gpu

Bitcoin & Litecoin Proxy Mining on Mac OS X

Bitcoin

When it comes to mining Bitcoins and Litecoins there are two major protocols involved: the older Getwork protocol and the newer Stratum protocol. At this point the Stratum protocol has all-but-replaced the Getwork protocol. All major mining pools and mining software support Stratum and Getwork is deprecated.

This is usually not a problem, however some older mining utilities (for example the Litecoin CPU miner) do not have Stratum support. And some pools, such as Slush’s Bitcoin pool or WeMineLTC, have limited-to-no support for Getwork. This is where a very nice Python utility called the Stratum Mining Proxy can help.

You can use the Stratum Mining Proxy on any computer to connect to your desired Bitcoin or Litecoin pool. Then you can connect your mining software to the IP address of the computer the proxy mining software is running on. All of the Getwork network requests from the mining software will be reshaped into the Stratum protocol and then forwarded on to the mining pool.

Installing the Xcode Command Line Tools

In order to install the mining proxy you’ll need a set of command line utilities for compiling software. You have two options:

  1. Install Xcode for free from the App Store and then use Xcode to install the Command Line Tools package
  2. Install only the Command Line Tools package from an unofficial (non-Apple) source

If you would rather play it safe and stick to as many trusted sources as possible, or if you plan to make use of the Xcode IDE, go with the first option. If you’d rather save some disk space and don’t mind using a widely used – if unofficial – source, go with option two.

Option 1: Install Xcode and Command Line Tools

To get started using this option you will need to install the Xcode. Xcode is a free download from the Apple App Store.

Xcode on App Store

Next you’ll use Xcode to install the Command Line Tools. Launch Xcode and then click the Xcode>Preferences menu item. Click the Downloads tab and then click Install next to Command Line Tools.

Xcode Downloads

If the text next to Xcode Command Line Tools says Installed, carry on to the next step.

Option 2: Install just the Command Line Tools

If you would like to install only the GCC Command Line Tools you can download the package for your version of OS X here.

Standalone GCC Installer

Simply run the setup package after downloading and step through the installer.

Downloading the Mining Proxy

The original Stratum Mining Proxy project was created by Slush, who also runs one of the more popular mining pools and is very involved in the Bitcoin community and development, from proposing the concept of pooled mining to proposing the Stratum protocol.

However his original project is for Bitcoin miners and pools only. In order to support both Bitcoin and Litecoin mining you’ll want to refer to this fork which includes support for the scrypt algorithm used by Litecoin. You can either download the latest source as a zip file or use Git to clone the repository.

Installing Scrypt (Litecoin) Support

If you downloaded a zip file of the mining proxy source rather than using Git to clone the repository, extract the zip file contents by double-clicking.

Next, open Terminal.app from the Applications folder or using Spotlight. Use the cd command to navigate to the mining proxy source. For instance, if you downloaded the source as a zip file:

cd ~/Downloads/stratum-mining-proxy-master

Next, change directory to the Litecoin scrypt module:

cd litecoin_scrypt

Finally, install the scrypt module for Litecoin support:

sudo python setup.py install

Installing the Stratum Mining Proxy

Now, in the Terminal app window change the working directory back up to the root of the mining proxy source:

cd ..

And finally install the mining proxy:

sudo python setup.py install

Install Mining Proxy

Using the Mining Proxy

Once the mining proxy is installed, using it is fairly straight forward. Normally your Bitcoin or Litecoin miner connects to a host and port with a specific username and password. For instance:

minerd -o http://pool-host:pool-port -u pool-username -p pool-password -t thread-count

With the mining proxy you’ll want to first run the proxy itself, connecting to the pool’s host and port:

mining_proxy.py -nm -o pool-host -p pool-port

If you are mining Litecoins, use the -pa parameter:

mining_proxy.py -nm -pa scrypt -o pool-host -p pool-port

Mining Proxy Output

Then run your miner, but specify your computer’s IP address and the port number reported by the mining proxy output:

minerd -o http://your-ip:port-from-output -u pool-username -p pool-password -t thread-count

Mining Proxy Output - Clients

Other Benefits

There are a couple of other benefits of the Stratum Mining Proxy that are worth noting:

  1. The mining proxy supports both Getwork and Stratum clients. This means you can use the proxy to consolidate network traffic regardless of the mining protocol.
  2. Using the mining proxy gives you a simple way to get a heads-up view of which machines are alive and which are submitting accepted work by referring to the Terminal output.

Resources

To learn more about mining Bitcoins and Litecoins on OS X, see my previous blog posts:

Bitcoin Mining – Part 1
Bitcoin Mining – Part 2
Bitcoin Mining – Part 3
Litecoin Mining – Part 1
Litecoin Mining – Part 2

Litecoin Mining on Mac OS X – GPU Mining

Litecoin Logo

My previous article on Litecoin mining I discussed how you can get started mining Litecoins, an alternative to the Bitcoin crypto-currency, using your spare CPU cycles. If you’re GPU is already mining Bitcoins, using your CPU to mine Litecoins may be an obvious choice. However, if you are “all in” on Litecoin then you can get a sizable performance increase by using your GPU to mine Litecoins. Whether that trade-off is worth-while is a decision you would need to make. Litecoin is not as mature as Bitcoin and is just as volatile. Some see it as a doomed clone, others as the next Bitcoin, poised to take off.

GPU Mining

In order to start using your GPU to mine Litecoins on OS X, you’ll need to first install cgminer or bfgminer. Please read my previous article on Bitcoin mining for step-by-step instructions and installation packages for cgminer and bfgminer. The Homebrew formulas I shared in my previous article include the configuration settings necessary to mine both Bitcoins and Litecoins. If you are compiling the applications yourself, make sure to use the –enable-scrypt parameter when running ./configure.

Armed with a copy of cgminer or bfgminer with scrypt enabled, you can now start mining Litecoins with your GPU. Now a fair warning: finding a nice set of parameters for mining Litecoins with cgminer or bfgminer is far more finicky and time consuming. With Bitcoins you can basically run either miner and just specify your pool. The miner will then tune itself and eventually reach a nice hash-rate.

This isn’t really the case with using either miner to mine Litecoins. For instance, if I use the following command line to mine Litecoins using my ATI 5770. Note that I am using the -d parameter to specify which GPU to use to simplify these examples.

cgminer --scrypt -o host:port -u username -p password -d 0

cgminer No Params

With no additional tuning my 5770 gets about 5Kh/s. My CPU alone gets around 29Kh/s. Using bfgminer with the basic command-line parameters yields similar results. As indicated in my previous article I use the –no-opencl-binaries to work around a crash in bfgminer with multiple GPU’s on OS X.

bfgminer --scrypt -o host:port -u username -p password -d 0 --no-opencl-binaries

bfgminer No Params

So how can we get better performance mining Litecoins on the GPU? The first parameter to focus on is the -I parameter, or the intensity. With Bitcoin this parameter does help, but honestly not a ton. If you aren’t using the PC, and you leave the intensity at “Desktop” (-I d), both cgminer and bfgminer will eventually reach around the same performance you’d get by specifying something like -I 9.

This is not the case with Litecoin mining. With scrypt (Litecoin’s hashing algorithm) you need to specify a high intensity, in fact higher than is suggested for Bitcoin. I’d start at around 10 and go up from there. On my system, 15-16 is about the best I can do.

So lets try cgminer with -I 13 to see what that does:

cgminer --scrypt -o host:port -u username -p password -d 0 -I 13

cgminer with I

That change alone triples the Kh/s, but from 5Kh/s to 15Kh/s honestly isn’t much to brag about. Let’s try with bfgminer:

bfgminer --scrypt -o host:port -u username -p password -d 0 --no-opencl-binaries -I 13

bfgminer with I

Similarly I get around 14Kh/s using the -I 13 parameter with bfgminer.

The next parameter to focus on is the -w parameter, which specifies a worksize in multiples of 64 up to 256. This parameter is what really makes a difference on my OS X rig:

cgminer --scrypt -o host:port -u username -p password -d 0 -I 13 -w 64

cgminer with I w

Now we’re cooking with Crisco! Using -I 13 -w 64 on my 5770 gets me from the original 5Kh/s up to 83Kh/s with cgminer. And with bfgminer?

bfgminer --scrypt -o host:port -u username -p password -d 0 --no-opencl-binaries -I 13 -w 64

bfgminer with I w

This gets us up to around 80 Kh/s with bfgminer as well. By removing the -d parameter so that both GPU’s are used and cranking up the -I parameter to 16 I can get my GPU’s up to around 230 Kh/s:

cgminer --scrypt -o host:port -u username -p password -I 16 -w 64

cgminer Two GPUs

The last parameter I want to note is –thread-concurrency. If cgminer or bfgminer are reporting hardware errors (the HW number in the output) this indicates that you need to make use of the –thread-concurrency parameter. These are not hardware failures. You can find guidelines for the value to use here:

57xx cards: 2368-4096 (3200 is common)
58xx cards: 4096-8192 (5600, 7168, and 8000 are common)
5970 cards: 4096-8192 (5632 or 8000 are common)

67xx cards: 2368-4096 (3200 is common)
68xx cards: 3008-6720 (4800 is common)
69xx cards: 4096-8192 (5600, 7168, and 8000 are common)
6990 cards: 4096-8192 (5632 or 8000 are common)

7xxx cards: 64 * bus-width-of-card-in-bits. So, for a 7950, that would be 64 * 384 = 24576. Ideal values are 21712 or 24000. Find your bus width here.

I verified that 3200 works well with a 5770 and 4800 works well with a 6870.

Conclusion

And that about covers it for my series of articles on mining Bitcoins and Litecoins using Mac OS X and Apple hardware. The growing landscape of crypto-currency is fascinating from many perspectives. If your interest is piqued and you are running OS X, hopefully you now have the information you need in order to get started mining this new form of currency.

UPDATE: Starting with version 3.8 cgminer no longer includes any support for GPU mining, so you will need to use version 3.7.2 of cgminer if you intend to mine using your GPU. Additionally, bfgminer now requires an additional argument in order to enable GPU mining. If you wish to use bfgminer for GPU mining you will need to add the following argument:

--S opencl:auto

Litecoin Mining on Mac OS X – CPU Mining

Litecoin Logo

My previous series of articles on crypto-currency covered Bitcoin mining on OS X. This series will focus on mining Litecoins. While Bitcoin has been getting the lion’s share of media attention lately with its recent bubbles and crashes and growing adoption, Litecoin has been slowly growing in popularity among alternative crypto-currencies (known as altcoins).

What is Litecoin you may ask? Litecoin is a fork of the Bitcoin project with three important changes:

  1. The hashing algorithm uses is Scrypt rather than SHA-256
  2. Blocks are approved four times faster than Bitcoin blocks
  3. Litecoin is setup to produce 84 million Litecoins, versus Bitcoin’s 21 million target

Proponents of Litecoin argue that Litecoin should be regarded as silver to Bitcoin’s gold: easier and faster to transact smaller amounts. Proponents also argue that, by basing the proof-of-work on Scrypt rather than SHA-256, Litecoin mining will remain in the realm of consumer hardware, rather than limited to mining-specific hardware (like Bitcoin with FPGA’s and ASIC’s). While SHA-256 benefits from massive, parallel processing, Scrypt is built to be very memory-intensive. This means that, for the time being, mining Litecoins using your CPU (which is no longer profitable with Bitcoin) is still possible. You can also use your GPU to mine Litecoins, which gives me a 5x performance boost over CPU mining.

One popular setup seems to be using your GPU’s to mine Bitcoins and use spare CPU power to mine Litecoins. This article will cover how you can use Mac OS X to mine Litecoins using your CPU. If you’re interested in harnessing your GPU’s power to mine Litecoins rather than Bitcoins, a future article will cover that topic.

CPU Mining

To get started with Litecoin mining on OS X, download the official Litecoin wallet application – Litecoin-QT – from the Litecoin website. With the Litecoin wallet you can actually mine from within the UI. Download the DMG file and drag the Litecoin-QT app to your Applications folder.

Litecoin QT DMG

Now, I didn’t cover wallet setup in my Bitcoin series as it was outside the scope of mining. However, as Litecoin CPU mining is generally done within the wallet application (though it can be done at the command-line), I want to make two things clear. First, encrypt your wallet. Second, double-check that the encryption phrase you’ve recorded is correct and works before you start making deposits. The same thing goes for your Bitcoin wallet.

As stated above, the Litecoin wallet UI is capable of showing and controlling mining. While the Litecoin wallet has built in support for solo mining, pooled mining requires another download (see my first article for a brief overview of mining pools). The download is from a project called cpuminer. The cpuminer project was originally a CPU miner for both Bitcoin and then for Litecoin, when CPU mining for Bitcoin was still sensible. These days it’s been replaced in the Bitcoin world by cgminer and bfgminer, and is used in the Litecoin world for CPU mining. You can download the OS X binary for this cpuminer fork directly from the project’s GitHub downloads (32-bit, 64-bit).

Once you’ve downloaded and extracted the cpuminer binary, called minerd, place it alongside the Litecoin-QT app in your Applications folder. This makes it possible to use the pooled miner from within the Litecoin wallet.

UPDATE: The Mining tab has been removed from the Lightcoin-QT wallet. Skip down a couple of paragraphs for details on mining from the command-line.

Now you’re ready to start mining. Switch to the Mining tab in Litecoin-QT. Change the Type to Pool Mining. Set the Threads value to the number of cores you have (double that if you have Hyper-threading). You can leave the Scantime value. It is only used if the mining pool doesn’t support long-polling, which is rarely the case these days. For the Server, Port, Username and Password, enter your mining pool information. Using P2Pool mining pools is fairly popular with Litecoin. You can use p2pool.org or any number of alternatives.

Once you’ve got your mining pool information filled in, click Start Mining to get started.

Litecoin QT Mining

The Litecoin-QT UI will display the output from minerd and a running total of accepted and rejected shares, as well as average hashes-per-second.

Command-Line Mining

Now, if you’re the kind of gal (or guy) who prefers to do your work at the command-line, it’s not required that you use the Litecoin wallet app. While mining from within the app is nice as it gives you running totals, you can just as easily mine from the command-line with the following command:

./minerd -o http://host:port -u username -p password -t thread-count

Command Line LTC Mining

What’s Next?

In the follow-up to this article I’ll discuss the utilities, steps, and tweaks necessary to mine Litecoins on OS X using your GPU. While this doesn’t give the same magnitude of increased performance found when mining Bitcoins on the GPU versus CPU, the increase is still enough to make GPU’s the preferred way of Litecoin mining. However, that also means dedicating GPU cycles to Litecoins rather than Bitcoins, which is a decision you’ll have to make. Litecoins aren’t nearly as established as Bitcoins, so they could be poised to gain in value like Bitcoin has. At the time of this post they trade at around $4 versus Bitcoin hovering around $125). Others call into question Litecoin’s benefits over Bitcoin, seeing it as a doomed clone.

Only time will tell.

UPDATE: If you need to connect the CPU miner to a pool that doesn’t support Getwork, have a look at this post for a solution.