Skip to main content
Kronex keeps the shape of the Ethereum EIP-100 difficulty controller — uncle aware, clamped at -99, stepping by one 2048th of the parent difficulty — and changes two things about it.
The duration divisor is 7, not 9. That moves the solo-mining equilibrium from roughly 13 seconds to 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.