block time is adjusted to target an orphan rate of 2.5%, the bigger blocks are leading to more orphans, so difficulty is adjusting to slow the network down
10 seconds is just an average of what the network has ran at, it’s not the target block time
Epoch time is targeted at 4 hours and amount of ckb rewarded per epoch is the same, there is a different number of blocks per epoch (this is the design of nc-max). If there are less blocks in an epoch, there is a larger reward per block.
Thanks for your explanations matt!
Yes your understanding is correct.
Regarding the empty blocks, I don’t have an explanation at the moment, but the core devs were researching the issue. It seems there is something that goes wrong in the block building process, from what I can see there is no reason why those blocks should be empty.
The consensus protocol is designed so that all of the transactions that are included in a new block are already verified by other nodes. Additionally, because of the cell model, there is no reason that a miner should mine an empty block even if they are waiting to verify certain transactions.
This is because a transaction specifies inputs and outputs, unlike Ethereum transactions which only specify transaction inputs. (To my understanding) Sometimes miners would mine empty blocks in ethereum (if they could not verify all of the transactions in the previous block) to eliminate the risk that they produced a block with an invalid state transition.
This is a great discussion and I am looking forward to seeing what the research about those empty blocks produces. It seems like NC-Max (CKB consensus protocol) is really designed to show its value under congestion situations.