GetWork
GetWork est le protocole historique de minage pré-2012. Limité à un nonce de 32 bits, vite obsolète face aux ASIC. Remplacé par GetBlockTemplate puis Stratum. Ne sert plus aujourd'hui.
Définition et contexte historique
GetWork est le tout premier protocole de communication entre un mineur et un nœud Bitcoin, présent dès les versions 0.1 du client Satoshi (2009). À l'époque, le minage se faisait sur CPU puis sur GPU, avec des hashrates de l'ordre de quelques MH/s par machine, et un nonce de 32 bits suffisait largement à explorer l'espace de recherche entre deux blocs.
Comment ça fonctionnait
L'appel RPC getwork retournait un mini-paquet contenant uniquement :
- l'en-tête du bloc partiellement construit
- la cible de difficulté
- un nonce à itérer
Le serveur (nœud ou pool) gardait pour lui la construction de la racine de Merkle et la sélection des transactions. Le mineur n'avait qu'à incrémenter le nonce. Une fois une solution trouvée, il la renvoyait via un second appel RPC.
Pourquoi GetWork est devenu obsolète
L'apparition des ASICs en 2013 (Avalon, Butterfly Labs) a explosé les hashrates :
| Période | Matériel | Hashrate typique | |---------|----------|------------------| | 2009-2010 | CPU | 1-10 MH/s | | 2011-2012 | GPU | 100-500 MH/s | | 2013+ | ASIC | 1-100 GH/s | | 2024 | ASIC moderne | 200 TH/s |
Un nonce 32 bits = 2^32 = 4,3 milliards de hashes. Un ASIC le balaie en quelques secondes. GetWork imposait alors au pool de générer un nouveau template à chaque tick, saturant la bande passante. Inadapté.
Successeurs
GetBlockTemplate (2012) a donné le contrôle du template au mineur, élargissant l'espace de recherche grâce à l'extranonce et permettant au mineur de choisir ses transactions. Puis Stratum (2012-2013) a optimisé la couche réseau pour les pools commerciaux.
Encore utilisé ?
Non. Aucun pool sérieux ni firmware ASIC ne supporte GetWork aujourd'hui. Il subsiste uniquement comme curiosité historique et dans certains scripts de test.
À retenir
GetWork est le protocole de minage de l'enfance de Bitcoin. Son obsolescence raconte l'histoire de la course aux performances entre matériel et protocole.
Termes lies
- GetBlockTemplateGetBlockTemplate (BIP-22/23) est le RPC permettant à un mineur de demander un block template à son nœud. Standard pour le solo mining et les pools. Successeur de GetWork. Plus flexible que Stratum V1.
- StratumStratum (V1) est le protocole standard de communication entre mineurs et pools. Basé sur JSON-RPC. Critiqué pour donner au pool le contrôle du template (censure possible). Remplacé progressivement par Stratum V2.
- MinageLe minage Bitcoin est le processus par lequel des ordinateurs specialises (ASICs) resolvent des calculs cryptographiques pour valider les transactions et creer de nouveaux blocs. Les mineurs sont recompenses en bitcoins pour leur travail. Ce mecanisme de Proof of Work securise le reseau et garantit son fonctionnement decentralise.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.