Mar 25

How To Set Up Pooled Bitcoin Mining In Windows

(Please Note: This guide is mostly up to date…. syntax and URLs may not be 100% correct, please extrapolate if you have to and let me know in the comments so I can try to fix stuff… Updated 4-10-13)

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 absurd, you may be having a hard time generating any bitcions on your own (especially if you have non-specialized hardware). Never fear, there is a solution! cool
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, server, 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 http://user123.miner0:pass0@api2.bitcoin.cz:8332 --device=0

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 http://user123.miner0:pass0@api2.bitcoin.cz:8332 --device=0
start /D"C:\Program Files (x86)\Bitcoin\poclbm_py2exe_20110428" poclbm.exe http://user123.miner1:pass1@api2.bitcoin.cz:8332 --device=1

(And for other pools, you would use their server and port, etc.)

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 was deepbit (still online). 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 "big" for that round, maybe .0025 btc. If you were using the pay per share method, those 5 shares would only result in a payout of approx .0000146 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 1PndM1mwpET9R5TrVYhEMP3NMbaTinPytY


41 comments so far...

  • Richard Said on March 25th, 2011 at 23:20:

    Cool i have join the pool and works good :)

  • Dobrodav Said on April 11th, 2011 at 10:48:

    Without describing GUI miner interface, that  manual are not up to date. But GUI miner is much more user friendly than command line miners, so that will not be  a real problem.
    Look at : 
    http://www.bitcoin.org/smf/index.php?topic=3878.0

  • Dobrodav Said on April 11th, 2011 at 10:53:

    Sorry, i`m use "GUI miner" termin, but that is not correct - GUI mining interface is kind of app, that allow to work with different miners in simply way. Great stuff  :)

  • LobsterMan Said on April 12th, 2011 at 03:12:

    I mentioned Kiv's GUI in my first guide to bitcoin and I'm pretty lazy but I may add it to this one as well (at some future date…)

    These guides are kind of meant to show the manual approach on purpose so that you can see what's going on and maybe also learn a bit about how to use windows that you didn't know before :P

  • NewsLobster Y^_°V – How To Set Up Pooled Bitcoin Mining In Windows « My Blog Said on April 20th, 2011 at 11:43:

    [...] Y^_°V – How To Set Up Pooled Bitcoin Mining In Windows By admin, on April 20th, 2011 NewsLobster Y^_°V – How To Set Up Pooled Bitcoin Mining In Windows. Uncategorized    Documentary – DNA: Human Race [...]

  • a10112 Said on May 2nd, 2011 at 14:37:

    how would i setup 2 miners? just add a second set of:
    rpcuser=user1
    rpcpassword=pass1

    or user1,user2 etc ?

  • LobsterMan Said on May 2nd, 2011 at 20:12:

    a10112: you don't need to do anything with your local bitcoin.conf file if you are using a pool, and I describe above how to mine with 2 or more cards in the same pool.

    If you are still unsure how to set up this file or want to mine for yourself, please see my first guide linked at the top of this article for full details on how to do all of that.

  • Scrappi Said on May 8th, 2011 at 13:02:

    Setting it up looks to complicated and to involved.  I am internet and computer illiterate.   It would be nice if there were an easier way to do it. 

  • Bob Said on May 14th, 2011 at 22:16:

    What a great set of blog posts. Got everything set up just by following your instructions. Much thanks!

  • Bob Said on May 14th, 2011 at 22:18:

    One more thing, you might want to add more details about launching stuff from command prompt. Im familiar with it, but you left out a lot of details for someone who has never used it before.

  • LobsterMan Said on May 15th, 2011 at 18:44:

    Bob: I tried to keep this article somewhat short on purpose, my previous guide to just setting up mining locally on your computer covers the command line stuff much more in depth, which is why I recommend that people read that article first :P

  • joe Said on May 21st, 2011 at 16:04:

    Well I did what was in your article, made a text file and put the .bat at the end but I am unsure as how to run this as I am trying to get DiabloMiner to work also so did I do something wrong with this file because when I double click it just opens to notepad? Do I h ave to get DiabloMiner to start working before I can run my miners?

  • LobsterMan Said on May 21st, 2011 at 20:34:

    joe: this guide doesn’t explicitly cover diablominer and you will likely need to use slightly different arguments to get that to work, it also sounds like you do not have file extensions being displayed in windows

  • John Said on May 26th, 2011 at 09:18:

    hi, I used your other article to get local mining going yesterday. Worked fine, once I actually followed the directions.  :-)
    I have other computers on the local net here that also have GPUs. Rather than switch to a pool, I would like to just run the poclbm.exe on the others, and have them use the bitcoin.exe server running on the first setup.  Is it as simple as pointing at the IP & port on that computer, or do I need to do more setup on it to be a non-local server?

  • 1.1GHash_aint_nothing_in_May Said on May 28th, 2011 at 21:23:

    Some quick number crunching shows that Deepbit is presently charging, on average, almost five times more than slush to participate in a pool.  As of May 28 2011 at 9:16 P.M. EST Deepbit pays 0.00010347617357376 per share submitted and there is an average of 419,457 shares per block with a 24 hour running average of 436,164 share per block in the last 24 hours.  Simple math shows the payout per block averages approximately 43.4038BTC and 45.1326 respectively versus a flat payout of 49BTC per block for Slush's pool.
    Obviously on a really quickly solved block deepbit's operator makes a killing.  However, if it takes more than 483204 shares to solve then the operator will begin to lose some money, so that risk factor might explain the premium, provided that everything is kosher.

  • FreeJAC Said on June 1st, 2011 at 00:31:

    Alright total n00b question. Where do I get the wallet code?
    Wallet needs to be a bitcoin address where you want payouts sent.

    I'm assuming this is the long code in bitcoin called your bitcoin address??

  • LobsterMan Said on June 1st, 2011 at 02:31:

    1.1GHash_aint_nothing_in_May: Yeah I don't know…I've always gotten a kind of "shady" vibe from deepbit, that's why I endorse slush's pool :P

    FreeJAC: If you open up your address book from bitcoin you can see/generate new addresses; the important ones are the receiving addresses which are yours and where you can receive coins. You want the wallet field in the pool account page to point to any of your receiving addresses. All of this stuff is stored in your wallet.dat file on your hard drive and you really don't need to worry much about that unless you want to make a backup or something.

  • Joel Thomas Said on June 1st, 2011 at 16:49:

    I downloaded m0mchil's poclmb client, and it wouldn't work.
    Firstly, after some googling I adjusted the .bat code to read:
    start /DC:\Progra~1\Bitcoin\poclbm_py2exe_20110428 cmd /k poclbm.exe -d0 --host=pit.deepbit.net --port=8332 --user=xxx --pass=xxx --device=0

    pause
    …so that the window wouldn't close so fast I didn't know what the problem was.
    Then I had to use Process Monitor to work out what the ever-so-informative error messages actually mean.
    I separately downloaded OpenCL.dll and poclbm.py and saved them in the places it was looking for them…
    And then I check out this thread…
    http://forum.bitcoin.org/?topic=4080.0
    I know you can't think of everything, but I wish you'd have told me none of this works with an Intel graphics chip!
    Never mind, that same thread mentioned ufasoft so I'm gonna try that…

  • LobsterMan Said on June 2nd, 2011 at 02:38:

    Joel Thomas: My guide suggests that you should be somewhat familiar with setting up mining locally and also links to my other guide on how to do just that. My previous article also explains how to determine if your hardware will even support opencl and all of that; you may benefit from taking a look :P

  • Phyzx Said on June 3rd, 2011 at 16:17:

    I'm having a problem. When I specify user123.miner0 in the .bat file, I get a login error. When I specify just miner0, it logs in fine and I see the described black screen with kilohash counter. However, after an hour I'm still on 0.000000 BTC on mining.bitcoin.cz even though I'm supposedly contributing 55MH/s. Is this normal?
     

  • LobsterMan Said on June 5th, 2011 at 21:41:

    Phyzx: user123 is just an example username and you should not be using that in your batch script. Please go through and read the guide again and it should indicate where you are supposed to use your own username for your account on the pool

  • Logan Said on June 6th, 2011 at 12:08:

    I have read both your guides and they are both great.  I am having an issue connecting to a pool tho.  The error I am receiving is:
    Exception in thread Thread-2:
    Traceback <most recent call last>:
    File "threading.pyo" line 525, in _bbootstrap_inner
    File "threading>pyo", line 477, in run
    File "BitcoinMiner.pyo", line 306, in miningThread
    File "pyopencI\_init_.pyo", line 207, in kernel_call
    LogicError: cIEnqueueNDRangeKernel failed: invalid work item size
     

    I am also having an issue with my GPU miner closing from time to time for no reason, that I can fine.  Any help with these issues would be greatly appriciated.  Thanks

  • newfag Said on June 7th, 2011 at 15:39:

    guys, i read both of this guides and im minepooling at 2500k/hash p/s, is there any chances i can make 20 BC soon ?

  • LobsterMan Said on June 7th, 2011 at 15:48:

    Logan: sounds like a drivers or otherwise incorrectly configured hardware issue…maybe try adjusting the -w argument as well

    newfag: probably not :P

  • bupojung Said on June 13th, 2011 at 11:22:

    I have read your previous guide to setup a miner locally and it works well.
    but when i follow the instruction of this guide to setup a pool miner. a problem comes out like this:
    problems communicating with bitcoin RPC.
    Any idea?

  • anon Said on June 13th, 2011 at 16:51:

    hey
    i dont trust any mining pools and their ops, i want to setup an own mining pool to consolidate my own machines. is there instructions/how to setup this private type of grid?
    thnaks
     
     
     

  • LobsterMan Said on June 14th, 2011 at 13:43:

    bupojung: I think that some of the pools have been suffering a DDoS attack lately, unfortunately you may just have to wait it out or mine for yourself in the meantime

    anon: Not really sure…there may be a way, but I don't have any experience here

  • anonymous-grid Said on June 17th, 2011 at 10:59:

    follow the procedure here on this site to setup a lokal miner,
    then expand it with the following steps: (on windows)

    create a .bat to start bitcoin on your main server with:

    start /DC:\bitcoin-0.3.21-win32 bitcoin.exe -server -maxconnections=256 -min -rpcconnect=192.168.1.123 -rpcallowip=192.168.1.*

    where "192.168.1.123" is your SERVER IP and "192.168.1.*" your used subnet

    edit your bitconf.conf file and enter the same entries here (needed due to a bitcoin client bug)

    start your server with the .bat and let it establish connections.

    swicht to your renderslave/miner…

    You dont need bitcon client installed on the renderslave.

    Grab a copy of Phoenix client (available here: http://forum.bitcoin.org/index.php?topic=6458.0) and expand it.

    create a .bat to start the renderslave with:

    start /Dc:\phoenix-1.50 phoenix.exe -u http://user:password@192.168.1.123:8332 DEVICE=0 PLATFORM=0 VECTORS AGGRESSION=11 FASTLOOP=false WORKSIZE=128

    if you have more then one gpu, just double the line and adjust the DEVICE parameter(s).

    start your server with the .bat and let it establish connections.

    if your setup is working:

    create a shortcut in the autostart folder with the .bat file.

    setup autologin via "control userpasswords2"

    enjoy your lokal gpu mining grid

     

  • abdoalex92@yahoo.com Said on July 21st, 2012 at 16:24:

    ?? ??? ?????? ?? ??? ?? ????? ?? ???? ????? ?????

  • Anonymous Said on September 3rd, 2012 at 11:04:

    HALAW 

  • BTCM Said on February 10th, 2013 at 08:00:

    I think my tutorial is a bit simpler, but with less options: http://thebitcoinmaster.blogspot.com/2013/02/how-to-join-mining-pool.html

  • Mike Said on March 16th, 2013 at 15:36:

    Has anyone got one of these servers up and running yet?: http://www.bitminingservers.com

  • needhelpplz Said on April 3rd, 2013 at 15:57:

    hey i managed to follow the guide as far as making the batch file i made it and added my username and password but i dont know where i need to move the file to as when i double click it it just opens notepad? the guide was great until this part then it just lost me :S

  • Bitcoin Said on June 13th, 2013 at 05:36:

    It’s hard to come by knowledgeable people for this subject, however, you seem like you know what you’re talking about!
    Thanks

  • jacob Said on June 14th, 2013 at 09:48:

    Hey I have one question, after doing the whole guide, It doesn't seem like anything happens.. The .bat opens cmd prompts and says things in 2 windows I'm not fast enough to read, then they close.. 

    How do i actually get it to start mining, is there any visible indication so i know its doing anything, since I don't think the scripts are working..?

  • Web Journal – [littlefixit] » Beginner’s Guide to Bitcoin Said on August 12th, 2013 at 15:12:

    […] How to set up pooled bitcoin mining in windows […]

  • Guide: Bitcoin-Mining | The LastBlog Said on November 29th, 2013 at 12:18:
  • Beginner’s Guide to #Bitcoin Mining | The Crypto-Currency Mining and Exchange Guide Said on December 4th, 2013 at 18:17:

    […] How to set up pooled bitcoin mining in windows […]

  • Eddie Said on March 17th, 2014 at 13:32:

    I tried to join the pool mentioned, after waiting for 20 minutes for the confirmation email, the site wouldn't accept my login info, I think the captcha just doesn't work…. I tried probably 20 times over 30 minutes, then the website just completely disappeared, now my computer can't even find it

  • http://Teeterhangupreviews.Blogspot.com Said on September 26th, 2014 at 07:44:

    I completely understand everything you have said.
    Really, I browsed through your many other posts and I think
    you happen to be totally right. Fantastic job with this site.

  • Website Said on September 28th, 2014 at 21:11:

    Langley had every advantage, because you can’t destroy numbers in the shares can be
    validated, and that is inherently difficult to trace transactions carried out
    using Bitcoins is much easier to create many more.

leave a reply