Smart Mining auf einem Raspberry PI3



Den Raspi als Miner für Coin schürfen ausnutzen



Mining Single Raspberry PI3|Mining Cluster|Loadbalancer

Vorwort :

Mein Zeil war zuerst ein KleinCluster mit 2-3 Raspberry Pi3 für verschiedene Anwendungen wie:
Webserver, Flugüberwachung und Flugfunk für FR24, Smarthaus, Wettercam usw.
Doch irgendwann reichte das ganze nicht mehr aus.

Da wurden aus 2-3 Raspi inzwischen 8 Raspi PI3 im 2x4 Clusterverbund.
Was macht so der Cluster aus 2x4 =8 Raspi inzwischen?
1 x 4 Raspberry PI arbeiten im Clusterverband zum Mining von Smart Coin
1 x 4 Raspberry PI arbeiten im Clusterverband zum Mining von LiteCoin(LTC)
2 Raspi davon laufen zusätzlich als Loadbalancer für Webseiten.
1 Raspi unterstüzt FR24
1 Raspi Smarthaus und Videoüberwachung
1 Raspi Telegrambot,Instagrambot für Bild aus der Wettercam & Wetterdaten mit Upload auf Instagram
1 Raspi als Logger
1 Raspi Nur für Solarüberwachung und Windkraftüberwachung
1 Raspi Backup & Scriptelager

Sie sehen man kann viel machen. als Allzweckpferd ist ein Raspberry PI3 perfect.
Natürlich kann ein Raspi nicht alles machen, sonst wären die Webhoster am Ende.
Irgendwann muss ich leider den 8 Raspi Pi3 Cluster ersetzen durch einen
8 Raspberry PI4x8GB Cluster.
Da aber der Cluster aus Raspberry PI3 mit Solarstrom betrieben wird, sehe ich noch kein Ende.


Und nun viel Spass beim basteln, ausprobieren und vielleicht ernten sie bald ihre eigenen Smart Coins oder LiteCoin (LTC).
Die aktuellen Live - Charts für 1 Smart Cash und 1 Litecoin LTC zum Euro


Diese Charts werden Bereitgestellt von Investing.com

Digitale Währung mit einen Raspi 3
Die wichtigsten Informationen in der Beschreibung ..
Heute zeige ich euch, wie ihr die CPU Mining Software auf einem Raspberry Pi einrichten könnt.
Damit könnt ihr dann Mining betreiben.


* Hinweis 1: Jahresstromverbrauch liegt bei Mittellast von ca. 5,50 Euro.
* Hinweis 2: Mining dauert, also starten und irgendwo in die Ecke stellen und laufen lassen.
* Hinweis 3: meine 3 Miner laufen seit 20.09.2020 mit Strom aus PV Solar und Akku.
* Hinweis 3.1: Raspberry mit normalen Stromverbrauch an der Steckdose

Im Bildbeispiel ist die Berechnung bei Vollast




Linux Befehle:
sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install git automake autoconf pkg-config libcurl4-openssl-dev libjansson-dev libssl-dev libgmp-dev zlib1g-dev make g++ -y

cd /home/pi

sudo git clone https://github.com/tpruvot/cpuminer-multi

cd cpuminer-multi

sudo ./autogen.sh

sudo ./configure

sudo ./build.sh



Finger weg vom Raspi und allein alles automatisch machen lassen wie z.b. Autostart des Mining und Update

Auf der Console ausrühren
crontab -e

0 0 1 * * sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean

#Mining LiteCoin - Crontab Parameter
@reboot sleep 60; cd /home/pi/cpuminer-multi &&nohup ./cpuminer -a yescrypt -o stratum+tcp://yescrypt.mine.zergpool.com:6233 -u LWfqLXXdbjyvwWCyjgitm6rRTBeip7rf93 -p c=LTC,ID=XXXXX,refcode=ae61cd333cacfb94018113dda29857ef &


Dann speichern euren Crontab meist mit (Nano) STRG und X dnanach STRG und Y oder mit(VI) ESC drücken und dann :wq
Und jetzt nach Abschluss, einfach sudo reboot auf der Console eingeben und Enter drücken.


Ich nutze kein Suche nach Ethereum Coin, BitCoin oder Monero XMR
Aufwand und Nutzen.


Raspberry Cluster Miner für Smart Coin schürfen






Mining Single Raspberry PI3|Loadbalancer

Cluster Anleitung für Mining Digitale Währung

Und nun bauen wir uns einen Raspberry Pi3 Cluster auf

Doch was brauchen wir alles dazu ?
3 x Raspberry PI3 + 3 x Netzteil
** Für den Anfang reichen 3 gebraucht Raspberry PI3 aus Bsp. Ebay oder Ebay-Kleinanzeigen
3 x neue Mini SD-Karten 16GB reichen vollkommen aus.
3 x Patchkabel 20-50 cm lang.
1 x Lankabel 1 - 1,5 meter für Verbindung , Router <==> Switch
1 x Switch 5 Port

