Masternode Installation
ENTWURF
Installation DefiChain Masternode mit einer lokalen APP-Wallet und einer Masternode in der Cloud:
Für diese Installation benötigst du:
20.011 DFI (20.000 als Collateral, 10 DFI für die Erstellung der Masternode und 1 DFI für anfallende Gebühren) Einen Windows, MacBook oder Linuxrechner mit einer installierten und synchronisierten Wallet. Ein VPS eines Providers, vorzugsweise Debian 10 (64-Bit). Der VPS sollte mindestens 2-4 vCPUs haben, 4 GB (besser 8) RAM und mindestens 120GB Festpatte mit Erweiterungsmöglichkeit
1. Einrichtung deiner APP-Wallet Wir gehen davon aus, das du bereits eine funktionierende und synchronisierte Wallet auf deinem Rechner zuhause laufen hast. Starte diese und lege dir eine neue Empfangsadresse im Legacyformat an. Öffne dazu die CLI (Kommandozeile) in der APP und setze folgenden Befehl ab:
getnewaddress "<label>" legacy
Als Label gibst du eine frei wählbare bezeichnung an, z.B. "Masternode1". Alternativ kanns du die Legacy-Adresse auch in der GUI anlegen. Gehe dazu auf deine DFI-Wallet, wähle "Empfangen" und + Neue Adresse. Vergiss nicht unter den erweiterten Optionen den Adresstyp Legacy auszuwählen. Die neu erstellte Adresse beginnt dann mit einer 8. Bitte notiere dir diese als "Owneradresse", wir brauchen diese später.
Sende deine 20.000 DFI an diese neu erstellte Adresse in deiner Wallet.
Nun gehts das erste mal auf den VPS. Wir gehen davon aus, das dieser bereits vom Provider deiner Wahl bereitgestellt wurde.
Logge dich per SSH als root-User auf deinem VPS ein.
Mit diesem Befehl kannst du prüfen, welche Version dein Server installiert hat:
lsb_release -a
Zeigt er dir das an, was du erwartest (z.B. Debian 10 (64-Bit)) kannst du weiter zum nächsten Schritt.
Als erstes prüfen wir, ob unser Betriebssystem ausstehende Updates hat.
apt update && apt full-upgrade
Wenn Updates anstehen, installiere diese, wenn nicht, gratulation zum aktuell gehaltenen System.
Wir benötigen für die weitere Vorgehensweise die Packages nano und sudo. Ersteres ist ein Editor zur Bearbeitung von Config-Files, sudo ist die Option, mit einem nicht root-user erweiterte Rechte zu erhalten. Da wir unserem Root-User später den Zugriff per SSH verweigern wollen, ist auch dieses Tool notwendig.
Mit den beiden Befehlen:
apt install sudo apt install nano
installieren wir die benötigten Pakete, falls sie schon installiert sind, wird uns die Kommandozeile darauf hinweisen.
Der nächste Schritt ist ein neuer User. Wir nennen ihn der einfacherhalber "defichain" Du kannst den Namen frei wählen, wenn du einen anderen verwenden möchtest, passe die zweite Befehlszeile an und trage deinen gewählten Usernamen dort ein:
adduser defichain sudo usermod -a -G sudo defichain
Nachdem wir ein Passwort vergeben haben und die abefragten Felder wie Name und Firma einfach mit Enter bestätigen, ist es Zeit uns mit unserem neu angelegten User anzumelden. Wir verlassen die Konsole mit exit und starten eine neue Session auf unseren Server. jetzt nicht mit root, sondern mit dem User Defichain einloggen.
Klappts? Hervorragend, dann sperren wir aus Sicherheitsgründen unseren Root-User erstmal aus, so daß es Angreifern schwer gemacht wird, in unser System zu kommen:
sudo nano /etc/ssh/sshd_config
Mit diesem Befehl starten wir den Editor nano und öffnen die Config unseres SSH-Umgebung.
Sucht nach folgender zeile:
PermitRootLogin Yes
und ändert diese zu:
PermitRootLogin no
Mit Ctrl+X verlassen wir das Programm, werden zum speichern aufgefordert und vergessen nicht das auch zu tun, sonst war unsere Änderung für die Tonne.
Nun starten wir den SSh-Dienst neu und haben unser System etwas abgesichert.
sudo systemctl restart ssh
Wir befinden uns standardmäßig in unserem Homeverzeichnis, wenn ihr den gleichen Benutzernamen wie oben vorgeschlagen genommen habt, ist dies:
/home/defichain/
Jetzt gehts an die Nodesoftware. Ladet euch dazu die aktuelle Version direkt von github herunter. Das geht mit:
wget https://github.com/DeFiCh/ain/releases/download/v1.5.1/defichain-1.5.1-x86_64-pc-linux-gnu.tar.gz
Danach entpacken wir das Paket mit dem Befehl:
tar -xvzf defichain-1.5.1-x86_64-pc-linux-gnu.tar.gz
Nun legen wir uns ein neuen Verzeichnis an und kopieren die benötigten Dateien aus dem entpackten Verzeichnis dort hinein.
mkdir /home/defichain/.defi
cp ./defichain-1.5.0/bin/* /home/defichain/.defi
Das wars schon, wir haben die Node auf unserem VPS aufgesetzt. Jetzt kommt der langwierige Teil: Synchronisieren. Dazu starten wir die Node mit dem Befehl:
/home/defichain/.defi/defid -daemon
Der Schalter -daemon bewirkt, das die Node im Hintergrund ausgeführt wird und nicht direkt in der Shell läuft und sich wieder beendet, wenn wir uns ausloggen.
Der Sync-Vorgang dauert nun einige Zeit. Wir prüfen den Fortschritt mit:
/home/defichain/.defi/defi-cli getblockcount
Normal wird dir dort einige zeit eine 0 zurückgegeben, das heisst deine Node sucht noch nach anderen Nodes, um sich die aktuelle Blockchain herunterzuladen. Aber wir sind ja nicht von gestern und verleihen unserer Node einen kleinen Boost, indem wir ihr 2 bereits bekannte Nodes mit dem Befehl addnode bekanntmachen, von der die Blockchain heruntergeladen werden kann:
/home/defichain/.defi/defi-cli addnode "45.157.177.82:8555" add /home/defichain/.defi/defi-cli addnode "185.244.194.174:8555" add
Nach ein paar Sekunden prüfen wir, ob unsere Node sich bereits mit anderen Nodes verbunden hat:
/home/defichain/./defi/defi-cli getconnectioncount
Hier sollte dann keine 0 stehen, falls doch, mach dich bei deinem Provider schlau, ob evtl. der Port 8555 gesperrt ist und lasse diesen ggf. freischalten.
nach 1-2 Minuten prüfen wir den Status erneut mit
/home/defichain/.defi/defi-cli getblockcount
Evtl. müssen wir den Befehl im Abstand von 1-2 Minuten wiederholt eingeben, ehe die 0 verschwindet und die ersten Blöcke hereinprasseln. Sobald die synchronisierte Blockanzahl steigt, können wir uns erstmal ausgiebig selber feiern, wir sind fast am Ziel. Die Synchronisierung dauerte mehrere Stunden, also spart es euch vor dem Rechner zu sitzen und den geblockcount reinzuklopfen. Es dauert, das ist aber völlig normal in einem dezentralen System.
Wir konfigurieren jetzt unseren Server noch so, das er nach eiem reboot unsere Node direkt wieder startet:
crontab -e
für das automatische Ausführen von Programmen oder Scripten. Ans Ende der vielen Kommentarzeilen schreiben wir:
- * * * * pidof defid || /home/defichain/.defi/defid
und bestätigen 1x mit Enter, damit nach dieser Zeile eine neue Zeile beginnt, ansonsten könnt ihr nicht speichern. Die Zeile bewirkt, das nach jedem Neustart unsere Node auch startet und sich diese auch erneut startet, sollte sie mal abstürzen.
Wir prüfen nochmal die Blockhöhe mit dem oben genannten Befehl (na, wer weiss ihn noch ohne spickeln?) und sind entweder zufrieden das es bald durch ist oder machen jetzt erstmal eine Pause, bis der Sync vollständig ist. Die aktuelle Blockhöhe könnt ihr unter https://explorer.defichain.com abrufen.
Ist der Sync endlich durch, gehts an die letzten Schritte am VPS:
Wir legen uns wie auch schon in unserer lokalen Wallet eine neue Legacy-Adresse an. Da wir hier keine GUI haben, bleibts bei der Kommandozeile:
/home/defichain/.defi/defi-cli getnewaddress "MeinecooleMasternode" legacy
Wenn ihr alles korrekt abgetippt habt, erhaltet ihr wieder eine neue Adresse die mit einer 8 beginnt. Auch diese notieren, und zwar als Adresse eurer "Operatornode"
Jetzt müssen wir noch die defi.conf anpassen.
nano /home/defichain/.defi/defi.conf
Da diese noch nicht existiert oder leer ist, geben wir dort ein paar Zeilen Code ein:
server=1 daemon=1 gen=1 masternode_operator=OPERATOR_ADDRESS
bei OPERATOR_ADDRESS gib deine neu erstellte Adresse von oben ein (die auf dem VPS generiert wurde), du hast sie dir extra notiert.
Damit die Config greift, müssen wir die Node neustarten. Das Passiert mit dem Befehl:
killall defi-init
Damit wird die Node "abgeschossen". Und wie starte ich sie wieder? Du erinnerst dich an unseren crontab-Eintrag, die Node startet in maximal 1 Minute erneut.
Prüfen kannst du das mit dem Befehl TOP, unter dem User defichain muss hier - meist an oberster Stelle - eine defi-init zu finden sein.
Halleluja, das wars, unser VPS ist fertig, die Node läuft.
Jetzt fehlt noch der Schritt zur Erstellung unserer Node. Dazu gehen wir jetzt auf unsere lokale Wallet auf unserem Rechner. Je nach Betriebssystem, finden wir die defi.conf an anderer Stelle, die wir ebenfalls anpassen müssen.
Windows: %username%\.defi\ oder c:\users\deinwindowsanmeldename\.defi Mac: Mach dich bitte schlau, ich habe keine Ahnung :-) Linux: ~/.defi/defi.conf
Öffnet die Datei mit einem Editor eurer Wahl und trage folgenden Einzeiler ein:
masternode_owner=OWNER_ADDRESS
Das Wort OWNER_ADDRESS ersetzt ihr mit eurer erstellten Legacy-Adresse, welche die 20.000 DFI hält. Und jetzt die Erstellung, welche uns 10 DFI kostet. Keine Sorge, mit dem ersten Reward sind diese 10 DFI um ein vielfaches wieder drin ;-)
createmasternode OWNER_ADDRESS OPERATOR_ADDRESS
Die Adressen natürlich wieder ersetzen: Owner ist die der lokalen Wallet, Operator die vom VPS.
Fertig, herzlichen Glückwunsch, geschafft.
Warte ein paar Minuten und prüfe unter mydeficha.in/masternode.php ob deine Adressen dort auftauchen. Nach einiger Zeit sollte der Status von Pre-Enabled auch auf Enabled gehen, dann hast du alles richtig gemacht.