Anlässlich der Auslieferung des neuen GekkoScience USB-Stick Miner Compac A1 hat Kano eine neue Version des GekkoScience Branch der Mining Software CGMiner veröffentlicht. Diese neue Version enthält erstmals Erweiterungen zur Anzeige der ASIC Temperatur, der Leistung sowie weiteren Telemetriedaten. Ich erkläre Euch hier die wesentlichen Neuerungen. Die Installation für Linux, Windows und Mac sind in den jeweiligen Support-Artikeln der Miner beschrieben.
CGMiner Gekkoscience Branch Git Repository
Das Original Git Repo (den Master) von Kano findet ihr hier: https://github.com/kanoi/cgminer . Dieses Repository ist ein Fork des Original CGMiner Repository von Kon Colivas und ist auf Github folgendermaßen eindeutig zu identifizieren:
Ausführen des CGMiner
Linux
./cgminer -o stratum+tcp://stratum.kano.is:3333 -u 1BURGERAXHH6Yi6LRybRJK7ybEm5m5HwTr -p x --suggest-diff 442
oder
./cgminer -c gekko.conf
Windows
cgminer.exe -o stratum+tcp://stratum.kano.is:3333 -u 1BURGERAXHH6Yi6LRybRJK7ybEm5m5HwTr -p x --suggest-diff 442
oder
cgminer.exe -c gekko.conf
Mac
cgminer -o stratum+tcp://stratum.kano.is:3333 -u 1BURGERAXHH6Yi6LRybRJK7ybEm5m5HwTr -p x --suggest-diff 442
oder
cgminer -c gekko.conf
Beispiel einer gekko.conf Konfigurationsdatei
{
"pools" : [
{
"url" : "stratum+tcp://stratum.kano.is:3333",
"user" : "benutzername.worker",
"pass" : "x"
}
],
"gekko-compaca1-start-freq" : "300",
"gekko-compaca1-freq" : "300",
"gekko-compaca1-corev" : "300",
"gekko-compaca1-detect" : true,
"gekko-r909-freq" : "450",
"gekko-r909-detect" : true,
"gekko-compacf-freq" : "400",
"gekko-compacf-detect" : true,
"gekko-tune2" : "60",
"suggest-diff" : "442",
"failover-only" : true,
"api-listen" : true,
"api-port" : "4028",
"api-allow" : "W:192.168.1.0/24,W:127.0.0.1"
}
Bitte tauschen Sie in oben genannten Beispielen sowohl die Pool-Daten als auch Benutzername.worker gegen eigene Pooldaten, Benutzerdaten und Worker aus.
Sollten mehrere Instanzen von CGMiner auf einem Computer laufen, muss auch für jede Instanz ein eigener API-Port (in diesem Beispiel 4028) angegeben werden.
Frequenzeinstellungen
Standard-Frequenzeinstellungen für Compac A1, Compac F und R909, Autodetect und Autotune
Compac A1
–gekko-compaca1-start-freq 300 –gekko-compaca1-freq 300 –gekko-compaca1-corev 300
Compac F
–gekko-start-freq 400 –gekko-r909-freq 450
R909
–gekko-start-freq 200 –gekko-compacf-freq 200
Sollte Sie verschiedene GekkoScience Miner gleichzeitig verwenden, können Sie die Frequenzeinstellungen der verschiedenen Miner kombinieren:
--gekko-compaca1-freq 300 --gekko-r909-freq 450 --gekko-compacf-freq 400
Tuning Optionen über die API
Der neue Compac A1 ist mit Telemetriefunktionen ausgestattet. CGMiner überwacht die ASIC Temperatur während des Mining und stoppt den Miner, wenn die Temperatur über eine kritische Schwelle steigt und startet den Miner wieder, wenn die ASICs abgekühlt sind.
Die gesamten neue Tuning-Möglichkeiten stehen zukünftig über die API zur Verfügung, damit lassen sich komplexe, Sensordaten-abhängige Steuerungen z.B. von Hausautomatisierungen oder PV Anlagen realisieren, die nicht auf dem gleichen Controller laufen müssen, auf dem auch die CGMiner Instanz läuft.
Wir empfehlen, die Tuning-Parameter in eine Konfigurationsdatei auszulagern (siehe weiter unten in diesem Artikel)
Aktivieren der API:
--api-listen --api-allow "W:192.168.1.0/24,W:127.0.0.1"
Die angegebenen IP Adressen erhalten Zugriff auf die CGMiner API. 127.0.0.1 ist dabei die sogenannte localhost oder loopback Adresse und zeigt auf den Controller, auf dem auch die CGMiner Instanz läuft.
Für die API wird eine Java Installation auf dem Computer benötigt, mit dem Sie auf die API zugreifen. Die weiter unten folgenden Build-Anweisungen enthalten auch eine Dependency zu Java, falls Sie nur einen Controller für die CGMiner-Instanz und die Tuning-Konfiguration verwenden.
Wenn Sie mehrere Instanzen on CGMiner auf einem Computer verwenden (zum Beispiel mit Hilfe des screen Kommandos, muss die API einer jeden Instanz mit eigener Portnummer gestartet werden. Standardmäßig verwendet CGMiner den Port 4028. Sie können die API mit einer anderen Portnummer folgendermaßen aktivieren:
--api-listen --api-allow "W:192.168.1.0/24,W:127.0.0.1" --api-port 4029
Wenn CGMiner die API erfolgreich aktivieren konnte, wird folgende Meldung ausgegeben:
API running in IP access mode on port 4028 (10)
Wenn Sie versuchen einen API Port an eine CGMiner Instanz zu binden, der schon von einer andere Instanz benutzt wird, erscheint folgende Fehlermeldung:
API bind to port 4028 failed - trying again in 30sec
API bind to port 4028 failed - trying again in 30sec
API bind to port 4028 failed - trying again in 30sec
API bind to port 4028 failed (Address already in use) - API will not be available
Um die Einstellungen und die Miner-Konfiguration anzuzeigen, verwenden Sie folgendes Kommando:
java API estats minerIP
zum Beispiel:
java API estats 192.168.0.12
Sollten Sie von localhost auf die API zugreifen, können Sie die IP-Adresse im Aufruf weglassen:
java API estats
Beispielausgabe:
[STATS] => 0
[Serial] => GS-10008000
[WaitFactor0] => 0.500000
[WaitFactor] => 2.000000
[JobDataAge] => 0.001697
[Jobs] => 10081/12972/12980/12972/12980
[JobElapsed] => 46.61/59.99/60.00/59.99/60.00
[JobsPerSec] => 216.28/216.20/216.33/216.21/216.32
[JobsAvgms] => 4.62/4.63/4.62/4.63/4.62
[JobsMinMaxms] => 0.52:5.12/0.30:4.99/0.28:4.91/0.84:5.77/0.53:5.06
Weitere Details zur API-Konfiguration finden Sie hier:
https://github.com/kanoi/cgminer/blob/master/API-README#L485
Frequenz-Einstellungen über die API
Mit der der Version 4.12.1 stehen viele neue Frequenz-Einstellungsmöglichkeiten für einzelne oder alles ASICs eines Miners zur Verfügung. Da die verwendeten ASICs meist eine hohe Serienstreuung verfügen, kann so das individuelle Frequenz-Optimum eines jeden ASICs ermittelt und eingestellt werden.
Setzen einer einheitlichen Taktfrequenz (im Beispiel 400) für alle ASICs eines Miners über die API:
java API "ascset|0,freq,400" {Miner-IP}
Wenn Sie die Frequenz ändern und die Frequenzen der einzelnen ASICs nicht gesperrt sind, wird der AutoTune Modus aktiv und versucht, die Frequenz anzupassen, um das Optimum automatisch zu finden.
Als Sonderfall können Sie die Frequenz auch auf Null setzen.
Dies stoppt effektiv das Mining und senkt die Leistungsaufnahme auf das Minimum. Diese Option eignet sich besonders für die Hysteresesteuerung bei schwankender verfügbarer Leistung (z.B. PV Anlagen)
Sie sehen die aktuellen Chipfrequenzen auch in der API-Ausgabe:
[Chip0FreqSend] => 500.000000
[Chip0FreqReply] => 500.000000
[Chip1FreqSend] => 500.000000
[Chip1FreqReply] => 500.000000
[Chip2FreqSend] => 500.000000
[Chip2FreqReply] => 500.000000
[Chip3FreqSend] => 500.000000
[Chip3FreqReply] => 500.000000
[Chip4FreqSend] => 500.000000
[Chip4FreqReply] => 500.000000
[Chip5FreqSend] => 500.000000
[Chip5FreqReply] => 500.000000
“Reply“ ist die Antwort des Chips, nachdem ihm die „Sende“-Frequenz gesendet wurde. Sie sehen immer Details dazu auf dem Bildschirm, wenn Frequenzänderungen auftreten.
Sperren von Frequenzen (überschreiben des AutoTune Modus)
java API "ascset|0,lockfreq" {Miner-IP}
Dieser API Aufruf sperrt alle aktuell gesetzten Frequenzen für den ausgewählten Miner. CGMiner wird die aktuell gesetzte Frequenz nicht mehr ändern, es sei denn, die ASICs reagieren nicht mehr (Zombie), in dem Fall wird wieder AutoTune aktiviert.
Sollten alle ASICs eines Miners nicht mehr reagieren, wird die Sperre aufgehoben, ein Reset durchgeführt und im Standardmodus ohne Frequenzsperre, fortgesetzt.
Die Frequenz-Sperre wird über folgenden API Aufruf wieder aufgehoben werden:
java API "ascset|0,unlockfreq" {Miner-IP}
Wenn Sie mehr als einen Miner an Ihrer CGMiner Instanz betreiben, müssen Sie die ASIC-Nummer des Miners mit angeben, für den Sie die Frequenzeinstellungen setzen möchten.
Dies ist die [STATS]-Nummer in der Ausgabe des Befehls ‘estats’.
[STATS] => 0
Hinweis: Die [ID]-Nummer ist nicht die API-Asic-Nummer, obwohl sie oft gleich ist.
java API "ascset|0,lockfreq" {Miner-IP}
Reset des Miners beim Unterschreiten einer festgelegten Hashrate
Es gibt eine API-einstellbaren Befehl, der den Miner beim dauerhaften Unterschreiten einer festgelegten Hashrate zurücksetzt und neu startet. In der Standardeinstellung wird der Miner zurückgesetzt, wenn die aktuelle Hashrate 65 % der erwarteten Hash-Rate unterschritten wird. In diesem Fall wird der Miner zurückgesetzt und die Frequenz nach unten angepasst.
java API "ascset|0,require,0.65" {Miner-IP}
Hinweis: Über die [ID]-Nummer kann jeder einzelne Miner mit diesem Befehl angesprochen werden.
Setzen der gleichen Frequenz auf allen Chips (z.B. 400 MHz)
java API "ascset|0,freq,400" {Miner-IP}
Wenn Sie die Frequenz ändern und die Frequenzen nicht gesperrt sind, tritt natürlich der Plateau-Code in Kraft und versucht, die Frequenz in Richtung des Miner-Optimums automatisch anzupassen.
Setzen einer bestimmten Frequenz für einen festgelegten ASIC (z.B. 410 MHz auf ASIC 0)
java API "ascset|0,chip,0:410" {Miner-IP}
Unsere Erfahrung mit dem BM1397 ASIC: Wenn Sie eine Chipfrequenz auf Null setzen, scheinen alle Chips automatisch auf Null zu gehen.
Unsere Annahme ist, dass der Frequenzbereich der einzelnen ASICS in einem String nicht sehr weit auseinander eingestellt werden kann, damit alle ASICS ordnungsgemäß arbeiten. Probieren Sie es aus. Zum Testen einzelner ASICs können Sie einen Chip 100 MHz unter die Taktfrequenz der anderen einstellen, das hat sich für das Testen einzelner ASICs gut bewährt.
Ändern der Zeitspanne, die cgminer/USB wartet, um Datenpakete an den Miner zu senden.
java API "ascset|0,usbprop,800" {Miner-IP}
Sie können die Zeitspanne ändern, die cgminer/USB wartet, um die nächsten USB-Datenpakete an den Miner zu senden.
Der einstellbare Bereich ist 200 bis 1000 µs. Der Standardwert ist 1000 µs.
Dies kann auf einem Computer nützlich sein, der die USB Ein-/Ausgabe schneller ausführen kann und an dem viele Miner angeschlossen sind.
Wird der Wert zu klein gewählt, können Probleme dabei entstehen, dass die Arbeitspakete im dem (zu) kleinen Zeitfenster nicht vollständig zum Miner gelangen und die Nonces nicht immer vollständig zurückkommen. Die Fehlerrate steigt in diesem Fall.
Diese Einstellung ist nur mit den BM1397 Minen R909 und CompacF kompatibel. Wird der Wert nach unten angepasst, erhöht sich dadurch die CPU-Auslastung des Controllers.
Reset des Miners
java API "ascset|0,reset" minerIP
Dieses API Kommando bewirkt einen Reset des über die jeweilige ID angesprochenen Miners und das Zurücksetzen auf Standardeinstellungen in Verbindung mit dem Plateau-Code zur automatischen Ermittlung des Mining-Optimums.