quip-miner : une pile de minage Python pour le pallet QuantumPow
La pile de minage de réseau plaisanterie. Cela comprend un coordinateur et relie tous les mineurs officiels du réseau Quip.
En bref
- De quoi s’agit-il ?
- The quip network mining stack. This includes a coordinator and links all of the official quip network miners.. Cette analyse examine les entrées, les sorties et les conditions documentées.
- À qui s’adresse-t-il ?
- quip-miner convient aux lecteurs dont le besoin correspond exactement aux fichiers, commandes et environnements décrits dans son README. Il convient moins à une équipe qui attend des garanties absentes du dépôt.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un mineur Python pour le pallet QuantumPow
quip-miner est une pile de minage Python pour la chaîne Substrate quip-protocol-rs. Le README le qualifie de logiciel expérimental sans garantie de production. C'est la ligne v0.2 du dépôt, anciennement appelé quip-protocol. Dans v0.1, la base de code incluait son propre consensus, le P2P via QUIC, un stockage de blocs, une API REST et un signataire de blocs SPHINCS+. v0.2 supprime tout cela : la chaîne est la source de vérité et les mineurs s'y connectent. La pile pilote le recuit simulé CPU, les GPU via CUDA, Metal ou Modal, et les mineurs QPU contre le pallet QuantumPow de la chaîne, récupérant un instantané de minage à chaque nouvelle tête de chaîne, recherchant des solutions Ising valides et soumettant des extrinsèques de preuve.
Contrôleur, noyau et processus de travail
Le diagramme d'architecture du README montre un SubstrateClient qui lit la chaîne via get_mining_snapshot, subscribe_new_heads et submit_extrinsic. Un SubstrateMinerController réagit aux nouvelles têtes en annulant les travaux en cours, récupère l'instantané et le transmet à MinerCore. MinerCore possède des travailleurs MinerHandle persistants, un cache de descripteurs matériels et des statistiques agrégées. Chaque MinerHandle encapsule un processus de travail exécutant BaseMiner.mine_work_item, qui est neutre vis-à-vis du protocole et gère l'échantillonnage CPU, GPU et QPU. Le répertoire shared/ répertorie des modules pour la signature, les porte-clés, l'encodage SCALE, la soumission, le bootstrap et la télémétrie. Le script autonome quip_cli.py répartit les commandes keygen, bootstrap, cpu, gpu et qpu.
Installation et dépendances Python
L'installation suit un flux venv Python standard : créer un environnement virtuel, mettre à jour pip, setuptools et wheel, puis exécuter pip install -e . Le pyproject.toml attire substrate-interface pour le RPC de chaîne et SCALE, scalecodec, dwave-ocean-sdk pour l'échantillonnage Ising, numpy, aiohttp pour le serveur de télémétrie et le robinet, click pour la CLI et blake3 pour la dérivation de nonce. L'accès au QPU D-Wave nécessite une DWAVE_API_KEY dans un fichier .env chargé via python-dotenv. Le README ne spécifie pas de version Python supportée ni d'historique de versions ; ces détails ne sont pas établis par la source.
Bootstrap, keygen et sous-commandes de minage
La CLI expose quip-miner keygen, qui écrit un porte-clés JSON 0o600 avec une graine en clair, et quip-miner bootstrap, qui finance et enregistre un compte mineur via un robinet, en option initialisant difficulté et topologie sur une nouvelle chaîne. Les sous-commandes cpu, gpu et qpu partagent des drapeaux pour l'URL du nœud, la clé de signature, la topologie et le port REST. cpu ajoute --num-cpus, gpu ajoute --gpu-backend et qpu ajoute --qpu-type et --daily-budget. La liaison de topologie est appliquée au démarrage : la CLI hache la topologie configurée avec la même recette blake2_256 que la chaîne et refuse de démarrer en cas de désaccord.
Endpoints REST de télémétrie et surface P2P supprimée
L'API de télémétrie sert GET /health, /api/v1/status, /api/v1/system, /api/v1/stats et /api/v1/block/*, renvoyant tous une enveloppe commune avec indicateur de succès, données, erreur et horodatage. POST /api/v1/solve est désactivé en v0.2. Le README liste les chemins hérités supprimés /api/v1/peers, /api/v1/join, /api/v1/gossip, /api/v1/heartbeat et POST /api/v1/block, ainsi que le flux SSE /telemetry/*. Les consommateurs sont dirigés vers les événements côté Substrate et Prometheus sur localhost:9615/metrics.
Liaison de topologie et couverture de test
Le minage fonctionne contre tout graphe borné enregistré sur la chaîne. La CLI construit un graphe Zephyr dwave-networkx à partir de --topology zephyr:M,T, et la chaîne le canonicalise et le hache avec blake2_256. Le défaut hérité Z(9,2) a 1368 nœuds et 7692 arêtes, correspondant au calibrage de difficulté de la chaîne. Les graphes plus petits nécessitent leur propre calibrage. La suite de tests s'exécute avec python -m pytest tests/ -v ; les tests d'intégration se sautent automatiquement si la chaîne locale est inaccessible, et un test de bout en bout attend un événement ProofAccepted dans les 120 secondes. Un test de parité de nonce lit des fixtures depuis un checkout frère quip-protocol-rs, configurable via QUIP_RUST_FIXTURE_DIR.
Vérifier quip-miner dans son environnement
Pour vérifier quip-miner, utilisez le dépôt QuipNetwork/quip-miner et reprenez une commande, un fichier ou un exemple explicitement cité dans son README. Exécutez ce scénario dans un environnement isolé, relevez l'entrée, la sortie, les erreurs, les permissions et les fichiers produits, puis comparez-les avec le comportement décrit. Cette vérification porte sur quip-miner, sa branche main et ses dépendances réelles ; elle ne transforme pas la démonstration en garantie de compatibilité, de sécurité ou de performance. Les paramètres que le dépôt ne précise pas restent à établir dans votre contexte. Gardez la trace du résultat lorsque vous étendez l'usage à une autre plateforme ou à un autre volume de données.
Conclusion éditoriale
quip-miner convient aux lecteurs dont le besoin correspond exactement aux fichiers, commandes et environnements décrits dans son README. Il convient moins à une équipe qui attend des garanties absentes du dépôt. Commencez par quip-miner, utilisez l'exemple ou l'entrée documentée, puis observez la sortie, les erreurs et les droits nécessaires avant d'élargir l'usage.
Notes de la communauté