quip-solver README

The project's README from github.com/QuipNetwork/quip-solver. As one markdown file: README.md.

quip-protocol

Experimental software. Use at your own risk. No production warranties.

The v0.3 mining stack for the quip-protocol-rs Substrate chain. A coordinator follows the chain head and stages Ising problems for the miner subprocesses; when a solution clears the difficulty gate, the coordinator submits a QuantumPow.submit_proof extrinsic. The miners run simulated annealing and Gibbs sampling on CPU, CUDA, and Metal, and quantum annealing on D-Wave hardware.

This is a Rust workspace. The coordinator and the chain integration are Rust. The solver contract — the wire protocol, the consensus primitives, and the shared solver harness — lives in quip-solver-core and is consumed from crates.io. The miner binaries ship from their own repositories.

Repository layout

The miner binaries live in quip.network/quip-miner-{cpu,cuda,metal,dwave}. The quip-proto, quip-protocol, and quip-solver-core dependencies come from crates.io at v0.0.0; their source of truth is quip.network/quip-solver-core.

CUDA card support

The CUDA miner supports NVIDIA GPUs with compute capability 7.0 through 12.1 (Volta through consumer Blackwell). The floor is set by the kernels (they use __nanosleep, an sm_70+ instruction); the ceiling by NVRTC 12.9, which the quip-miner-cuda image ships. The host needs an NVIDIA driver from a CUDA 12.9-supported branch (r535 or newer) and the NVIDIA container runtime (--gpus all). Kernels are JIT-compiled per card for its detected capability; capabilities outside the range are clamped, and capabilities the toolkit lacks (for example 8.8) fall back to the next lower architecture via the driver's forward-compatible PTX JIT.

Documentation

The solver contract — the wire protocol, the Sampler trait, handshake, credits, cancel, and exit codes — is specified in the quip-solver-core repository (SPEC.md).

Build and run

The workspace builds from the repository root (toolchain pinned in rust-toolchain.toml):

cargo build --workspace

Run the coordinator against a config that lists the miners and the validators:

quip-coordinator --config ./docker/config.toml

See AGENTS.md for the full command set and COORDINATOR.md for the run model.

Testing

The workspace tests run offline by default:

cargo test --workspace

Live devnet integration tests

crates/quip-coordinator/tests/devnet_submit.rs drives the real chain client against a running node. The tests are #[ignore]d and gated on the QUIP_DEVNET environment variable, so the default cargo test run stays offline. Three milestones:

Start a local devnet from the chain repo (quip-protocol-rs) with make local-3-node or docker compose up. Both publish node RPC on ws://127.0.0.1:9944. Then run:

QUIP_DEVNET=ws://127.0.0.1:9944 \
  cargo test -p quip-coordinator --test devnet_submit -- --ignored --nocapture

One constraint: use a loopback URL (ws://127.0.0.1:…) or wss://. subxt rejects plain ws:// to a non-loopback host as insecure. To reach a remote node, tunnel its RPC port to localhost first.

M3 self-seeds — it proposes its own order against the canonical plain-ising-v1 spec the runtime seeds at genesis, so it runs on a fresh devnet with an empty mempool.

What changed from v0.2

In v0.2 this repository was a single Python mining stack that attached to the chain. v0.3 splits it apart:

License

AGPL-3.0-or-later. See LICENSE.

quip-solver (QuipNetwork/quip-solver)

Searching Database…

Что это такое?Это стек майнинга для блокчейна quip-protocol: координатор, который следит за цепочкой, превращает задачи оптимизации Изинга в головоломки proof-of-work, и бинарные файлы майнеров, которые решают их с помощью имитированного отжига, сэмплирования Гиббса или настоящего квантового отжига на оборудовании D-Wave.
Это один общий бинарник или несколько частей?Это рабочее пространство Rust с бинарным файлом coordinator (quip-coordinator) и отдельными бинарниками майнеров, которые поставляются из собственных репозиториев (CPU, CUDA, Metal, D-Wave); сам протокол обмена с решателями находится в отдельном крейте quip-solver-core.
Как собрать и запустить coordinator?Соберите рабочее пространство Cargo из корня репозитория с помощью зафиксированного тулчейна, затем запустите coordinator с конфигом, в котором перечислены майнеры и валидаторы, к которым он должен подключаться.
Что нужно для майнинга на GPU?Для сборки координатора нужен зафиксированный тулчейн Rust, а для майнинга на CUDA — драйвер NVIDIA из ветки, поддерживаемой CUDA 12.9 (r535 или новее), плюс NVIDIA container runtime; сами бинарники майнеров для CPU/CUDA/Metal/D-Wave скачиваются отдельно с quip.network и в этот репозиторий не входят.
Безопасно ли запускать это с реальными деньгами или в боевой блокчейн-сети?Нет — в README прямо указано, что это экспериментальное ПО без каких-либо гарантий для продакшена, а поддержка CUDA ограничена compute capability от 7.0 до 12.1 (от Volta до потребительских карт Blackwell).
Что изменилось между v0.2 и v0.3 этого стека?v0.2 — это единый стек майнинга на Python; v0.3 разделяет его на координатор на Rust и интеграцию с цепочкой, при этом каждый майнер теперь представляет собой отдельный бинарник в собственном репозитории. Контракт решателя (proto, консенсусные примитивы, харнес) перенесён в отдельный крейт quip-solver-core, а в этом репозитории больше нет ни одной строки Python-кода.
Что здесь значит задача Изинга?Координатор превращает головоломки proof-of-work из цепочки в задачи оптимизации спинового стекла Изинга; майнеры пытаются решить их имитированным отжигом, сэмплированием Гиббса или квантовым отжигом, а затем отправляют принятое решение как экстринзик QuantumPow.submitproof.
Можно ли протестировать это без работающей ноды блокчейна?Да — стандартный запуск cargo test полностью офлайн. Интеграционные тесты для живого devnet, которые работают через настоящий клиент цепочки, помечены #[ignore] и запускаются только при заданной переменной окружения QUIPDEVNET.
Зачем здесь нужно оборудование D-Wave?Протокол поддерживает квантовый отжиг на настоящем оборудовании D-Wave как один из бэкендов решателей наряду с имитированным отжигом на CPU/CUDA/Metal, что делает этот стек одним из немногих, способных принимать доказательства, найденные настоящим квантовым оборудованием.
Size
82.4 MB
Stars
11.6K
Updated
CommitOct 15
Age
9mo
Commits · 90 Days