Mit Coinhive über die Linux Commandline zu minen, ist im Prinzip recht simpel und funktioniert mit jeder Website. In diesem Beispiel nutze ich einen Ubuntu Server 16.04.3 LTS (Xenial Xerus) und die Epvp Goldmine.
- Zu Beginn benötigen wir einen Browser, über den gemined werden soll. Für Einsteiger empfiehlt sich hier der Chromium Browser, da sich der stable Build relativ einfach über die offiziellen Paketquellen installieren und updaten lässt. Google Chrome lässt sich seperat über Deb-Pakete installieren, ist allerdings keine freie Software und hat hier auch keine Vorteile gegenüber Chromium.
Bei Bedarf zusätzlich chromium-browser-l10n für die deutsche Lokalisierung. Die restlichen Abhängigkeiten werden mitinstalliert.Code:apt install chromium-browser
- Als Nächstes wird euer Coinhive-Link benötigt, den ihr in der Textbox in der [Only registered and activated users can see links. Click Here To Register...] findet. Der Link setzt sich aus der Domain/Website, dem Sitekey und eurer User-ID zusammen, z.B. https://coinhive.com/media/miner.html?key=0NhxZMXyTUaFFAOlPOHXeEcVX92cjwGa&us er=4565205, wobei 0NhxZMXyTUaFFAOlPOHXeEcVX92cjwGa der Sitekey und 4565205 meine Userkennung ist.
- Um den Browser unter der Commandline nutzen zu können, wird er im Headless-Mode gestartet. Wenn ihr über ein Terminal verbunden seid und das nicht die ganze Zeit offen lassen wollt, solltet ihr zusätzlich screen installieren, um die Sitzung in den Hintergrund zu schieben. Der Browser wird mit chromium-browser aufgerufen. Mit dem Parameter --repl (read-eval-print loop) lassen sich JavaScript-Befehle ausführen und Werte zurückgeben.
Jetzt folgt die Aufforderung, eine 'Javascript expression' einzugeben. Zuerst müssen wir der Website mitteilen, wer wir sind.Code:chromium-browser --headless --disable-gpu --repl https://coinhive.com/media/miner.html
Das war im großen und ganzen auch schon das Schwierigste. Der Miner lässt sich nun weiter bedienen mit:Code:miner = new CoinHive.User('Sitekey', "User-ID"); -> miner = new CoinHive.User('0NhxZMXyTUaFFAOlPOHXeEcVX92cjwGa', "4565205");
Code:miner.start() miner.isRunning() miner.stop()
- Wollt ihr nicht die komplette CPU zum Minen nutzen, lässt sich beim Starten des Miners bspw. noch ein throttle und threads Paramter mitgeben.
Wobei ein Throttle-Wert von 0.7 bedeutet, dass die Threads 70% der Zeit im Idle bleiben.Code:miner = new CoinHive.User('Sitekey', "User-ID", { throttle: 0.7, threads: auto}); miner = new CoinHive.User('Sitekey', "User-ID", { throttle: 0.5, threads: 4}); o.ä.
- Weitere (vielleicht nützliche) Commands gibt's in der offiziellen Coinhive Dokumentation.
etc. Die letzten beiden noch mal zum Ändern der beim Starten verwendeten Thread und Throttle Settings.Code:.getHashesPerSecond() .getAcceptedHashes() .setNumThreads(numThreads) .setThrottle(throttle)