[Ethereum] How to create and manage the own mining pool

miningmining-pools

I realize that there are already answers to the question, but I don't think they are detailed enough.

For my use case, I have 4-5 gaming PCs, some desktop and some laptop, laying around the house. I would like to create my own pool and put them all to work.

A previous answer states that you simply run geth on a master machine and then run ethminer on your other machines which are pointing to the master. That's great, but how do the other machines know which account they are mining for? Also, is there a way to track productivity on a per-machine basis. I would like to know how much output I am getting from each machine.

Thanks in advance!

Best Answer

In the "just run geth" method, the geth program is told which Ethereum account should receive block rewards. This is known as the etherbase. Thus, when geth generates data for hashing, the work sent to miners implicitly includes this information. In fact, the mining software doesn't even need to explicitly determine what account is being credited! For extra security, your geth node doesn't need to have the private key for account being credited, either. This can be done by adding the --etherbase option for geth (the command in the referenced answer is otherwise unchanged). This method really is as simple as the other post states. One command to start geth on the "master" computer and another command to tell the mining computers where to get work from.

If you want to track productivity per-machine, you can use pool software such as https://github.com/sammy007/open-ethereum-pool . This software includes step-by-step instructions for setting it up on the Ubuntu operating system. You can run it from inside a virtual machine if you don't want to run Ubuntu as your primary operating system. This particular pool software connects to a running geth instance to figure out the current state of the blockchain in order to generate work for miners. Pool software (not just Open Ethereum Pool) uses a lower "virtual difficulty" so that miners can submit solutions to blocks to prove they are doing work; these solutions are not broadcast to the blockchain unless they are of sufficient difficulty to meet the real blockchain difficulty. See also For pool mining, what exactly is a share? .

Related Topic