Hyperparameters
network_pow_registration_allowed
Whether proof-of-work registration is allowed, as opposed to burned registration only.
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 thePOWRegistrationDisablederror.
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:
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_allowedNominally owner-settable as a boolean:
btcli sudo set --netuid N --name network_pow_registration_allowed --value falsebut on the current runtime the underlying extrinsic always fails with
POWRegistrationDisabled, so the value cannot actually be changed.
Related
registration_allowed ·
difficulty ·
min_difficulty ·
max_difficulty ·
min_burn ·
max_burn