ZTEX

 
Produkte
FPGA-Boards
  USB-FPGA-Modul 1.15
  USB-FPGA-Modul 1.15x
  USB-FPGA-Modul 1.15y
  USB-FPGA-Modul 1.11
  USB-FPGA-Modul 1.2
  Experimentierboard 1.3
  Experimentierboard 1.2
  Analog-Experimentierboard
  Stromversorgungs-Modul 1.1
  Referenz-Designs
USB-Mikrocontroller Boards
  USB-Modul
  USB-XMEGA-Modul
Zum ZTEX Shop ZTEX Shop
SDK und Beispiele
  Übersicht
  Dokumentation
  Downloads
  Beispiel
  Versions-Geschichte
  ZTEX Wiki
 
  BTCMiner - Bitcoin-Miner
OS Rabattprogramm
 
Downloads
 
Kontakt
Impressum
AGB
RoHS
 
    Hauptseite / Produkte         SDK    
    Zum ZTEX Shop Shop   
    Wiki / Foren         Downloads    
    deutsch     englisch    

BTCMiner - Bitcoin-Miner für ZTEX FPGA-Boards

BTCMiner ist eine Bitcoin-Miner-Software, welche es ermöglicht, Geld mit ZTEX USB-FPGA-Modulen zu verdienen. Da diese FPGA-Boards ein USB-Interface besitzen, ist keine zusätzliche Hardware (wie JTAG-Programmiergeräte) erforderlich. Mittels Standard-USB-Hubs können kostengünstige FPGA-Cluster aufgebaut werden.

Eigenschaften

  • Unterstützte FPGA-Boards:
  • Dynamische Frequenz-Einstellung / Overclocking auf Basis von Fehlerraten-Messung, d.h. BTCMiner bestimmt automatisch die Frequenz mit der höchsten Rate gültiger Hashes.
  • Cluster-Modus: eine Software-Instanz kann viel FPGA Board steuern (bis zu mehrere hundert, begrenzt durch die Anzahl der USB-Controller)
  • Hot-Plugging: neue Geräte können währen der Laufzeit hinzugefügt / entfernt werden.
  • Verringerung der Stales durch Long-Polling und Block-Überwachung
  • Backup-Server / Mining-Pools
  • Möglichkeit der Nummerierung der FPGA-Boards und Cluster-Partitionierung mittels dieser Gerätenummern
  • Stromsparmodus nach 5min Inaktivität oder per Kommando
  • Überhitzungsschutz durch Abschaltung bei starken Fehleranstieg
  • Ereignisaufzeichnung (Logging)
  • Paket ist quelloffen
  • Fertig übersetzte Bitstreams d.h. es wird keine Xilinx-Software oder -Lizenz benötigt

Benutzung

Alle benötigten Dateien befinden sich in einen einzigen JAR-Archiv, welches im Download-Abschnitt heruntergeladen werden kann und welches unter Linux and Windows läuft. Windows-Nutzer müssen den libusb-Treiber des SDK's installieren. Weitere Details und Software-Voraussetzungen befinden sich im Running an Example Tutorial.

Für Mac-Nutzer gibt es eine Portierung als Nutzerbeitrag: Wiki: MacOS-Portierung.

Allgemeines

Um Rechen-Arbeit zu erhalten und die Resultate zu versenden muss BTCMiner mit einem bitcoin-Server oder Mining-Pool verbunden werden:

java -cp ZtexBTCMiner-<release>.jar BTCMiner [-host <host url>] -u <username> -p <password> \
     [-b <host url> <username> <password> [-b ...]] \
     [-l <log file>] [-bl <submitted blocks log file>]

Dabei bezeichnet:

<release> die Versionsnummer (siehe Download-Abschnitt)
<host url> die URL des Servers mit dem verbunden werden soll ist. Die URL muss das Protokoll und die Port-Nummer enthalten und sieht gewöhnlich wie folgt aus: http://<hostname>:8332. Die URL eines lokalen Servers ist http://127.0.0.1:8332 (Voreinstellung).
<username> einen Benutzernamen für den Server
<password> ein Passwort für den Benutzer
<log file> einen Dateinamen für eine Datei, in der Meldungen aufgezeichnet werden. (optional)
<submitted blocks log file> einen Dateinamen für eine Datei, in der die eingereichten Blöcke aufgezeichnet werden. (optional)

Mit -host, -u und -p werden die Zugangsdaten für den primären Server / Mining-Pool angegeben, mit -b können Backup-Server / -Pools definiert werden. Mehrere alternative Adressen können durch mehrmalige Angabe von -b festgelegt werden. Die Backup-Zugänge werden verwendet, wenn der Zugriff zum primären Server / Mining-Pool gestört ist.

