93 / 691SV1

Stratum V1

Le protocole minier de la connexion du worker à la soumission des shares

Stratum V1 est le protocole de facto entre un pool de minage Bitcoin et un mineur, présenté par Marek Palatinus en 2012 comme remplacement plus scalable de getwork.

Sur une connexion TCP persistante, le pool envoie jobs et target; le mineur assemble coinbase et en-tête, explore les nonces et soumet des shares. Le protocole ne définit ni paiement ni consensus Bitcoin.

Stratum V1 est une couche applicative entre pool et matériel minier ou proxy. Il ne fait pas partie du consensus pair-à-pair Bitcoin, ne valide pas les blocs et ne définit pas les comptes PPS, FPPS ou PPLNS. [Bitcoin Wiki — Stratum mining protocol] [Braiins — Past and future of mining protocols]

getwork livrait peu de travail par requêtes RPC répétées. En 2012 Marek Palatinus propose une connexion persistante où le serveur pousse chaque job; le pool obtient généralement son block template via getblocktemplate. [Original Stratum mining protocol announcement] [Braiins — Past and future of mining protocols] [BIP 22 — getblocktemplate fundamentals]

Le mineur envoie mining.subscribe et reçoit session, extranonce1 et taille de extranonce2. mining.authorize associe compte ou worker name, mais son mot de passe n’authentifie pas le serveur et ne chiffre pas le TCP en clair. [Bitcoin Wiki — Stratum mining protocol] [Hardening Stratum research paper]

mining.notify transporte job_id, previous block hash, deux parties coinbase, Merkle branches, version, nBits, nTime et clean_jobs. clean_jobs demande d’abandonner les anciens jobs; il ne certifie aucun bloc valide. [Bitcoin Wiki — Stratum mining protocol]

Le mineur place extranonce1 et son extranonce2 entre les parties coinbase, hache la transaction et applique les Merkle branches pour former la racine. Avec prevhash, version, nBits, nTime et nonce il construit l’en-tête de 80 octets pour l’ASIC. [Bitcoin Wiki — Stratum mining protocol] [Bitcoin Developer Guide — Pooled Mining]

mining.set_difficulty fixe un target de pool plus facile; vardiff peut l’ajuster pour une cadence utile. Un hash sous ce target est une share, pas un bloc, sauf s’il satisfait aussi le target réseau Bitcoin plus strict. [Bitcoin Wiki — Stratum mining protocol] [Bitcoin Developer Guide — Pooled Mining]

mining.submit transmet worker name, job_id, extranonce2, nTime et nonce; version rolling peut ajouter un sixième champ. Le pool reconstruit et contrôle, puis accepte ou rejette comme duplicate, low difficulty ou stale. [Bitcoin Wiki — Stratum mining protocol] [BIP 310 — Stratum protocol extensions]

Le V1 original n’avait pas de négociation générique sûre. Le projet BIP 310 assigné en 2018 ajoute mining.configure, masque version-rolling, minimum-difficulty et subscribe-extranonce; chaque extension doit être confirmée. [BIP 310 — Stratum protocol extensions]

V1 circule souvent sur TCP non chiffré: sans protection externe il n’authentifie pas l’endpoint et permet écoute ou détournement de hashrate. Le pool choisit souvent le block template, les full nodes imposent le consensus Bitcoin et les ASIC restent aux mineurs. [Hardening Stratum research paper] [Galaxy Research — Future of Bitcoin mining protocols]

Stratum V2 emploie des trames binaires, un canal cryptographiquement protégé et des rôles séparés; Job Declaration peut ouvrir le choix des transactions. Traducteur ou étiquette V2 ne le prouve pas. Vérifier endpoint, firmware, latence, rejects, failover et template policy. [Stratum V2 Mining Protocol specification] [Braiins Academy — Stratum V2 Manual]

Pour une vision complète, lisez aussi Bitcoin, Minage, Mining Pool, Braiins, Braiins Pool, Marek “Slush” Palatinus. Cette entrée est également citée par Mining Pool, Marek “Slush” Palatinus, Braiins Pool, Stratum V2.

DOC · 001Original Stratum mining protocol announcementSource primaire ↗DOC · 002Bitcoin Wiki — Stratum mining protocolDocumentation ↗DOC · 003Braiins — Past and future of mining protocolsSource primaire ↗DOC · 004Bitcoin Developer Guide — Pooled MiningDocumentation ↗DOC · 005BIP 22 — getblocktemplate fundamentalsSource primaire ↗DOC · 006BIP 310 — Stratum protocol extensionsSource primaire ↗DOC · 007Hardening Stratum research paperSource primaire ↗DOC · 008Stratum V2 Mining Protocol specificationSource primaire ↗DOC · 009Galaxy Research — Future of Bitcoin mining protocolsDocumentation ↗DOC · 010Braiins Academy — Stratum V2 ManualDocumentation ↗
Révisé le 1er août 2026Sources d’abord · Pas un conseil financier