I've been fighting with this issue for a few days and don't seem to be getting anywhere, so I'm throwing up my hands and hoping someone can help out.
Goal: Run a private testnet that can validate blocks at the normal 10min/block average rate using only a single CPU mining process getting about 500kh/s.
Is this simply impossible without massive changes to the code?
Following the advice
here I've recompiled bitcoind and tried various different shift's on bnProofOfWorkLimit from the suggested 15 all the way down to 2, and none seem able to generate blocks at that extremely slow hash rate. I did not adjust the time interval target at all as the stackexchange link suggests -- I don't need to quickly generate a bunch of blocks, I'm happy (and prefer) if they're only generated as quickly as they are on the normal network.
What I do appear to be seeing is it trying to generate blocks for a while and failing, but then succeeding once the 20 minute rule kicks in, so I'm toying with just changing that down to equal to the target (rather than double it), but this seems like a hackish approach.
So does anyone know what else in the code do I need to change in order to make the blocks easier for such a slow 'miner' to create, while leaving the testnet style adaptive difficulty in place and keeping the average at around 10min to start with?