Duinocoin-Mining mit Arduino UNO/Nano

Ganz einfach: Der Einstieg in den Duinocoin (DUCO) mit einem Arduino UNO/Nano

Der Duinocoin (DUCO) wurde ursprünglich für den Arduino UNO entwickelt. Daher ist das Mining mit dem Arduino UNO der ideale Einstieg ins DUCO-Schürfen mit Mikrocontrollern.

Neben einem Arduino UNO oder Nano reicht ein PC, ein Notebook oder ein Raspberry Pi (für die Arduino Entwicklungsumgebung (IDE) und als Kommunikationsrechner) aus, um in das DUCO-Mining einzusteigen.

Übersicht

Um mit einem Arduino UNO oder Nano den Duinocoin (DUCO) zu schürfen benötigt man - neben einem Arduino UNO/Nano - folgendes:

  1. eine Duinocoin-Wallet (Online-Account)
  2. einen Rechner mit Windows, GNU/Linux oder Mac OS X und Python 3.x
  3. eine funktionierende Arduino IDE
  4. die Duinocoin-Software (von Github)

Die Vorbereitungen können in rund einer halben Stunde erledigt sein. Mit diesem Setup und einem einzigen Arduino UNO/Nano kann man anschließend pro Tag rund 5-9 DUCO schürfen.

1. Duinocoin-Wallet auf der Projektseite anlegen

Um die geschürften Duinocoin (DUCO) irgendwo speichern zu können benötigt man eine Wallet. Die wird beim Duinocoin online verwaltet. Die neue Wallet legt man auf https://wallet.duinocoin.com/register.html an.

Neue Wallet anlegen

Auf wallet.duinocoin.com legt man eine neue Wallet (einen neuen Account) an.

2. Rechner mit Windows, GNU/Linux oder Mac OS X und Python 3.x

Die minimale Mining-Software für den PC benötigt lediglich einen Python3-Interpreter. Ob Python 3 vorhanden ist, prüft man so:

  • GNU/Linux: Terminal öffnen via Ctrl-Alt-T (notfalls per Strg-Alt-F2, zurück mit Strg-Alt-F7)
  • Windows: Powershell öffnen via Win+R und "powershell"
  • Mac OS: Finder > Applications > Utilities > Terminal

An der Eingabeaufforderung (Prompt) gibt man folgendes ein:

python --version

Wichtig sind die zwei Minuszeichen (außer bei Mac OS X). Wird "python" nicht gefunden, kann man "python3 -- version" versuchen, dann ist die Version hardcodiert. Das Ergebnis sollte in etwa so aussehen:

mipl@z600:~$ python3 --version
    Python 3.9.2