Nun haben wir alles. OK. Lass die Spiele beginnen........

Als erstes Installieren wir ein ganz frisches Linux Images auf die erste SD Karte.


Nach dem wir Zugang zu Raspberry Pi haben, ändern wir zuerst das Passwort.("Eigentlich logisch")
Danach auf der Console folgenden Befehl ausführen:



Danach: sudo rpi-update
und wir führen einen Reboot durch mit: sudo reboot


Jetzt passen wir das System an mit:
sudo raspi-config
Im Menü gehen wir wie folgt vor:
1 System Option => S4 Hostname und geben den Namen node1 ein
4 Performace Option = P2 GPU Memory tragen wir 16 ein
6 Advaneced Option => A1: Expand Filesystem

Dann auf Finish und das System rebootet.


Als nächstes installieren wir alles für das Clustersystem


Mehr brauchen wir nicht dazu.
Den Raspberry herunterfahren mit : sudo shutdown -h now

Als nächstes entfernern wir die SD-Karte und ziehen ein Images mit "Win32 Disk Imager" bsp. "Cluster-Images.img"
Das Images wird anschließend auf die anderen SD-Karten für die anderen Raspberry übertragen.




Jetzt passen wir unser System dem Netzwerk und allen anderen an:
Schritt 1 auf jeden Raspberry eintragen und anpassen:

Jetzt passen wir das System an mit:
sudo raspi-config
Im Menü gehen wir wie folgt vor:
1 System Option => S4 Hostname und geben den Namen bei dem 2. Raspi node2 und dann beim 3. Raspi node3 ein
Dann auf Finish und das System rebootet.


Schritt 2 auf jedem der 3 Raspberry
Befehl ifconfig
sudo nano /etc/dhcpcd.conf

(Paste&Copy)
interface eth0
static ip_address=192.168.xxx.xxx/24
static routers=192.168.xxx.1
static domain_name_servers=192.168.xxx.1


Schritt 3 :
sudo nano /etc/hosts ( node1)


127.0.1.1 node1
192.168.xxx.xxx node2
192.168.xxx.xxx node3


sudo nano /etc/hosts ( node2)


127.0.1.1 node2
192.168.xxx.xxx node1
192.168.xxx.xxx node3


sudo nano /etc/hosts ( node3)


127.0.1.1 node3
192.168.xxx.xxx node1
192.168.xxx.xxx node2


Jetzt nach dem Eintragen ein: sudo reboot durchführen.
Jetzt testen sie mit ping ob alle node1-3 verfügbar sind.
ping node 2 und ping node3


Schritt 4 SSH verteilen:
Auf jeden der Raspberry's folgendes ausführen:


ssh-keygen
einfach alles mit Enter bestädigen "kein passwort" eingeben


node1
cd ~
cd .ssh/
cp id_rsa.pub node1
scp node1 pi@node2:/home/pi/.ssh
scp node1 pi@node3:/home/pi/.ssh
cat node2>>authorized_keys
cat node3>>authorized_keys


node2
cd ~
cd .ssh/
cp id_rsa.pub node2
scp node2 pi@node1:/home/pi/.ssh
scp node2 pi@node3:/home/pi/.ssh
cat node1>>authorized_keys
cat node3>>authorized_keys


node3
cd ~
cd .ssh/
cp id_rsa.pub node3
scp node3 pi@node1:/home/pi/.ssh
scp node3 pi@node2:/home/pi/.ssh
cat node1>>authorized_keys
cat node2>>authorized_keys


und danach geht es mit: ssh pi@node2 oder ssh pi@node3 usw ohne Passwort.



Schritt 5 NUR auf dem node1 Raspberry:
sudo apt-get install nfs-kernel-server
mkdir /home/pi/cloud
sudo nano /etc/exports
Folgende Zeile eintragen : /home/pi/cloud *(rw,sync,no_root_squash,no_subtree_check)
sudo chmod -R 777 /home/pi/cloud/
sudo update-rc.d rpcbind enable
sudo service rpcbind restart
sudo exportfs -a
sudo service nfs-kernel-server restart



Test auf beide anderen node 2 + 3:
mkdir /home/pi/cloud
sudo mount -t nfs note1:/home/pi/cloud ~/cloud
Test auf der Console: df -h

Folgendes NUR auf node2 und node3 eintragen.
sudo nano /etc/fstab
note1:/home/pi/cloud /home/pi/cloud nfs rw 0 0


sudo reboot


Schritt 6:NUR auf dem node1 Raspberry:


cd cloud/
sudo git clone https://github.com/tpruvot/cpuminer-multi
cd cpuminer-multi/

sudo ./autogen.sh
sudo ./configure
sudo ./build.sh


