I've been messing about with TCP/IP stacks on some fairly powerful MCU's lately (mostly the ARM M4 series), and this sort of led to the crazy idea, that I could somehow create an embedded platform specifically for mining (using FPGA's as co-processors). I've dabbled in pool mining just for fun, but came to the realization I actually have no idea how it works, protocol wise. I already have the hardware scattered around my house somewhere, so it could be a fun (ie, time consuming) project!

I understand the bitcoin client does several things, such as validation of all blocks, handling transactions, address, wallets etc. But for an embedded miner solely involved in a pool operation, what exactly would be the minimum functionality? As I understand it, the pool largely handles everything, and all you are required to do is receive/send data through JSON-RPC and process it. Is that really all there is to it? Or am I missing something absurdly important? Any clarifications would be awesome!


That's about all there is to it. You don't need to handle the Bitcoin protocol or worry about the blockchain, the mining pool does all that for you. Just issue a request for 'work' to the pool using the JSON-RPC interface. Hash the supplied work with different nonces over and over until you get a hash less than the given target, and use the JSON-RPC interface to submit successes.

You might want to poll for new work in a separate thread, so you know when the block you're working on has been found by someone else.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.