Index
mining
¶
Pearl mining subsystem.
See spec docs/design/2026-05-05-vllm-pearl-mining-integration-design.md.
Provider modules are soft-imported below — each one fails gracefully if the
mining-pearl (or future mining-pearl-mlx etc.) extra isn't installed.
Classes¶
MiningCapabilities
dataclass
¶
MiningCapabilities(
supported: bool,
reason: Optional[str] = None,
estimated_hashrate: Optional[float] = None,
)
Result of a provider's detect() call.
reason is human-readable and surfaced verbatim by diapason mine doctor
when supported=False.
MiningConfig
dataclass
¶
MiningConfig(
provider: str,
wallet_address: str,
submit_target: SubmitTarget,
fee_bps: int = 0,
fee_payout_address: Optional[str] = None,
extra: dict[str, Any] = dict(),
)
User-supplied mining configuration.
Loaded from the [mining] TOML section by core/config.py.
MiningProvider
¶
Bases: ABC
A mining provider — orchestrates a Pearl mining session.
One provider per (hardware, engine, model) combo. All future
hardware/engine paths (Apple Silicon, AMD, Ollama) implement this exact
contract. See spec §4.4.
Methods:¶
detect
abstractmethod
classmethod
¶
detect(
hw: HardwareInfo, engine_id: str, model: str
) -> MiningCapabilities
Return whether this provider can run on the given combo.
Must be a pure inspection — no subprocess, no network, no Docker. Used
by diapason mine doctor and diapason mine init for fast capability
reporting.
Source code in src/diapason/mining/_stubs.py
PoolTarget
dataclass
¶
Mine through an OJ-operated pool. v2 — raises NotImplementedError in v1.
Sidecar
¶
Read/write helpers for ~/.diapason/runtime/mining.json.
Methods:¶
write
staticmethod
¶
Atomically write the sidecar JSON to path.