Pooled Bitcoin Mining Made Easy… Sort Of

PLEASE NOTE: This guide is outdated and somewhat deprecated, you would probably do best to see my other guide HERE; the information about pools and how they work is still mostly valid (THIS GUIDE WILL BE UPDATED SOON™(8-31))

So, you’ve read my previous article about using your GPU to mine for bitcoins, but now that the difficulty is starting to get high, you may be having a hard time generating any bitcions on your own (especially if you have older hardware). Never fear, there is a solution! ;)
NOTE: You really should take a look at my first article to make sure that your hardware is even capable of supporting opencl, and you should also be using the most recent version of the drivers for your particular graphics device. Also there is a bit of information on setting up Kiv’s GUIMiner in my other guide, which will make setting up pooled mining even easier; I may further update this guide at some point.

This guide is going to cover what is known as pooled mining, or working together with many other miners to share the rewards when a block is generated. This article is going to specifically cover slush’s pool. You should also try to use the most recent version of whichever miner you are using (link to m0mchil’s miner).


Basically, pooled mining has a bunch of miners all working on the same block, instead of each miner working on their own individual block. When a block is generated, payouts are based on how much “work” each miner does, so people with faster hardware will earn more than people who are using slower hardware – but everyone will still receive some bitcoins.

Payments and related calculations happen in rounds, and one round lasts for as long as it takes for one miner in the pool to find a solution to the most recent full strength block on the bitcoin network (one round can last for a few minutes or a few hours).

The way slush’s pool works is each connected miner is given a block of a very low difficulty to work on. The difficulty of blocks on the normal network is 150,000 or more at present, but slush’s pool will be giving your miner blocks of difficulty 1 to solve. Each time you solve one of these “easy” blocks, your miner is credited with one share in the current round. Occasionally, one of these “easy” blocks’ solutions will actually be a real solution for the full difficulty block on the network. When this happens, the 50 bitcoins which are generated are then sent out to every miner with shares from that round (minus 1btc that slush takes as a fee).

The more shares your miner earns before the full difficulty block is found, the more coins you will receive for that round. Shares are generated more quickly on faster hardware, so thus more shares means larger payouts at the end of each round. If you are interested in more specifics, please see the info on slush’s site for payment equations and lots of fun graphs and stuff.

Please Note: This guide is going to assume that you have already successfully set up a working miner. If you have not done so yet, it is strongly recommended that you see the link above in order to get your miner running.

Also something to note, when using the pool you are not actually connecting to your local bitcoin node. You are going to specify for the miner to connect to a remote host and port, and it will also need to supply a username and password (it does not matter if you use the same user/pass from your bitcoin.conf file, and in fact I would recommend that you choose something different to use to connect to the pool). It is actually possible to mine in this way without running a bitcoin node on the same computer as your miner(s).

1. First you need to make an account with the pool. Head over to http://mining.bitcoin.cz/accounts/register/ and sign up for a new account. The username you choose is going to need to be specified later on in your batch file for launching the miner and connecting to the pool. The password you choose here is only going to be used to log into your account on the pool site, the password(s) you use to connect your miner(s) to the pool will be different!

2. When your account is created, log in and go to the “My account” section of the site. There are some things that need to be set up before you are able to connect to the pool and start mining. Wallet needs to be a bitcoin address where you want payouts sent. Send threshold determines essentially how frequently you will receive payouts. Once your confirmed reward goes above whatever you set as the threshold, you will receive a payout. You should set this value to something relatively high, say 1.0 or more in order to avoid paying transaction fees later on. If you set it low you will receive more frequent payouts but may incur transaction fees sometime later on when you try to send these coins somewhere.

There are 4 boxes below threshold: Estimated, Unconfirmed, Confirmed, and Total reward. Estimated tells you how many coins you have likely earned in the current active round. Unconfirmed shows you how many btc are going to eventually be sent to your wallet once they are confirmed. Confirmed and Total are self-explanatory, and this info can also be found on the “My account” page. Don’t forget to click save once you have filled in the above values.