Eine Liste aller möglichen Parameter wird durch

java -cp ZtexBTCMiner-<release>.jar BTCMiner -h

ausgegeben.

Betrieb eines einzelnen FPGA-Boards

Der Befehl, um eine einzelnen FPGA-Miner zu starten, lautet:

java -cp ZtexBTCMiner-<release>.jar BTCMiner -host <host url> -u <username> -p <password> \
     [-b <host url> <username> <password> [-b ...]] \
     [-l <log file>] [-bl <submitted blocks log file>] \
     [-f <firmware file>] [-d <device number;]

Dabei bezeichnet

<firmware file> eine Firmware-Datei aus der Firmware-Liste. Dieser Parameter wird nicht benötigt, wenn die Firmware im EEPROM installiert wurde.
<device number> Sind mehrere FPGA-Boards am USB, kann des Gerät mit dieser Nummer angegeben werden. Eine Liste der verfügbaren Geräte kann mittels der Option -i ausgegeben werden.

Beispiel:

java -cp ZtexBTCMiner-120417jar BTCMiner -host "http://pool.net:8443" -u me -p topsecret \
     -f ztex_ufm1_15d4.ihx

Betrieb eines FPGA-Clusters

Im Cluster-Modus scannt BTCMiner den USB nach FPGA-Boards mit installierter Firmware und startet diese. Deshalb muss die Firmware zuvor im EEPROM mittels des Programmier-Modus installiert werden:

java -cp ZtexBTCMiner-<release>.jar BTCMiner -m p -f <firmware file> \
     [-s <serial number string>] [-pt <string>] [-ps <serial number string>]

Dabei bezeichnet

<firmware file> eine Firmware-Datei aus der Firmware-Liste
<serial number string> eine Serien-Nummer. Das kann eine beliebige Zeichenfolge mit bis zu 10 Buchstaben sein. Standardmäßig hat jedes FPGA-Board eine eindeutige Seriennummer. Größere Cluster sind aber handlicher, wenn diese Nummer durch einen geeigneteren Wert überschrieben wird.

Wenn weder -pt noch -ps angegeben werden, programmiert BTCMiner nur unkonfigurierte FPGA-Boards. Um Geräte erneut zu programmieren, können mittels der Parameter -pt und -ps FPGA-Boards nach Typ (siehe Firmware-Liste) oder nach Serien-Nummer selektiert werden. In allen Modi können einzelne Geräte von der Geräteliste (siehe -i) mittels -d gewählt werden. Wird dieser Parameter nicht angegeben werden alle passenden FPGA-Boards programmiert.

Beispiel:

java -cp ZtexBTCMiner-120417.jar BTCMiner -m p -f ztex_ufm1_15d4.ihx -s 01-02-01
programmiert ein USB-FPGA-Modul 1.15d (mit XC6SLX150) das erste Mal.

java -cp ZtexBTCMiner-120417.jar BTCMiner -m p -ps 01-02-01 -f ztex_ufm1_15d4.ihx
programmiert das FPGA-Board aus dem vorherigen Beispiel neu.

java -cp ZtexBTCMiner-120417.jar BTCMiner -m p -pt ztex_ufm1_15d4 -f ztex_ufm1_15d4.ihx
programmiert alle FPGA-Boards, welche zuvor mit ztex_ufm1_15d4.ihx beschrieben wurden, neu.

Nachdem auf allen FPGA-Boards Firmware installiert wurde, kann der Cluster wie folgt gestartet werden:

java -cp ZtexBTCMiner-<release>.jar BTCMiner -host <host url> -u <username> -p <password> \
     [-b <host url> <username> <password> [-b ...]] \
     [-l <log file>] [-bl <submitted blocks log file>] \
     -m c [-n <Number of devices per thread>]

Dabei bezeichnet

<Number of devices per thread> die maximale Anzahl von FPGA-Boards je Thread. Voreinstellung ist 10.

Im Cluster-Modus wird ein Thread je Bus gestartet. Wenn die Anzahl der FPGA-Boards an einem Bus größer als der mit -n angegebene Wert ist, werden zusätzliche Threads gestartet. Ein Wert zwischen 5 und 20 wird empfohlen, wenn BTCMiner über das Internet verbunden ist (Mining-Pools). Für eine Lokale Konfiguration wird der Wert 127 (=maximale Anzahl der Geräte pro Bus) empfohlen.

Im Cluster-Modus können neue FPGA-Boards im laufenden Betrieb angesteckt werden. Ein erneuter Scan des Busses wird mit dem Kommando r initiiert.

Firmware- und FPGA-Board-Übersicht

