Queried by: minersvalidatorsdevelopersanalytics
The Big Picture
Even during low demand, difficulty won't drop below MinDifficulty. This maintains a baseline computational barrier to prevent spam registration via trivially easy POW.
Why This Matters
What's the easiest POW can get? MinDifficulty. Even during quiet periods, you'll need to solve at least this level of computation.
Example Scenario
Query MinDifficulty(netuid=1) returns the difficulty floor. POW will never be easier than this, ensuring minimum computational commitment.
Common Questions
- Why have a minimum?
- Prevents spam. Without a floor, POW during quiet times would be trivially easy, enabling cheap mass registration attacks.
- How low does difficulty actually go?
- After sustained low demand, difficulty approaches MinDifficulty. Check current Difficulty vs MinDifficulty to see how close you are.
Use Cases
- Check best-case POW requirements
- Plan hardware during low-demand periods
- Research registration economics
- Design subnet difficulty parameters
- Build difficulty displays with bounds
From Chain Metadata
MAP ( netuid ) --> MinDifficulty
Purpose & Usage
Purpose
Floor on difficulty - ensures minimum computational barrier.
Common Query Patterns
- Query by netuid
- Check easiest POW requirements
- Plan POW registration
Query Keys
| # | Name | Type | Description |
|---|---|---|---|
| 1 | netuid | u16 | netuid (u16, hashed key component) |
Stored Value
Relationships
Modified By
Related Events
Code Examples
import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443
const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);
// Query MinDifficulty storage
const netuid = 1;
const result = await api.query.SubtensorModule.MinDifficulty.getValue(netuid);
console.log("MinDifficulty:", result);Version History
v101 block 1 Added
v123 block 720,235 Internal re-bind
v149 block 3,014,339 Internal re-bind
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind Current
Runtime Info
View Source- Pallet
- SubtensorModule
- Storage Kind
- Map
- First Version
- v101
- Current Version
- v411