Update:

I posted about my experience purchasing mining power from a dedicated hosting provider /2016/01/30/analysing-my-progress-and-profitability-in-cryptocurrency-mining/

Disclaimer:

This is extremely inefficient and will not earn any bitcoin. You will spend $1,000s of VM time for a near 0% chance of earning anything. A $30 USB device is ~100,000x faster for mining.

Again: YOU WILL NOT EARN ANY BITCOIN (less than 1c in a month)

TL;DR The commands to create a machine in Azure to CPU mine are at the bottom. But don’t bother.

 

I have been playing with the blockchain lately, most notably the programmable blockchain Ethereum. I was interested in seeing how difficult it was to set up a machine to mine Bitcoin. What I discovered through my research was that it is possible, but pointless to do CPU mining in the cloud.

Why is mining on Azure bad?

While it is easy to set it up, CPU mining is extremely inefficient. Mining on CPUs was depreceated a long time ago when it was discovered that it was faster to do on GPUs. But now even GPUs have been deprecated in favor of power efficient ASIC machines

Here are some hardware comparisions of ASIC devices from https://www.bitcoinmining.com/bitcoin-mining-hardware/

image

There are even cheap USB devices that you can plug in that give you GIGAhashes/second
image

How did my Azure miner go?

My 2 core Azure machine costs $85/month, and doing CPU only getting me 4.24+4.25= 8.5 kilohash/second (0.0000085 GH/s), compare that to the 3.6 GH/s that an ASIC $30 USB device provides.

image

And after 2 days of mining I didn’t even get a single hash even accepted by the mining pool, effictivelly making my mining worth 0%.
image

Could this be faster?

On Azure, renting servers with a faster CPU (D & G-Series) would net negligble increases due to CPU mining.

The upcoming N-Series of VMs will have dedicated GPUs attached that you can offload work to. This would be an order of magnitude faster in mining. http://www.hpcwire.com/2015/09/29/microsoft-puts-gpu-boosters-on-azure-cloud/

The price per hour of a N-Series VM would be so high that you would be better off just paying to rent dedicated ASIC bitcoin mining rigs e.g. there is a list at the bottom of this blog post https://www.bitcoinmining.com/best-bitcoin-cloud-mining-contract-reviews/

Instructions for creating on Azure (if you really want to try it)

  1. Sign up for a mining pool e.g. https://bitminter.com/ (to give you a higher chance of getting a trickle)
  2. login to https://portal.azure.com
  3. create a new Ubuntu virtual machine from the marketplace.
    I recommend Ubuntu on a basic size VM as we won’t be using the features of standard
  4. use Putty to remotely connect to your VM
  5. Install bitcoind (bitcoin daemon)
    sudo add-apt-repository ppa:bitcoin/bitcoin
    sudo apt-get update
    sudo apt-get install bitcoin-qt
  6. Configure bitcoind
    Run bitcoind to see instructions on what should be in the bitcoin.conf
    Create a bitcoin.conf file under ~/.bitcoin
    sudo nano ~/.bitcoin/bitcoin.conf
  7. Install a miner (cpuminer). Instructions from https://bitcointalk.org/index.php?topic=55038.0
    sudo apt-get install build-essential libcurl4-openssl-dev
    wget http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.4.2.tar.gz
    tar xzf pooler-cpuminer-*.tar.gz
    cd cpuminer-*
    ./configure CFLAGS="-O3"
    make
  8. start the miner to test it all works
    ./minerd -o stratum+tcp://mint.bitminter.com:3333 –u <username_workernumber> -p X
  9. add the miner to startup. Edit /etc/rc.local to add it
    sudo nano /etc/rc.local
    Then on a line before exit 0, add the full path of your startup command with & at the end of the line
    e.g. /home/youruser/cpuminerXYZ/minerd -o stratum+tcp://mint.bitminter.com:3333 –u <username_workernumber> -p X &