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, thegeth
program is told which Ethereum account should receive block rewards. This is known as the etherbase. Thus, whengeth
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, yourgeth
node doesn't need to have the private key for account being credited, either. This can be done by adding the--etherbase
option forgeth
(the command in the referenced answer is otherwise unchanged). This method really is as simple as the other post states. One command to startgeth
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? .