Post
Topic
Board Pools
Topic OP
I'm working on a pool software and wanted to check if I'm on the right track
by
bernardk
on 01/12/2015, 12:31:06 UTC
Hi,

being fairly new to mining pools I wanted to clear some doubts about the approach I'm taking.
I hope that experienced pool developers will be able to point me in the right directions.

Here is my set of questions:

1. I would prefer to use the getblocktemplate protocol instead of stratum. Are there any non-obvious drawbacks in doing so? Do all popular miners support it correctly?

2. For the beginning I would just use a regular bitcoin node and a proxy before it. The proxy would ask the bitcoin node for work and update all miners. Does this sound like a good approach?

3. I guess the bitcoin node also provides the current network difficulty so I would need to change the getblocktemplate in the proxy, lowering the difficulty so miners can actually produce shares. In this case I would keep track of submitted shares with the proxy. Does this sound good?

4. As in BIP23 (https://en.bitcoin.it/wiki/BIP_0023#Basic_Pool_Extensions) explained, the miner can request a new target. Do miners use this? Are they good at choosing the perfect target? Would it be better to adjust the target on the server depending on the shares received from the miner and ignore this?

5. Playing around with bitcoin-qt I noticed when using getblocktemplate and submitting coinbasetxn as one of the capabilities the server answers me with a coinbasevalue and not coinbasetxn. Contrary to the documentation in BIP22 (https://en.bitcoin.it/wiki/BIP_0022#Block_Template_Request). Is this a bug or am I missing something? And it's not really clear to me if I just forward the information without coinbasetxn to miners will they be able to do their work. This whole process of generating coinbasetxn in getblocktemplate is a bit unclear and confusing. Would be great if somebody took the time to explain it.

And of course I would appreciate all other suggestions you have and stuff I maybe missed/overlooked.

Cheers,
Bernard