Mining blocks is technically 'progress free', but you can still get a sense of progress/progression by checking hashes on smaller blocks.
I do feel that the progress meter should be based on actual hashes that got mined, and not based on a calculated hashrate. I think an easy way to achieve this would be to have opencl check for a target that passes a check with 'n-1' leading 0s instead of a check with 'n' leading zeroes. The main program could then tell that a 'miniblock' had been found, and that could be reported to the user.
If the miniblock is also a full block (which will happen approx. 1-in-256 times), then the block gets submitted to siad. This will require the cpu to know what the result was, which is probably best achieved by having the cpu compute it manually. It's probably okay to add a 'blake2b.c' to assist with this.
The big reason for this is that users are going long stretches of time without mining blocks, and they are wondering if it is working. The progress indicator gives you a sense that you are in fact mining blocks, and it also gives you a reasonable sense of how often you'll mine a full block, even if you don't know the network hashrate or the current target.
Mining blocks is technically 'progress free', but you can still get a sense of progress/progression by checking hashes on smaller blocks.
I do feel that the progress meter should be based on actual hashes that got mined, and not based on a calculated hashrate. I think an easy way to achieve this would be to have opencl check for a target that passes a check with 'n-1' leading 0s instead of a check with 'n' leading zeroes. The main program could then tell that a 'miniblock' had been found, and that could be reported to the user.
If the miniblock is also a full block (which will happen approx. 1-in-256 times), then the block gets submitted to siad. This will require the cpu to know what the result was, which is probably best achieved by having the cpu compute it manually. It's probably okay to add a 'blake2b.c' to assist with this.
The big reason for this is that users are going long stretches of time without mining blocks, and they are wondering if it is working. The progress indicator gives you a sense that you are in fact mining blocks, and it also gives you a reasonable sense of how often you'll mine a full block, even if you don't know the network hashrate or the current target.