3. Now it is time to add some workers (miners) to your pool account; click the “Register new worker” link. Login suffix is basically just a label, so that if you are using more than 1 miner it will be possible to differentiate between them. Password is the password for this specific miner. This is NOT the password you used to create your account with, this is a new password that you will specify in your batch script, and you should use a different password for each miner/worker. Click save and then go back to your profile to see this newly created worker.

This is where it starts to get a little bit tricky. For argument’s sake, lets say that your username for the pool is user123. If you called your first worker miner0, and set the password as pass0, when you go back to your profile you should now see user123.miner0 and the password pass0 next to it. With this set up it is now time to create a new batch file.

4. Please bear in mind that this next step assumes you already have a working miner set up, so I will not go into much detail here with respect to file paths and arguments which are being specified. I will be following the same filename/location convention as my previous guide, so please refer to that if you have any problems.

Right click somewhere and create a new text document, then rename it to something to indicate that this will be for starting up pooled mining; also make sure that you use the .bat extension. This is going to be mostly the same process as setting up the miner to connect to your local bitcoin node, but this batch script will have new arguments for –host and –port. Given the example username, worker login suffix, and worker password from step 4, this is what should be in your batch file:

start /D”C:\Program Files (x86)\Bitcoin\poclbm_py2exe_20110428″ poclbm.exe –host=mining.bitcoin.cz –port=8332 –user=user123.miner0 –pass=pass0 –device=0 -w 256 -f 60

Simple enough?

If you have multiple GPUs you will need to register a new worker for each one, and make sure that you correctly correlate the different usernames and passwords with your different devices; example:

start /D”C:\Program Files (x86)\Bitcoin\poclbm_py2exe_20110428″ poclbm.exe –host=mining.bitcoin.cz –port=8332 –user=user123.miner0 –pass=pass0 –device=0 -w 256 -f 60
start /D”C:\Program Files (x86)\Bitcoin\poclbm_py2exe_20110428″ poclbm.exe –host=mining.bitcoin.cz –port=8332 –user=user123.miner1 –pass=pass1 –device=1 -w 256 -f 60

Now that you have all of that out of the way, you can just double click on this batch script to launch it. You should see it start up as normal and display your hashrate, but you will now see far more “accepted” messages; each one indicates one share for that miner. NOTE: DO NOT use user123 when you are mining, this is provided as an example only and you should be using a unique username that you used to register with the pool!


You can monitor your workers’ stats on slush’s site as well as see your pending rewards updated as shares are generated. Please note that it takes 100 blocks or approximately 16 hours for a block to mature and the coins to be transferable, so it is likely that you may not start receiving payouts for 24 hours or longer. “Found blocks” is how many full strength blocks your miner has found. If you were not mining for the pool, this would have been a full block (and thus 50btc) that you would have received all to yourself. If you are trying to obtain blocks all to yourself then you will have to mine for yourself, as the only way the pool can function fairly is if each block is divided up evenly among everyone who participated in the round.


Another pool that is popular is deepbit. This pool operates in a similar manner to slush’s, but this one also offers pay per share payouts. This means that instead of getting a semi-random payout at the end of a round, you will get a pre-set amount of bitcoins for each share you generate (right now deepbit is offering something like .0003 btc per share). This method will give you much more steady payouts, but sort of removes any potential luck factor.

For example, if you are using the proportional payment method, if a round is very short and only has something like 1,000 shares for the entire round (instead of 100,000 or more like which can be typical) you may end up getting a very large payout. If you had 4-5 of those 1,000 shares you may end up making something proportionally large for that round, maybe .25 btc. If you were using the pay per share method, those 5 shares would only result in a payout of approx .0015 btc, which as you can see is a rather huge difference.

I do not know which method is better to use, but I personally am a fan of proportional payouts much like slush’s pool is based on.


As always, please leave a comment if you notice any errors or have any problems. I will do my best to address all concerns as quickly as possible and make sure the content of this page is up to date and correct. If you found this useful please consider making a donation to 1Fco4ZuVPDdicW7r4oEucCwWeqPKm9EfRw


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s