Schritt 7:


Auf allen 3 Raspi im Clusterverbund eintragen

Crontab -e

# Wir sparen den Strom für HDMI
@reboot sleep 620; /opt/vc/bin/tvservice -o > /dev/null 2>&1
#Uhrzeit des raspberry aktualisieren
@reboot sudo /usr/sbin/ntpdate -s 0.de.pool.ntp.org > /dev/null 2>&1
0 */6 * * * sudo /usr/sbin/ntpdate -s 0.de.pool.ntp.org > /dev/null 2>&1
#Mining LiteCoin - Crontab Parameter
# XXXX = Ihre ID z.b. Raspi-Test oder Name+Ort
@reboot sleep 60; cd /home/pi/cloud/cpuminer-multi &&nohup ./cpuminer -a yescrypt -o stratum+tcp://yescrypt.mine.zergpool.com:6233 -u LWfqLXXdbjyvwWCyjgitm6rRTBeip7rf93 -p c=LTC,ID=XXXXX,refcode=ae61cd333cacfb94018113dda29857ef &

Letzter Schritt:

Da wir kein Wlan oder Bluetooth benötigen deaktivieren wir es auf alles node 1-3.
Netzwerk geht über Lan


sudo nano /boot/config.txt

dtoverlay=disable-wifi
dtoverlay=disable-bt



Optimierungen geht immer und nicht jede kenne ich.

Webserver Loadbalancer auf dem Mining Cluster




Webserver Loadbalancer auf dem Mining Cluster





Mining Single Raspberry PI3|Mining Cluster

Bevor wir anfangen, möchte ich drauf hinweisen, dass die Anleitung nicht für einen Produktivbetrieb genutzt werden sollte. Der Einsatz erfolgt auf eigene Gefahr, ich übernehme keine Haftung für Schäden!


Wir haben ja die Raspberry Pi nicht nur gekauft für das Mining. NEIN
Er kann jetzt auch unsere private Webseite hosten und das mit Loadbalancing.
Und das in ganz wenigen Schritten.
So nutzen wir die Ressourcen der Raspberry PI's


Vorbereitung
Ihr Raspberry hat eine gültige IP Konfiguration und ist im DNS eingetragen
Die Namensauflösung funktioniert auf ihrem Raspberry PI
wir starten mit Zwei Web-Server (WEB1 und WEB2)
Auf beiden Web-Servern ist eine individuelle „index.htm“ hinterlegt. Hinterlegen Sie den Namen jedes Server in der jeweiligen „index.htm“


Als erstes brauchen wir eine Domain. OK. Für den ersten Anfang reicht einen Subdomain.
Einfach bei https://www.duckdns.org anmelden und sich eine Subdomain registieren.
Das ist Kostenlos.




Schritt 1: Installation der Webservers auf allen 3 node

sudo apt-get install nginx

Öffnen Sie die Datei „/etc/nginx/sites-available/default“ mit einem Editor.
sudo nano /etc/nginx/sites-available/default


Passen Sie die config in der Datei „default“ wie nachfolgende beschrieben an.
Bei dieser Konfiguration handelt es sich um eine klassische Lastenverteilung (Round Robin)

upstream www {
server web1.homeserver.de;
server web2.homeserver.de;
}
server {
listen 80;
server_name pi.homeserver.de;
location / {
proxy_pass http://www;
}
}


sudo service nginx restart




Beispiel Konfiguration Load-Balancing mit Gewichtung
Bei dieser Konfiguration wird der erste Web-Server zu 50% belastet

upstream www {
server web1.homeserver.de weight=2;
server web2.homeserver.de;
}




Konfiguration Load-Balancing mit IP-Hash
Beim dieser Konfiguration wird die Client IP herangezogen und der Client terminiert immer auf dem selben Server.


upstream www {
ip_hash;
server web1.homeserver.de;
server web2.homeserver.de;
}



Funktioniert alles, dann machen wir es uns die Arbeit leicht.
Wollen wir jedesmal die Webseiten mehrfach hochspielen? Ich denke nein. Einmal reicht aus.



NUR auf dem node1 Raspberry:
sudo nano /etc/exports
Folgende Zeile eintragen: /var/www/html *(rw,sync,no_root_squash,no_subtree_check)
sudo chmod -R 777 /var/www/html/
sudo chown www-date:www-data /var/www/html
sudo service rpcbind restart
sudo exportfs -a
sudo service nfs-kernel-server restart


NUR auf dem node2 und node 3 Raspberry:
Test auf node2 und node3 die Verbindung

sudo mount -t nfs note1:/var/www/html /var/www/html
Funktioniert ? Oki Doki => Auf node2 und node 3

Folgendes dann NUR auf node2 und node3 eintragen.

sudo nano /etc/fstab
note1:/var/www/html /var/www/html nfs rw 0 0



