Les développeurs de logiciels miniers sont invités à consulter nos codes sources miniers à l'adresse https://github.com/nicehash et inclure des correctifs pour extranonce.subscription dans leur logiciel d'exploration de données.
En cas d'abonnement réussi à la strate avec la méthode "mining.subscribe", le client doit envoyer la méthode "mining.extranonce.subscribe".
{"id": X, "method": "mining.extranonce.subscribe", "params": []}\n
Cela informe le serveur (pool) que le client (mineur) prend en charge la modification extranonce1 à la volée sans avoir besoin de rétablir la connexion. Les serveurs prenant en charge cette méthode répondront:
{"id": X, "result": true, "error": null}\n
Si le serveur ne prend pas en charge la méthode, la réponse sera:
{"id": X, "result": false, "error": [20, "Not supported.", null]}\n
Le serveur peut également simplement ignorer cet abonnement et ne retourner aucune réponse ou renvoyer une méthode non valide. Certains pools peuvent renvoyer un message d'erreur mal formé. Certains pools peuvent interrompre la connexion (dans de tels cas, il est préférable d'offrir à l'utilisateur un moyen de désactiver les abonnements extranonce pour certains pools - via config, par exemple). Dans tous les cas, le client n'effectue aucune logique lors de la réception de ces réponses. Avec l'abonnement mining.extranonce.subscribe, le client doit gérer correctement les modifications extranonce1. Le serveur enverrait:
{"id": null, "method": "mining.set_extranonce", "params": ["08000002", 4]}\n
Le premier paramètre est la valeur extranonce1 de la chaîne et le second paramètre est une valeur entière de taille extranonce2. Le mineur doit commencer à utiliser un nouvel extranonce1 lorsqu'un nouveau travail est fourni avec mining.notify. Le travail doit être changé, même si un nouveau travail a le même ID (car extranonce1 est différent). Si vous ne le faites pas, les partages seront supérieurs à la cible jusqu'à ce qu'un nouveau travail avec un ID différent soit fourni.