No SPV and no Empty Blocks ...
It is too bad that this needs to even be stated. Mining Empty Blocks defeats the purpose of mining and thereby devalues mining itself. Mining is to continue the blockchain and
verify transactions, right?
I don't have enough knowledge on the subject, but I don't understand what advantage anyone thinks they get by mining Empty Blocks. Even if it was 30 seconds quicker to get the work changed over, does it really increase their luck in solving it quicker than any other pool/miner?
I found an empty block once, I wasn't particularly looking for it and it just happened. I thought it just happened sometimes because you just happen to satisfy the proof-of-work and you couldn't force it or look for those only.
...
Your pool/bitcoind configuration decides what transactions are in your block work.
If you configure your bitcoind to ignore transactions with e.g. high relay fee requirements or tiny block size limit, you can drastically reduce the amount of transactions in your blocks you find.
Some pools generate them on purpose - e.g. SPV mining or like how eligius works
The exception to this is if you actually empty the entire transaction list in your bitcoind and then request new work before any new transactions come in.
The two ways to empty it are:
1) restart bitcoind (yeah that should be rare) and ask for work exactly when it first starts before it gets any transaction (very rare)
2) create a block using all the transactions you have in your bitcoind then request new work before any new transactions come in (next to impossible - and also even less likely with how kano.is works)
In the case of kano.is I know it has only happened once ... coz the code didn't allow it ... that problem was item 1)
So I had to fix it to allow it recently.
https://bitbucket.org/ckolivas/ckpool/commits/3e112c73e3c5e4bf59965b263cf65b5547514c88Of course that wouldn't be a case of ckpool ignoring a block if one was found, that was just the database back end of ckdb needed fixing to store the empty work information.
...
Does this pool somehow refuse the 25 BTC if it happens to hit on one? Would anyone?
It wont happen by accident except in such rare situations that it's pretty much valid to say it wont at all unless you configure it to happen.
Even in the rare case where we had empty work here, that was only block work sent to miners, no one actually found any blocks when it happened for the very short time they had 'no transaction' work.
If someone did happen to find a block, yes we'd all get a 25BTC block instead of the typical almost 1% more than that.