Diese Installation ist ohne SSL-Verschlüsselung und php Erweiterung.
Feinheiten und wie oben beschrieben Optimierungen sollte jeder selbst für sich herausfinden.
Optimierung Loadbalancer https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
Kostenloses Letsencrypt SSL Cert für Nginx

Wollen Sie den WebCluster und Loadbalancer aktiv nutzen.
Benötigen Sie eine echte Domain mit dynamischen IP Update
SSL Verschlüsselung auf dem Loadbalancer
Portfreigabe für Port 80 und Port 443 auf ihrem Heimrouter
SSH Sperre für externen Zugriff
Tip: sudo nano /etc/ssh/sshd_config

Protocol 2
PermitEmptyPasswords no
PermitRootLogin no

speichern und danach sudo service ssh restart
Der erste einfach Schutz ist fertig
Externer SSH Zugriff nur mit VPN Lösung oder SSH Tunnel
Dazu installieren wir: sudo apt-get install autossh
Hier ein Snipped-Code
Wir suchen uns einen der 3 Node aus
Nennen wir das Script: ssh-tunnel-auto.sh
cd /home/pi
nano ssh-tunnel-auto.sh


Ein Beispiel:
#!/bin/sh
#Tunnel starten (im Hintergrund)
autossh -M 0 -f -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 7739:localhost:22 pi@www.homeserver.de &
exit 0

Das script starten wir automatisch im crontab
@reboot sleep 30; cd /home/pi/ &&sudo ./ssh-tunnel-auto.sh &

Portfreigabe und Weiterleitung auf dem Homerouter einrichten.
Externer Port 7739 routet auf den ausgesuchten node intern auf Port 22

Und schon können Sie mit einem Putty Client mit sssh auf Port 7739 auf ihren Homeserver zugreifen.
Nicht zu vergessen einen Firewall zu installieren mit sudo apt-get install fail2ban


Brauchen Sie noch einen FTP Server für Ihre Webseite auf dem Webseiten Cluster ? Kein problem.
Jetzt überlegen wir, muss der FTP von aussen erreichbar sein ? oder kann man das von intern abwicklen.
Wenn es intern aussreicht, dann keine SSH Tunnel nutzten und kein Portforward im Heimrouter anlegen und freigeben.
Und lassen den letzten externen Schritt aus.


Erklärt in wenigen Schritte.

sudo apt-get install proftpd

und sobald das Menü fur den Proftpd kommt, einfach standalone anklicken.
fertig.

sudo nano /etc/proftpd/proftpd.conf

DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off


cd /etc/proftpd/

sudo ftpasswd --passwd --name webmaster --uid 33 --gid 33 --home /var/www/html/ --shell /bin/false

ein Passwort eingeben.

sudo /etc/init.d/proftpd restart

sudo chmod g+s /var/www/html
sudo chmod 775 /var/www/html
sudo chown -R www-data:www-data /var/www/html

Der FTP Server ist nun einsatzbereit.

Letzter externe Schritt:
Für externes Hochspielen müssen sie noch den FTP Port 7740 für extern und auf intern Port 21 am Heimrouter freigeben.
Das SSH Tunnelscript anpassen wie z.b. -R 7740:localhost:21
Das würde dann so in der Art aussehen.
Ein Beispiel:

#!/bin/sh
#Tunnel starten (im Hintergrund)
autossh -M 0 -f -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 7740:localhost:21 -R 7739:localhost:22 pi@www.homeserver.de &
exit 0





Stromsparen beim Raspberry :
Zur Installation braucht man einen Monitor. aber danach nun nicht mehr. Also AUS damit.
Und das ganz einfach im Crontab. Wir haben ja SSH.
# Wir sparen den Strom für HDMI nach 10 Minuten geht der HDMI Port auf aus.
@reboot sleep 620; /opt/vc/bin/tvservice -o > /dev/null 2>&1
Unsere Raspberry arbeiten im Netzwerk mit Kabel. Brauchen wir dazu Bluetooth und Wlan? NEIN. Also ebenfalls AUS damit.
sudo nano /boot/config.txt
dtoverlay=disable-wifi
dtoverlay=disable-bt

Ob man jetzt noch die LED ausschaltet? Jeder sollte selbst enscheiden. Ich lasse die an.
Da wir LAN benötigen, können wir kein USB deaktivieren.
USB bleibt an damit man dort einen extrenen USB Platte anschließen kann als Backuplösung, Sicherungslösung



Ansicht :: Home| Kontakt
Copyright 2014-2024 by www.binecho.de. All rights reserved
Die Vervielfältigung, insbesondere das Kopieren unserer Websites,
Grafiken und Sourcecodes ist nicht gestattet (§§53,54 UrhG) und strafbar (§ 106 UrhG).
Im Fall der Zuwiderhandlung wird Strafantrag gestellt!