Firmware-Datei FPGA-Board FPGA-Typ Typ (für -pt benutzt) Frequenz-Schritte Minimale Hash-Rate Typische Hash-Rate Energieverbrauch
ztex_ufm1_15y1.ihx USB-FPGA-Modul 1.15y Vier Xilinx Spartan 6 XC6SLX150-N3 ztex_ufm1_15y1 4 MHz 770 MH/s 850 MH/s 38 W @ 210 MHz
ztex_ufm1_15d4.ihx USB-FPGA-Modul 1.15d und
USB-FPGA-Module 1.15x
Xilinx Spartan 6 XC6SLX150-3/-N3 ztex_ufm1_15d4 4 MHz 190 MH/s 210 MH/s 9.4 W @ 210 MHz
ztex_ufm1_15b1.ihx USB-FPGA Module 1.15b Xilinx Spartan 6 XC6SLX75-3 ztex_ufm1_15b1 8 MHz 84 MH/s 90 MH/s 5.0 W @ 184 MHz
ztex_ufm1_15d.ihx USB-FPGA-Modul 1.15 und
USB-FPGA-Module 1.15x
Dummy-Firmware: Ermöglicht BTCMiner das Gerät zu Identifizieren und automatisch die aktuelle Firmware zu laden.
ztex_ufm1_15y.ihx USB-FPGA-Modul 1.15y Dummy-Firmware: Ermöglicht BTCMiner das Gerät zu Identifizieren und automatisch die aktuelle Firmware zu laden.

Der Energieverbrauch der USB-FPGA-Module 1.15b and 1.15d wurde mit einem Experimentier-Board 1.3 bei einer externen Versorgungsspannung von 12V gemessen. USB-FPGA-Module 1.15x und 1.15y haben On-Board-Spannungsregler. Der Energieverbrauch dieser FPGA-Boards wurde bei 12V Eingangsspannung gemessen.

Kühlung uns Stromverbrauch

Der Energieverbrauch ist in der Tabelle oben aufgelistet.

Um Überhitzung zu vermeiden ist die Verwendung der mit den FPGA-Boards gelieferten Kühlkörper sowie ein geringer Luftstrom ist erforderlich. Gibt is keine Gehäuselüfter können größere Kühlkörper für das USB-FPGA-Modul 1.15b (LX75) oder Kühlkörper mit 25mm Lüfter für das USB-FPGA-Modul 1.15d (LX150) erworben werden. USB-FPGA-Module 1.15x (LX150) und USB-FPGA-Module 1.15y (4 × LX150) werden mit 40mm Lüftern ausgeliefert.

Downloads

Version-Nummer JAR-Archiv (Linux and Windows) Quell-Paket Neuerungen
120417 ZtexBTCMiner-120417.jar ZtexBTCMiner-120417.tar.bz2 Neue Funktionen:
  • Unterstützung für USB-FPGA-Module 1.15y
  • Neues Kommando: s(uspend): Versetzt Cluster in den Stromsparmodus
  • Neues Kommando: c(ounter_reset): Setzt Performance- und Fehlerzähler zurück
  • Cluster-Partitionierung mittels Seriennummer-Filter
  • Dummy Firmware: ermöglicht BTCMiner das Gerät zu Identifizieren und automatisch die aktuelle Firmware zu laden.
120221 ZtexBTCMiner-120221.jar ZtexBTCMiner-120221.tar.bz2
  • Neue Funktion: Verbesserter Überhitzungsschutz durch Abschaltung bei starken Frequenz-Abfall
120208 ZtexBTCMiner-120208.jar ZtexBTCMiner-120208.tar.bz2
  • Verschiedene Bugfixes
  • Verbesserte Performance
120126 ZtexBTCMiner-120126.jar ZtexBTCMiner-120126.tar.bz2
  • Verbesserte Performance
  • Stale-Reduktion durch Long-Polling und Block-Überwachung
  • Schnellere Konfiguration
111214 ZtexBTCMiner-111214.jar ZtexBTCMiner-111214.tar.bz2
  • Verbesserte Performance
111114 ZtexBTCMiner-111114.jar ZtexBTCMiner-111114.tar.bz2
  • Backup-Server / -Mining-Pools
  • Verbessertes Verhalten bei schlechter Server-Verbindung
111020 ZtexBTCMiner-111020.jar ZtexBTCMiner-111020.tar.bz2
  • Verbesserte Performance
  • Unterstützung von Hot-Plugging im Cluster-Modus
  • Begrenzung der Anzahl der FPGA-Boards je Thread durch den Parameter -n
  • Verbesserte Frequenz-Anpassung: Hysterese vermeidet häufige Frequnzwechsel
110826 ZtexBTCMiner-110826.jar ZtexBTCMiner-110826.tar.bz2 Erste Version


[Home]  [Impressum]   
© ZTEX GmbH