Hyperparameters

network_pow_registration_allowed

Whether proof-of-work registration is allowed, as opposed to burned registration only.

View as Markdown

network_pow_registration_allowed is the per-subnet flag that historically let owners choose whether miners could register by proof-of-work (grinding nonces against difficulty) or only by burning TAO. Miners reading the metagraph still see the flag, but on the current runtime it is a deprecated remnant: PoW registration has been retired chain-wide.

How it works

Storage is NetworkPowRegistrationAllowed in pallets/subtensor/src/lib.rs, exposed through the metagraph RPC as pow_registration_allowed. Two pieces of code make its deprecation concrete:

  • The migration migrate_clear_deprecated_registration_maps (pallets/subtensor/src/migrations/) cleared every stored entry, so all subnets read the storage default.
  • The AdminUtils setter sudo_set_network_pow_registration_allowed (pallets/admin-utils/src/lib.rs, call index 20) no longer writes anything — it unconditionally returns the POWRegistrationDisabled error.

Independently, the PoW register extrinsic (pallets/subtensor/src/macros/dispatches.rs) ignores its work arguments and routes to the burned-registration path, so the flag has nothing left to gate. Both ends of the wire are cut:

A toggle wired to a dead end

On the current runtime, both sides of this flag are disconnected. The setter refuses every write, and the register extrinsic no longer consults the flag on its way to the burned-registration path.

Trying to set the flag

sudo_set_network_pow_registration_allowed(true)

  ↓

Err(POWRegistrationDisabled)

What registration does meanwhile

register(block, nonce, work, …)

  ↓ work args ignored

do_register() — burned path

network_pow_registration_allowed
  ↪ read by nothing on this route

The stored value (cleared to the default by migration) is still reported in the metagraph as pow_registration_allowed, but no code path branches on it.

Reading and setting

btcli sudo get --netuid N --name network_pow_registration_allowed

Nominally owner-settable as a boolean:

btcli sudo set --netuid N --name network_pow_registration_allowed --value false

but on the current runtime the underlying extrinsic always fails with POWRegistrationDisabled, so the value cannot actually be changed.

registration_allowed · difficulty · min_difficulty · max_difficulty · min_burn · max_burn