By Nathan Smith-Manley

Cryptocurrencies such as XMR and Bitcoin rely on a network of users to provide the computing power that make cryptocurrency transfers happen. This service is provided by “miners” who are paid a small percentage of the transaction fee. The fee is referred to as a reward.

However, Cryptocurrency mining isn’t exactly profitable (in the short term). Miners typically build custom hardware and run software designed to take advantage of every available resource including using the processors located on graphics cards. This hardware can be costly and it can also be a drain on your power bill.

Strategic cryptocurrency miners hold on to their small payouts in the hopes that one day the cryptocurrency they mined will become more valuable which is indeed what happened with Bitcoin. Early bitcoin miners made out like bandits.

Cryptocurrency can be exchanged for hard currency. Bitcoin can readily be converted into cold hard cash. However, currencies like XMR need first be converted into Bitcoin and then exchanged for cash. With every conversion there is a fee.

Recent advancements in cloud hosting has empowered users to be able to provision and quickly scale computing resources. The sky is the limit. Almost.

I tested out some various cloud hosting plans from 1&1 Internet, and Digital Ocean. As far as I’m aware these cloud hosting providers do not forbid cryptocurrency mining. Some do. Digital Ocean has a limit on the number of containers you can run that can be increased if you contact customer service. 1&1 Internet has a high theoretical limit but, I noticed the Admin GUI gets slow and unmanageable if you add too many. If you are doing some serious mining, I imagine you could get around this limitation by opening multiple accounts.

Some pools forbid mining using cloud hosting, and others have limitations on the number of workers that you can run concurrently. You’ll want to keep an eye on your pool stats and system logs to make sure you systems are not being blocked.

I’ve tried several different configurations, and I’ve found the best bang for the buck is running a $5/month 1vCore container from 1&1 Internet which has an average hash rate of 33 h/s. For additional hash power you simply clone the small 1 core container as many times as you like. 1&1 Internet will bill by the second. You can fire up as many as you like and delete them with ease.

The second most efficient configuration was a 1&1 Flex Core with 16 vCpus, .5 Gb Ram, and 20 GB HDD. Flex core is nice as you can configure the amount of CPUs, RAM, and disk space so you don’t have to pay for what you aren’t going to use. Crypocurrency mining is CPU intensive, but uses very little memory, network, and disk space - so I kept the RAM and disk space to a minimum.

The Flex Core with 16 vCpus would cost $120.24 for a full month and nets an average of 550 h/s. If you fired up 100 - your overall hash rate would be 55,000 h/s (53 Gh/s) and you’d face a monthly bill of $12,024.

Here is are the configurations I tested:


In order to start cloud mining you will need:

A monero wallet. The simplest way to get one is by signing up at
It’s just one click - and no personal information is needed.

A pool to participate in. There are many. For list see:

A cloud hosting account. I’ve found the best bang for my buck is the cloud hosting service from 1&1 Internet.

The steps I used to configure my containers:

Configure and start a container with Ubuntu 16.04.

SSH or use the KVM to access the command line.

Once you’ve logged in (as root):

apt-get upgrade

apt-get update

apt-get install htop (optional)

apt-get install nano (optional)

apt-get install git libcurl4-openssl-dev build-essential libjansson-dev autotools-dev automake

git clone

cd cpuminer-multi


CFLAGS="-march=native" ./configure


cd /root

nano -w (or use your favorite editor to add the following line you will need to change the hash address and pool to your own, set the “-t” option to match the number of CPUs on your container. )

/root/cpuminer-multi/minerd -a cryptonight -o stratum+tcp:// -u 45HCb8ZJgD27oZTMf4YxYzX37m8o6Nqg15tJjsdWnEgxH172VRpoaxQLLeWMZYYV3cJMsgCBNMiPvaJGJgKdcJ6NHsEFTLZ -p cloud-1 -t 1 &

nano -w /etc/rc.local (or use your favorite editor to add sh /root/ right before exit 0)

#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
# By default this script does nothing.
sh /root/
exit 0


If you goes well, you should be mining. The miner will log to /var/syslog. You can monitor the results by accessing your system by SSH or KVM and executing the command:

tail -f /var/log/syslog

Jun 11 03:11:36 localhost rc.local[686]: [2018-06-11 03:11:36] Stratum detected new block
Jun 11 03:11:44 localhost rc.local[686]: [2018-06-11 03:11:44] accepted: 10493/10493 (100.00%), 34.61 H/s at diff 1360 (yay!!!)
Jun 11 03:11:47 localhost rc.local[686]: [2018-06-11 03:11:47] accepted: 10494/10494 (100.00%), 34.25 H/s at diff 1360 (yay!!!)
Jun 11 03:11:49 localhost rc.local[686]: [2018-06-11 03:11:49] accepted: 10495/10495 (100.00%), 34.45 H/s at diff 1360 (yay!!!)
Jun 11 03:12:17 localhost rc.local[686]: [2018-06-11 03:12:17] accepted: 10496/10496 (100.00%), 33.72 H/s at diff 1360 (yay!!!)
Jun 11 03:12:39 localhost rc.local[686]: [2018-06-11 03:12:39] accepted: 10497/10497 (100.00%), 34.11 H/s at diff 1360 (yay!!!)
Jun 11 03:12:58 localhost rc.local[686]: [2018-06-11 03:12:58] accepted: 10498/10498 (100.00%), 34.07 H/s at diff 1360 (yay!!!)
Jun 11 03:13:18 localhost rc.local[686]: [2018-06-11 03:13:18] accepted: 10499/10499 (100.00%), 33.61 H/s at diff 1360 (yay!!!)
Jun 11 03:13:34 localhost rc.local[686]: [2018-06-11 03:13:34] accepted: 10500/10500 (100.00%), 34.12 H/s at diff 1360 (yay!!!)