How to Setup a Solo Mining Pool

I’ve been on a cryptocurrency craze lately and for the past few weeks I have been wracking my brain on how to set up a solo mining pool so that I can buy hashing power an point them to my server as well as using my own hashing power to pool into one effort.

Why?

Because I want to and I know that there are others out there that have been dying to know. I mean I’ve wanted to know how to do it so why wouldn’t someone else want to know. Now they will know without having to go through the pains that I have to figure it out.

Oh, and here’s the best part, you don’t have to download the blockchain or even have bitcoin installed! I know awesome right?

Here’s what you need:

      • A bitcoin wallet, anyone will do
      • A computer to act as the server. I actually have a my own dedicated server but any computer with a Linux OS should work.
      • A Linux OS, I use Ubuntu Server. Don’t ask me how to get this going on a Windoze machine because I don’t know and I refuse to use that kludge ever again on any of my machines.
      • Install the essentials: build-essential, yasm, and git if you don’t have it installed sudo apt install build-essential yasm git -y
      • The ckpool source code git clone https://github.com/ctubio/ckpool
      • A static ip from your isp. You could go with a free service that will resolve to your server but I have not tested this with that configuration. If you don’t plan on having any outside hashing power coming into your network you don’t need this.
      • An internal static ip for the server.

Now for the fun part. Open a terminal window and install the necessary software then clone the git hub repository. Type the following:
cd ckpool
./autogen.sh
./configure --without-ckdb
make

Assuming everything went well the binaries are in the src folder, but before we get our mining pool going there is some editing to do. But first lets copy the config files into the src folder: cp *.conf src

Now cd into the src folder and using you favorite command line editor edit the ckproxy.conf, I use nano simply because it come with my Ubuntu Server.

nano ckproxy.conf

Once opened it will look like this:

{
"proxy" : [
{
"url" : "ckpool.org:3333",
"auth" : "user",
"pass" : "pass"
},
{
"url" : "backup.ckpool.org:3333",
"auth" : "user",
"pass" : "pass"
}
],
"update_interval" : 30,
"serverurl" : [
"192.168.1.100:3334",
"127.0.0.1:3334"
],
"mindiff" : 1,
"startdiff" : 42,
"maxdiff" : 0,
"logdir" : "logs"
}
Comments from here on are ignored.

Edit it to look like this:
{
"proxy" : [
{
"url" : "stratum+tcp://solo.ckpool.org:3333",
"auth" : "your bitcoin wallet address goes here",
"pass" : "anything you want goes here"
},
{
"url" : "stratum+tcp://solo.ckpool.org:443",
"auth" : "your bitcoin wallet address goes here",
"pass" : "anything you want goes here"
}
],
"update_interval" : 30,
"serverurl" : [
"your internal static ip goes here:3334",
"127.0.0.1:3334"
],
"mindiff" : 1,
"startdiff" : 42,
"maxdiff" : 0,
"logdir" : "logs"
}
Comments from here on are ignored.

As you might be able to tell what this does is set up a proxy so that you can pool multiple miners into one effort to mine at ckpool.org . This has the advantage of not having all the overhead of downloading the blockchain and setting up bitcoind to run in daemon mode for solo mining. It is entirely possible to use the ckpool software to start a mining pool service but that is beyond the scope of this article.

How to mine:

You need to start up the ckpool like so: ./ckpool -A -p

Assuming everything went well your mining pool should be up and running. Now all you have to do is point your miners to the pool. There are a few examples that have worked for my miners.

using a block erupter:
cgminer -o your internal ip here:3334 -u your bitcoin wallet address here -p anythingyouwanthere

cpu mining:
./minerd -a sha256d -o stratum+tcp://external ip address here:3334 -u your bitcoin wallet address here -p anythingyouwanthere

ant miner:
Pool 1 external or internal ip:3334
Pool 1 worker your bitcoin wallet address
Pool 1 password anythingyouwant

These three examples are the ones that I have tested and work on my system. Feel free to experiment.

If you found this to be useful then how about sending a few coins my way if you so choose.

bitcoin 373d6bXpLgcEFoATkP84SQQ1XLwszGQa6Y

Leave a comment