Simplified:
A mining pool is a program that connects to a Bitcoin full node to get "work" over an RPC interface and divides that to miners over Stratum.
As a miner, you are looking for for a hash smaller than a threshold that correlates to the current difficulty. You are looking for a block that starts with, say, 10 leading zeroes. Once in a while you will find a block with 8 leading zeroes. You send that info to the pool, thereby proving "I did enough work to find one of those, so I am really contributing to finding the block". That is known as a share.
The pool keeps track of all shares for the current block search. If your pool finds the block, it gets a certain amount of BTC (currently 12.5). Those go to an address of the full node mentioned earlier, hence into the pool operator's hands. Based on your number of shares and the number of all other shares, the pool calculates how much you deserve. It then communicates over the RPC API, telling the node to send out the previously mined Bitcoins, which handles those requests the same way as if you were sitting on your computer, doing those transactions manually over the wallet GUI
Could you please go in to more detail – Barney Chambers – 2017-12-26T17:46:39.003
1@BarneyChambers, more detail on what? (More detail on "more detail"! :) This might help to get you the answer you're looking for. – brec – 2017-12-26T17:54:08.023
Well the first detail I would like are the specific RPC calls that are used. It isn't clear to me when you say things like
the same way as sending Bitcoin to someone else, that to me is a very ambiguous statement – Barney Chambers – 2017-12-26T19:29:46.070It depends on the software that the mining pool is using. It is done in exactly the same way that other services process Bitcoin transactions. You can easily google the various methods people do this. If they are using Bitcoin Core, they are probably using the
sendmanyRPC command. – Andrew Chow – 2017-12-26T19:41:53.317