Skip to main content
Kronex can be mined two ways, and they are not alternatives — both run at once. This page covers direct mining. For merged mining, read Merged mining for how it works and Pool integration for the full node-to-pool contract. The short version: work already being done on one of those four chains can commit to Kronex as well and be paid for it, without giving up the parent-chain reward and without changing what the hardware is doing.

Direct mining

Kronex is sealed with kHeavyHash. The pre-image is the standard kHeavyHash pre-image byte for byte, so GMiner, lolMiner, BzMiner, IceRiver and Goldshell hardware all mine Kronex with no firmware change. Only the source of work differs.

What the node must be doing

A node hands out work only when it is building blocks:
The reward goes to the node’s etherbase. A stratum login is only an accounting label as far as the chain is concerned.

Three methods

All three are mirrored under eth_, with the names stock go-ethereum uses, so existing ethash pool code needs only its hashing swapped out.

Two things that break integrations

Index [10] is in milliseconds, and it is not the block’s timestamp. It is the TIME of the pre-image, already in the right unit. Parse it as a 64-bit integer and pass it through unchanged — converting it, or storing it in a uint32, produces work nobody can solve. The header’s own Time stays in seconds and has nothing to do with this value.
Share difficulty and consensus difficulty are 2^32 apart. Index [2] is the exact target of the current work; the stratum scale is (2^224 - 1) / difficulty. Converting network difficulty by hand is how a pool ends up counting hashrate four billion times too low.
MixDigest must be zero — kHeavyHash has no DAG, and consensus rejects a non-zero digest.

Running a pool

The full node-to-stratum contract — the work package field by field, the pre-image with its golden test vector, both difficulty scales, nonce-space splitting across connections, submission rules and a diagnostics table — is in the pool operator reference, with complete client implementations in Go, Rust, Node.js and Python.