7 / ln(2), about 10.1 seconds, which is the block
time Kronex targets.
There is no difficulty bomb. Kronex has no ice age, so nothing exponential
is added on top and no scheduled fork is needed to defuse anything.
Parent chains retarget separately
The controller above governs the kHeavyHash seal. Merge-mined work is tracked per parent chain, because their block times span an order of magnitude and a single threshold could not serve all of them.
Each chain’s retarget moves its share difficulty toward the rate that produces
that share count. Where donor protection is configured, the budget also shrinks
linearly once Kronex difficulty passes 75% of the donor chain’s own difficulty
and reaches zero at 90%, so Kronex stops asking a parent chain for more work
before it becomes a burden on it.
Difficulty and share difficulty
Consensus difficulty is not the number a pool hands a miner. The two scales are exactly 2^32 apart, and mixing them up is the single most common integration bug — a pool that converts by hand usually ends up either accepting nothing or accepting everything. Take the boundary from index[2] of the krnx_getWork
result, which is already 2^256 / difficulty, and let the stratum layer scale
from there.
