Null Consensus
Large subnets and exact weight ratios · Upcoming
What changes
Subnet owners can opt into a second epoch mechanism. Null consensus takes miner incentives from the highest-stake UID, which holds the sole validator permit. Ties select the first UID. Only that permit holder may submit or commit weights. All staked UIDs retain proportional dividends, including inactive UIDs and those without permits. When the selected row has no valid weights, every registered UID shares the miner budget equally. Yuma remains the default for existing and new subnets.
Null skips consensus and bond calculations and leaves bond storage unchanged. The epoch and payout interfaces remain compatible. Rewards to an existing sole-owner staking pool increase its balance without rewriting ownership shares; shared pools and collateral retain their accounting protections. Existing submission stake thresholds, stale-destination checks and commit-reveal protections still apply.
Capacity and switching
Null shares a 2,500-UID capacity budget across emission mechanisms: 2,500 with one mechanism, 1,250 with two, and 625 with four. Switching to Null preserves current capacity until the owner raises it. Returning to Yuma requires the registered population to fit its shared 256-UID budget; successful switching also clamps configured capacity. Pruning is an explicit owner action, with at most 64 UID deletions per transaction. Owners repeat the same target until completion; pending weight commits are cancelled before UID compaction. Returning to Yuma restores the previous validator limit, clamped to the remaining capacity.
Registration without upfront TAO
Owners can enable proof-of-work registration on non-root subnets, including large Null subnets. The SDK mines a recent challenge and the CLI exposes it throughbtcli subnets register --netuid 1 --pow. A direct, zero-tip proof registration pays no transaction fee, TAO burn or initial collateral purchase. Burn registration remains available when enabled. Burn registrations raise only burn cost, and PoW registrations raise only PoW difficulty. They share the multiplier and per-block half-life, with separate bounds and a team-controlled PoW minimum. Owners can enable either route or both, and must leave at least one enabled. PoW defaults to disabled for new subnets; previously stored explicit toggles are retained. It retains per-block registration limits, pruning and immunity protections.
The Rust miner uses all discovered OpenCL GPUs by default, with CPU fallback. Long searches refresh the latest block hash every twelve seconds. Proofs bind the subnet and both keys, use a five-block freshness window, and cannot reuse an accepted challenge for the same hotkey. New hotkey associations respect a 256-entry coldkey ownership and staking work limit; existing associations can register on additional subnets. Root registration remains separate.
Precise rewards and large weight submissions
Null stores submitted unsigned 16-bit weights without max-scaling. The SDK and CLI provide an explicit raw-integer path, including JSON file input for large rows. Exact wide integer arithmetic computes rewards before display values are quantized. Whole-unit remainders are allocated deterministically in UID order; total miner emissions never exceed their epoch budget. Fractional entitlements are not carried to later epochs.
Null timelocked ciphertexts can be up to 32 KiB divided by the mechanism count, leaving room above a full row at the corresponding UID ceiling. Queues share byte and count limits across mechanisms, replace a hotkey’s own pending row, and allow the leading eligible validator to displace lower-priority commits. Mode changes wait for pending commits to drain. Yuma retains its 5,000-byte admission limit.
# Subnet owner: switch, then raise capacity
btcli hparams set --netuid 1 --name epoch_consensus --value Null
btcli hparams set --netuid 1 --name max_allowed_uids --value 2500
# Validator: weights.json contains {"2": 65534, "3": 1, ...}
btcli misc weights set --netuid 1 --raw-u16 --weights-file weights.jsonSee the Null consensus guide for validation rules, integer rounding and returning to Yuma.