Stratum-Protokoll
Das Stratum-Protokoll ist die Art und Weise, wie Miner mit Mining-Pools kommunizieren. NMMiner implementiert Stratum v1 über TCP (und TLS).
Protokollablauf
Schlüsselmethoden
mining.subscribe
Der Miner meldet sich an und erhält:
- Eine Session-ID
- Einen Extranonce1-Wert (vom Pool zur Erweiterung des Nonce-Bereichs)
- Die Extranonce2-Größe (wie viele Bytes der Miner selbst anhängen soll)
mining.authorize
Sendet die Anmeldeinformationen des Workers:
username=wallet_address.worker_namepassword= normalerweisex(die meisten Pools ignorieren dies)
mining.notify
Der Pool sendet einen neuen Job mit:
job_id— Eindeutiger Bezeichner für diesen Jobprevhash— Hash des vorherigen Blockscoinb1+coinb2— Coinbase-Transaktionsteilemerkle_branch— Merkle-Pfad zur Coinbaseversion— Blockversionnbits— Codiertes Schwierigkeitszielntime— Aktueller Zeitstempelclean_jobs— Wenntrue, verwerfen Sie alle vorherigen Jobs
mining.submit
Der Miner reicht eine gefundene Share ein mit:
user— Worker-Namejob_id— Welcher Job bearbeitet wurdeextranonce2— Der vom Miner gewählte Nonce-Teilntime— Vom Miner verwendeter Zeitstempelnonce— Der 32-Bit-Nonce, der die Share ausgelöst hat
Verbindungsmodi
NMMiner unterstützt zwei Stratum-Transporte:
| Schema | Port (typisch) | Beschreibung |
|---|---|---|
stratum+tcp:// | 3333 | Klartext-Stratum |
stratum+ssl:// | 3333 | TLS-verschlüsseltes Stratum |
Diffizile Skalierung
Die Share-Schwierigkeit des Pools bestimmt, wie oft Sie Shares einreichen:
| Pool-Diff | Shares/Minute (bei 1 MH/s) | Netzwerklast |
|---|---|---|
| 0,001 | ~7/Min | Hoch |
| 0,01 | ~0,7/Min | Mittel |
| 0,1 | ~0,07/Min (alle 14 Min) | Niedrig |
| 1,0 | ~0,007/Min (alle 2,4 Std) | Sehr niedrig |
Die Diffizile wird normalerweise vom Pool automatisch basierend auf Ihrer Hashrate angepasst.
Referenzen
- Stratum V1 Spezifikation (Bitcoin Wiki)
- Stratum V2 Entwurf — NMMiner unterstützt derzeit kein V2