Thanks for that information. I imagine an Antminer cannot just choose arbitrarily to use this "if it feels like it" because the only way the pool can reconstruct the block header is if there is agreement on how it is built. Nevertheless, there must surely be some standard that dictates such things. Neither a pool nor a miner can operate without strict agreement on what is happening. I do not see anything in the JSON exchanges to suggest there is anything in the negotiation that indicates whether or not this extra piece is going to be used/expected.
Is it perhaps the case that the miner gets to decide that, and if it includes it in the mining.submit JSON, then the pool must agree to go ahead and use it also?
Another possibility (again based on the absence of any negotiation present in the captured JSON traffic I have) is that the miner assumes the pool supports it, but if shares are rejected, then the miner stops using the extranonce on the assumption that if shares are being rejected, the pool must not support it.
Either way, it seems that:
i) I do not change my miners when I relocate to another pool
and
ii) the JSON exchange does not include anything to indicate whether or not the pool expects the extranonce
My conclusion is that the pool must either support it, in which case it uses it and accepts the shares, or rejects shares that include it. It will be clear to a pool that allows it that it is being used by its very presence in the submit. If a pool doesn't support it, then it has to ignore it and must reject the share in which case the miner would know to stop attempting to use it.
What do you think? And surely, this MUST be documented SOMEWHERE!?
Does anyone know of a pool that does NOT use this extranonce? If so, I could attach to it and see if suddenly my miners stop using it. That would be an acid test to answer this question.
-gt-