What is bitcoin mining?
Contents
Bitcoin Mining
Bitcoin mining is what a professional Bitcoin earner uses to make their Bitcoins from scratch, and can also be the most profitable way to make Bitcoins if used properly.
What is Bitcoin Mining
Since the Bitcoin does not have gold as a backing, it needs to be backed by SOMETHING to make it more fair and stable. Bitcoin Mining is a method of earning bitcoins by donating CPU power to run the Bitcoin network and determine who has how many coins, and handles all transactions over the BTC network. This eliminates the need of central servers like at banks that handle transactions and provide things like proof of how much money is in an account, fraud protection, refunds, etc. In return for the CPU power donated, Bitcoins are put into your bitcoin wallet, directly proportional to how much CPU computations you gave to the network. In other words, you turn your computer or mining rig into a server for the Bitcoin network, and you provide the CPU power to make sure the network is running fast and fair.
What type of host machine is best
The host device is the computing device you attach these (usually external) Bitcoin Mining devices to. The host controls these devices with its own network connection used to communicate with the Bitcoin network. It uses very low CPU power on the host machine as it is only sending data across the network, and to your mining device that does the majority of the computing power. You can attach many devices to a single host if you want, and this is what is used to save power during mining. There are a few options to use if you are going to be using ASIC's for mining. So, depending on how fast your rig is, you want to choose your host based on that speed (Mh/s). These hosts run different operating systems that can be used for mining (MacOS, Windows, Linux) each with their own benefits and pitfalls. While I might not go into much detail, Windows is a good option for most situations-- its more reliable in my tests than Linux. Linux gives more control over the mining process than Windows, but is also much more difficult to setup. Mac OSX is another popular bitcoin mining rig, but I have little to no experience with it running mining software. It is said to be as good as Windows in speed and reliability.
Desktop Computer
A desktop computer is the least efficient of them all, because a standard desktop uses 400-600 watts of power the desktop computer is a good choice for very large mining rigs (over 40,000 Mh/s). I recommend using Windows on a rig like this because the drivers are easier to find and install for many devices.
Nettop/Netbook Computer
A nettop (netbook but desktop version - no screen/keyboard) has a weak processor in it, and is built for low power consumption (about 100-200 watts). A nettop is going to be my choice if I start mining over 5,000 Mh/s.
Raspberry Pi
The last device is the Raspberry Pi-- a miniature computer (credit card size) that can run CGminer and a few other brands of mining software. The Raspberry Pi uses 10-15 watts of power and makes it ideal for running small mining rigs up to 5,000 Mh/s. It requires an external, powered USB hub to power the devices. The Raspberry Pi only runs Linux, so it is a little difficult to setup, but is surely the most efficient on power.
What OS should I mine Bitcoins on
The OS you use depends on brand loyalty and skill level of the user on each OS. Each has pros and cons, but if you REALLY know one OS better than another, go with the one you know.
Windows
Windows is the easiest to setup, the most reliable, and is probably the most popular mining OS for Bitcoins. Almost every mining software will work on Windows with only minimal setup. The drivers are easier to find and easier to install on Windows. It even has a GUI for a miner called GUIminer that requires no coding or .bat files, you open the program and tell it the settings and click start. BFGminer, CGminer, and a few others work on Windows VERY well and offer more features than GUIminer.
Linux
Linux is the hardest to setup for Bitcoin Mining. My preferred miner for Linux is DiabloMiner- its easy to setup compared to some of the others which require the user to compile the mining software. The drivers for these devices can be hard to find for Linux because there are so many types of miners and of Linux distros. If you want a quick and dirty answer, use Debian linux, and DiabloMiner. Debian includes Debian, Mint, and Ubuntu as the popular Linux BTC mining OS's
Mac OSX
I have seen much about running bitcoin miners on Macs. Since I have not used a Mac to test, I can only offer what other people have said about it. If you are using CPU/GPU mining, Mac seems to be as good as Windows, but slightly harder to setup. The total BTC output of Mac miners is slightly higher for some reason (less than 5% higher but thats a lot!). My recommendation is to avoid Mac, it is my last choice for mining Bitcoins based on what I know about it due to reliability and setup difficulty. I will update my info on Mac OSX as I get more test results. Remember, the more people using a specific OS, the more updates and the more bugfixes it gets.
What Hardware is Best for Mining
There are a WIDE variety of bitcoin mining setups. The way to measure the CPU power of a bitcoin rig is to calculate how many hashes per second the rig can calculate. The 4 types of mining rigs are listed below with some info on each type, and the general range of CPU power each has. Here is a list of devices and their average hashes per second: Mining Hardware Comparison Note that FPGA and ASIC miners are NOT standalone-- they need a host computer to operate them and act as their network interface to the bitcoin network. The main quality of a bitcoin mining host is power usage. If you use a full blown desktop it is about 400-600 watts of power use, and that can run up the bill so much that it is impossible to make money from. In my opinion, a good mining rig would be the Raspberry Pi, a small ARM computer that runs linux and is powered off of 5v USB. It uses 10-15 watts at peak power consumption, and can act as the host for ASICs and FPGAs. This makes the electricity bill cost as much as a light bulb on 24/7 rather than a desktop computer which is about the same power use as a Microwave Oven always on 247. It is a large difference and will affect your total profit from bitcoin mining.
CPU
CPU mining was how Bitcoin started. It is highly inefficient and is almost completely phased out of bitcoin mining at this point. Computing power for these devices range from 1-12 million hashes per second (Mh/s) and they use a rather large amount of power when compared to other mining hardware.
GPU
GPU mining uses the graphics card in a computer to compute hashes instead of the CPU. GPU's have much higher computing power than a CPU and use just a little more power. GPU mining is for amateurs at this day in age, people looking to understand how the bitcoin market works. It is a good starting place for people learning about bitcoin, since it only requires a computer with a graphics card. Note that ATI GPU's outperform Nvidia GPUs by a factor of about 2x based on each cards price. For example, a Nvidia GPU (gtx560) can do about 70 Mh/s (35x more than my CPU in the same comp)
FPGA
Field-programmable gate array's (FPGA's) were generation 3 of Bitcoin mining devices. They are specialized hardware that has 1 and only 1 job-- calculating hashes (the cornerstone of bitcoin mining). FPGAs are no longer the way to go about mining, as they have been almost completely phased out for ASIC miners. FPGA's are a lot less efficient than ASICs per dollar investment - for example, it takes a $500 piece of hardware (Icarus) to get 300 Mh/s (million hashes per second) with an FPGA.
ASIC
ASIC is generation 4 of Bitcoin mining and the most recent. An ASIC is an "Application-specific integrated circuit" and in this case is application specific to the Bitcoin hashing used in mining. ASICs are cheaper than FPGA's, use less power, and are more powerful at computing. They are what any true bitcoin miner wants to use if they want to make money off an investment in mining hardware. For example, it takes a $29 piece of hardware to get 300 Mh/s versus $500 with an FPGA. ASICs cannot be reprogrammed so once you buy one, its only use ever will be to harvest bitcoins.
What software is best for mining
Many types of software have come out in the Bitcoin community for mining bitcoins. Depending on what generation of harvesting you are using, and what host operating system, there are a few options for mining software.
BFGminer
This is my preferred software for use on my Windows based mining rig. It is compatible with CPU/GPU/FPGA/ASIC mining hardware and can be run on Linux as well (has to be compiled!). BFGminer has enhanced capabilities for powerful mining rigs like the use of the stratum protocol (reduces the network traffic drastically, a big help when you pass 5,000 Mh/s = 5 Gh/s)
CGminer
This would be my second choice as a Windows miner, and first choice for a Raspberry Pi miner. It supports GPU/FPGA/ASIC miners on all operating systems (even the Raspberry Pi's debian based on ARM processor as a host computer!) Very similar to BFGminer, CGminer seems to be more compatible with hosts, and runs about the same speed as BFGminer (a very similar program, maybe even a fork of CGminer). The benefit of CGminer is that its easier to run on any system, and it supports most mining devices and protocols.
DiabloMiner
DiabloMiner seems to have less features and slightly less reliability than BFGminer or CGminer. That being said, it is my favorite Linux based miner, and runs about the same speed (maybe 5% lower) than BFGminer and CGminer. Diablominer is very easy to setup on Linux compared to the others, and is my preferred mining software for Linux based hosts.
GUIminer
This is a Windows only mining program that does not require a command line to run. On first run, it detects your setup, asks you for your mining pools URL, your username, and your password. Then, you just click start and its going. Efficiency slightly less than other miners, but within reason. Good for absolute beginners that want to learn about bitcoin mining.
What is a Bitcoin Mining Pool
If you decide to mine Bitcoins, you can act as a solo-miner which is aiming for mining 50 BTC chunks-- this would be an option if you had many Terra hashes per second (1 trillion / sec) but for normal miners, this method would take years to get your first payout. This is why Bitcoin Pools were invented. A pool takes all of the mathematical computations and splits them up between anyone that is connected to the pool. Once you reach about .01 BTC in earnings you can have it sent to your Bitcoin wallet. Pools are a collaboration of thousands of mining rigs, and instead of having to earn 50 BTC on your own to get a payout, a pool allows this to be divided into useable chunks that any computer can help with. This means that you dont have to wait years to reach 50 BTC, you can get BTC almost right away because it is chunked into small calculations and split among the pool. Once the entire pool earns 50 BTC, it splits that 50 between all users depending on how much CPU power they have invested. Pools are the best option for almost any miner.
Slush's Pool
Slush's pool is one of the best pools I use. It pays slightly less per hash compared to BTCguild, but seems to have a better interface on their website. Slush's pool was one of the first pools available.
BTCguild
BTCguild is one of the most powerful pools you can join. They end up being the main computer in most blocks of transactions, making up about 37% of all solved blocks. BTCguild is more mainstream, has many more users, and has a great interface on their site.
External Links
- Wall Street Journal - For Virtual Prospectors, Life in the Bitcoin Mines Gets Real
- Official Bitcoin Site
- Wikipedia - Bitcoin
- Mt. Gox - Bitcoin Exchange (to USD etc)
- Bitcoin.it - Bitcoin Hardware Comparison
- Bitcoin Charts - Common statistics about the Bitcoin network