CLIツール
QuipNetwork/quip-miner avatar
QuipNetwork/quip-miner

quip-minerのQuantumPow構成を読む: 実験用マイニングスタックの境界

Quip ネットワーク マイニング スタック。これにはコーディネーターが含まれており、すべての公式 Quip ネットワークマイナーをリンクします。

スター 11,597フォーク 162PythonAGPL-3.0

ひと目でわかる

これは何?
quipnetwork/quip-minerはQuantumPow向けのPythonマイニングスタックで、coordinatorが公式minerを束ねる。READMEが示すのは実験的な構成とテストの入口であり、本番性能や収益性の資料ではない。
誰に向いている?
PythonでQuantumPow向けのcoordinator、core、workerの分割を調べたい開発者にはquip-minerが読解・検証の対象になります。安定した収益、ハッシュレート、長期保守を必要とする本番マイナーの根拠にはできません。
商用利用できる?
厳しい条件付きでできます。AGPL-3.0 はネットワーク型コピーレフトのライセンスで、改変版をホスティングサービスなどとしてネットワーク越しに利用させる場合、その利用者にソースコードを同じライセンスで提供する必要があります。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

QuantumPowパレット向けPythonマイナー

quip-minerはquip-protocol-rs Substrateチェーン向けのPythonマイニングスタックです。READMEでは実験的ソフトウェアであり本番保証はないとされています。これはリポジトリのv0.2系で、旧称はquip-protocolでした。v0.1では独自のコンセンサス、QUICによるP2P、ブロックストア、REST API、SPHINCS+ブロック署名器が含まれていました。v0.2ではこれらを全て削除し、チェーンが唯一の真実の源となり、マイナーはそれに接続します。このスタックはチェーンのQuantumPowパレットに対してCPUシミュレーテッドアニーリング、CUDA/Metal/ModalによるGPU、QPUマイナーを駆動し、新しいチェーンヘッドごとにマイニングスナップショットを取得し、有効なIsing解を探索し、proof外部トランザクションを送信します。

quip-minerを読む際は、coordinatorがworkerへ仕事を割り当てる境界と、coreが扱うマイニング処理を別々に追う必要があります。READMEのbootstrap、keygen、mineの入口を同じ設定で混ぜると、どのプロセスが鍵や採掘設定を保持するのかを誤認しやすい構成です。telemetryのREST経路は採掘処理そのものではないため、公開するポートと返却情報を独立に確認します。実験用の構成では、チェーンヘッドを取得してからスナップショットを探索し、proof外部トランザクションを送るまでの状態遷移を確認します。READMEに本番の採掘量や電力効率の数値がない以上、そこを補う推測はできません。依存関係の導入後は、coordinatorだけを起動した状態、workerを接続した状態、mineを開始した状態を分けてログへ残します。エラーが発生した場合も、QuantumPowの計算失敗とチェーンへの送信失敗を同じ原因として扱わないことが必要です。

コントローラ、コア、ワーカープロセス

READMEのアーキテクチャ図では、SubstrateClientがget_mining_snapshot、subscribe_new_heads、submit_extrinsicを介してチェーンを読み取ります。SubstrateMinerControllerは新しいヘッドに反応して進行中の作業をキャンセルし、スナップショットを取得し、MinerCoreにディスパッチします。MinerCoreは永続的なMinerHandleワーカー、ハードウェア記述子キャッシュ、集計統計を保持します。各MinerHandleはBaseMiner.mine_work_itemを実行するワーカープロセスをラップし、これはプロトコルに依存せずCPU・GPU・QPUサンプリングを処理します。shared/ディレクトリには署名、キーストア、SCALEエンコーディング、送信、ブートストラップ、テレメトリのモジュールがリストされています。スタンドアロンのquip_cli.pyはkeygen、bootstrap、cpu、gpu、qpuコマンドをディスパッチします。

インストールとPython依存関係

インストールは標準的なPython venvの流れに従います。仮想環境を作成し、pip、setuptools、wheelを更新してからpip install -e .を実行します。pyproject.tomlはチェーンRPCとSCALE用のsubstrate-interface、scalecodec、Isingサンプリング用のdwave-ocean-sdk、numpy、テレメトリサーバーとフォーセット用のaiohttp、CLI用のclick、nonce導出用のblake3を引き込みます。D-Wave QPUアクセスにはpython-dotenvで読み込まれる.envファイル内のDWAVE_API_KEYが必要です。READMEはサポートするPythonバージョンやリリース履歴を指定しておらず、これらの詳細はソースでは確認されていません。

ブートストラップ、キージェン、マイニングサブコマンド

CLIはquip-miner keygenを提供し、平文シードを含む0o600権限のJSONキーストアを書き込みます。またquip-miner bootstrapはフォーセットを通じてマイナーアカウントに資金を供給して登録し、必要に応じて新しいチェーンに難易度とトポロジーをシードします。マイニングサブコマンドcpu、gpu、qpuはノードURL、署名キー、トポロジー、RESTポートのフラグを共有します。cpuサブコマンドは--num-cpus、gpuは--gpu-backend、qpuは--qpu-typeと--daily-budgetを追加します。起動時にトポロジー結合が強制されます。CLIはチェーンが使用するのと同じblake2_256レシピで設定されたトポロジーをハッシュし、不一致があれば起動を拒否します。

テレメトリRESTエンドポイントと削除されたP2Pサーフェス

テレメトリAPIはGET /health、/api/v1/status、/api/v1/system、/api/v1/stats、/api/v1/block/*エンドポイントを提供し、すべて成功フラグ、データ、エラー、タイムスタンプを含む共通のエンベロープを返します。POST /api/v1/solveはv0.2で無効化されています。READMEには削除されたレガシーパスとして/api/v1/peers、/api/v1/join、/api/v1/gossip、/api/v1/heartbeat、POST /api/v1/block、および/telemetry/* SSEストリームがリストされています。消費者はsubstrate側のイベントとlocalhost:9615/metricsのPrometheusを使用するよう指示されています。

トポロジー結合とテストカバレッジ

マイニングはチェーンに登録された任意の有界グラフに対して機能します。CLIは--topology zephyr:M,Tからdwave-networkxのZephyrグラフを構築し、チェーンはblake2_256で正規化してハッシュします。レガシーのデフォルトZ(9,2)は1368ノードと7692エッジを持ち、チェーンの難易度キャリブレーションに一致します。より小さいグラフには独自のキャリブレーションが必要です。テストスイートはpython -m pytest tests/ -vで実行されます。統合テストはローカルチェーンに到達できない場合自動的にスキップされ、エンドツーエンドテストは120秒以内にProofAcceptedイベントを期待します。nonceパリティテストは隣接するquip-protocol-rsチェックアウトからフィクスチャを読み取り、QUIP_RUST_FIXTURE_DIRで設定できます。

編集部の結論

PythonでQuantumPow向けのcoordinator、core、workerの分割を調べたい開発者にはquip-minerが読解・検証の対象になります。安定した収益、ハッシュレート、長期保守を必要とする本番マイナーの根拠にはできません。最初にREADMEの依存関係、bootstrapとkeygen、mineサブコマンドを隔離環境で順に確認し、telemetryのRESTエンドポイントが公開する情報とP2P機能の範囲をコードで照合してください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
コミュニティノート

コミュニティノート