0. all blocks must be merge mined
1. auxPOW nonce must always be chainID
2. parent nonce must never be chainID


Yes, this is what I'm thinking about. Except that 2) is not necessary, because 0) already ensures that PoW cannot be reused - at least, I think so. Do I miss anything? Restricting the allowed nonce could lead to confusion with miners, even though the chance of actually hitting exactly the forbidden nonce while mining is negligible.phelix wrote:ok, then I guess one minimal solution would be:
0. all blocks must be merge mined
1. auxPOW nonce must always be chainID
2. parent nonce must never be chainID
![]()
Yeah, probably you are right.domob wrote:Yes, this is what I'm thinking about. Except that 2) is not necessary, because 0) already ensures that PoW cannot be reused - at least, I think so. Do I miss anything? Restricting the allowed nonce could lead to confusion with miners, even though the chance of actually hitting exactly the forbidden nonce while mining is negligible.phelix wrote:ok, then I guess one minimal solution would be:
0. all blocks must be merge mined
1. auxPOW nonce must always be chainID
2. parent nonce must never be chainID
![]()
Exactly, these two changes are what I was thinking about as well. If there are no objections / issues uncovered in the near future, I'll start working on a patch. This probably requires a bit of refactoring, but is otherwise straight-forward (I guess).phelix wrote:Yeah, probably you are right.domob wrote:Yes, this is what I'm thinking about. Except that 2) is not necessary, because 0) already ensures that PoW cannot be reused - at least, I think so. Do I miss anything? Restricting the allowed nonce could lead to confusion with miners, even though the chance of actually hitting exactly the forbidden nonce while mining is negligible.phelix wrote:ok, then I guess one minimal solution would be:
0. all blocks must be merge mined
1. auxPOW nonce must always be chainID
2. parent nonce must never be chainID
![]()
So we have 0.) to distinguish between parent and auxPOW blocks and 1.) to distinguish between different auxPOW chains/chain variants (which is only necessary for spv chain fragments or Huntercoin).
Sure can't hurt.biolizard89 wrote:Should I ping Luke-Jr and see what he thinks about this topic? He's always given us good advice, and he's knowledgeable about merged mining.
yepdomob wrote:One more thing: I initially thought that we could still allow ordinary mining for testnet and regtest mode (where it does not matter that you may get two blocks at once by merge-mining with Namecoin itself). But I think this makes things more complicated, thus I suggest that we remove ordinary PoW completely.
ACKFor this, I will change the "generate" and "setgenerate" mining commands to automatically create a minimal auxpow in the background. I also plan to remove "getblocktemplate", as it seems to make no sense for a merge-mined coin. Is that ok for everyone?
So we probably will have more time for the hardfork.sipa: ok, i think bip9 is moved a bit back in priority