Auf diesem Rechner (einer HP Z600-Workstation mit dem von systemd befreiten Devuan GNU/Linux 3.0 "Chimaera" läuft offensichtlich Python 3.9.2.

Wie man Python3 auf seinem Rechner installiert wird ausführlich unter Python3 auf dem GNU/Linux-PC installieren beschrieben.

3. Arduino IDE (Entwicklungsumgebung) installieren

Die einfachste Möglichkeit um Mining-Software auf einen Mikrocontroller wie den Arduino UNO/Nano zu programmieren ist der Weg über die Arduino IDE (Entwicklungsumgebung). Die freie und quelloffene Software wird vom Arduino-Projekt als kostenloser Download für Windows, GNU/Linux und Mac OS X angeboten.

In einem ausführlichen Artikel zeige ich, wie man die Arduino IDE installiert. Wer es komfortabler haben will, installiert die Arduino IDE im "portable mode" und erleichtert so seine Backups und den Wechsel zwischen unterschiedlichen Mikrocontroller-Architekturen. Ein dritter Artikel gibt Tipps für die ersten Schritte nach der Installation der Arduino IDE.

Tipp: Sollte es auf GNU/Linux-Rechnern zu Problemen beim Zugriff auf den Arduino UNO/Nano kommen, muss man die Zugriffsrechte auf Gerätedateien (serielle Ports, USB) unter GNU/Linux anpassen.

Damit sollten dem Duinocoin-Mining nichts mehr im Weg stehen.

4. Duinocoin-Software herunterladen

Die offizielle Software für das Duinocoin-Mining stellt das Duinocoin-Projekt im Quellcode bereit. Die aktuelle Version gibt es immer auf Github.

Github Repo von revox

Das Duinocoin-Repository von revox auf Github

Über "Code / Download ZIP" wird das ZIP-Archiv mit dem aktuellen Duinocoin-Code heruntergeladen und kann anschließend nach duino-coin ausgepackt werden.

Alternativ kann man die aktuelle Duinocoin-Version auch via git herunterladen:

git clone --depth 1 -b 3.18 https://github.com/revoxhere/duino-coin

Sollte es eine neuere Version als 3.18 geben, muss man das in obigem Befehl ersetzen. Auch mit git erhält man ein Verzeichnis duino-coin mit allen Dateien.

  • Im Verzeichnis Arduino_Code befindet sich der Quellcode (Sketch) für den Arduino UNO/Nano.
  • PC_AVR_Miner.py erledigt anschließend die Kommunikation zwischen den Pool-Servern und dem Arduino UNO/Nano.

PC-Software zum Mining-Management installieren

Zunächst sollte die notwendige Software und Tools auf dem PC installiert werden. Die Kommunikationssoftware für die Verbindung des Arduino UNO mit den Duinocoin-Servern im Internet ist in Python3 geschrieben. Grundsätzlich wird Python3 selbst und der Python Paketmanager "pip" in Version 3 benötigt. Alle diese Pakete müssen als "root" oder mit vorangestelltem "sudo" installiert werden:

sudo apt-get install python3 python3-pip

Wer - was man eigentlich immer machen sollte - die Python3-Umgebung für den Benutzer in eine virtuelle Python3-Umgebung packen will, installiert auch das venv-Modul. Nur so wird der noch folgende Rattenschwanz an bunten und halbseidenen Bibliotheken nicht im System selbst, sondern nur in einem anzugebenden Verzeichnis des Benutzers installiert:

sudo apt-get install python3-venv

Wie man eine virtuelle Python3-Umgebung einrichtet und nutzt zeige ich hier. Nicht für das pure Mining, aber für andere Duinocoin-Tools wird später eventuell auch die Python Image Library (pil) und sogar eine Tkinter-kompatible PhotoImage-Bibliothek benötigt:

apt-get install python3-pil python3-pil.imagetk

Arduino UNO/Nano mit DUCO-Miner programmieren

Nun ist es Zeit, die Arduino per USB-Kabel anzustöpseln und die Arduino IDE zu starten. Beim ersten Start der Entwicklungsumgebung nicht vergessen, die Boards und Bibliotheken zu aktualisieren.

Über "Datei / Öffnen..." lädt man den Duinocoin-Quellcode (Sketch) "Arduino_Code.ino" aus dem duino-coin/Arduino_Code/-Verzeichnis in den Editor. Über [Strg]+[R] oder ein Klick auf auf den "OK-Haken" links oben in der Symbolleiste der IDE übersetzt man den Quellcode. Dabei sollte kein Fehler auftreten.

Arduino IDE mit Duinocoin-Sketch

Der Duinocoin-Sketch 3.18 wurde mit der Arduino IDE 1.8.19 ohne Fehler compiliert.

Normalerweise muss noch über "Werkzeuge / Port" der USB-Port, an dem der Arduino UNO/Nano angeschlossen ist, ausgewählt werden (beispielsweise /dev/ttyACM0 (Arduino Uno) oder /dev/USB0 für einen Clone.

Per [Strg]+[U] oder einem Klick auf den Rechtspfeil in der Symbolleiste wird der übersetzte AVR-Code auf den Arduino UNO/Nano übertragen (flashed). Die IDE meldet ein unscheinbares "Hochladen abgeschlossen.".

Sollte der Fehler PermissionError: [Errno 13] Permission denied: 'dev/ttyACM0' auftreten, müssen die Zugriffsrechte auf Gerätedateien (serielle Ports, USB) noch gesetzt werden.

Mining starten

Um nun Duinocoin (DUCO) mit dem Arduino UNO/Nano zu schürfen, startet man das AVR_Miner.py-Skript über den Python3-Interpreter:

python3 AVR_Miner.py

Das Skript installiert weitere Bibliotheken und fragt nach

  • dem Namen der Wallet/Account
  • dem (optionalen) Mining-Key (nur eingeben, falls gesetzt)
  • dem seriellen Port des Arduino UNO/Nano (dev/ttyACM0 oder /dev/USB0 für einen Clone)
  • Weitere Boards und eine Identifikation benötigt man, wenn man mehrere Miner einsetzt
  • Spendenlevel (0-5) für die Intensität des MAGI-Miner auf dem PC (0, später kann man den Miner laufen lassen)
  • Use lower difficulty? (nur bei sehr schnellen Rechner "n" eingeben)
Arduino schürft Duinocoin

Der erste Start! Der Arduino UNO schürft seine ersten DUCO mit satten 258-260 Hashes pro Sekunde...

Das wars! Damit startet der Mining-Prozess.