Wie man eine ZenCash Secure Node erstellt und bedient – vollständiger Leitfaden!
Es ist mir eine Freude euch in Deutsch den letzten und aktuellsten Teil von Rolf aka Blockoperations Anleitungen
zum Thema Secure Nodes präsentieren zu dürfen. Vielen Dank an Jeffrey Ross für die Übersetzung und leichten Anpassungen!
Das englische Original kann unter KLICK aufgerufen werden. Falls Ihr Anmerkungen/Verbesserungen
habt schreibt am besten
Tross und mich im Slack / Discord / Forum an! Viel Spaß beim Ausprobieren:
Dieser Guide beinhaltet Teil 1, Teil 2, Teil 2.5 und weiter Informationen. Es ist nicht zwingend notwendig die anderen Guides zu lesen, es sei denn Sie möchten mehr darüber erfahren wie und warum Dinge so gemacht werden sollten, wie in diesem Leitfaden gezeigt werden.
Sichere Knotengrundanforderungen: Der Server benötigt einen 64-Bit-Prozessor und ein Betriebssystem um die Anforderungen eines sicheren Knotens zu erfüllen. Dieser benötigt außerdem Zugriff auf einen ordentlichen Prozessorkern und insgesamt 4 GB Arbeitsspeicher. Dieser Arbeitsspeicher kann Swap beinhalten wenn der Speicherzugriff schnell genug ist.Um sich für ZenCash Secure Node-Zahlungen zu qualifizieren, muss der Secure Node-Server die Challenge-Berechnung in weniger als 5 Minuten oder 300 Sekunden durchführen können. Die Herausforderung besteht darin eine abgeschirmte ZenCash-Transaktion zu generieren die sowohl die Eignung des Servers demonstriert als auch dazu beiträgt viele abgeschirmte Transaktionen pro Tag zu erstellen. Dadurch wird die Sicherheit eines jeden Benutzers von abgeschirmten Transaktionen erhöht. Es wird außerdem eine eindeutige IPv4- oder IPv6-Adresse und ein von der Zertifizierungsstelle generiertes TLS-Zertifikat benötigt. Dies bedeutet, dass Sie auch einen Domain-Namen benötigen. Dieses Handbuch zeigt wie Sie ein kostenloses Zertifikat erhalten, indem Sie ein Skript auf dem Server ausführen. Es wäre sicherer, aber auch teurer, ein Zertifikat für Ihren Secure Node zu erwerben. Weiterhin wird zeigt wie Sie eine Installation mit Ubuntu 16.04 durchführen. Andere Versionen von Linux oder Unix sollten auch gut funktionieren. Dies ist ein grundlegender Leitfaden für einen erfahrenen Linux-Systemadministrator zum schnellen Kopieren und Einfügen von Befehlen. Installieren Sie Linux OS auf einem VPS oder Ihrem eigenen Server.
Installieren Sie nicht als [ROOT USER!] Sehen Sie sich weitere Tutorials zum Einrichten eines VPS an, wenn Sie Hilfe benötigen. Tutorials sind zum Beispiel bei Linode verfügbar, wenn Sie nicht wissen wie Sie einen Server für einen normalen Benutzer einrichten.
Erste Schritte auf einem Linode VPS:
- Erstellen Sie einen ZenCash-Knoten
- Aktualisieren Sie den Server und installieren Sie eine Anwendung zur zufälligen Passwortgenerierung:
sudo apt-get update && sudo apt-get -y upgrade
sudo apt -y install pwgen - Festplattenspeicher prüfen:
free -h
df -hWenn Sie nicht mehr als 4 GB Arbeitsspeicher haben, nachdem Sie Ihren vorhandenen Mem und Swap hinzufügen, fügen Sie dem Server etwas Swap Platz hinzu:sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Erstellen Sie die Swap und Neustart:
sudo su –
cat <<EOF >> /etc/fstab
/swapfile none swap sw 0 0
EOF
Exit - Machen Sie den Swap besser! Tun Sie dies für Ihren vorhandenen Swap oder auch wenn Sie keine hinzugefügt haben. Diese Einstellung lässt den Server warten bis der Speicher zu 90% belegt ist, bevor die Festplatte als Arbeitsspeicher verwendet wird:
sudo su –
cat <<EOF >> /etc/sysctl.conf
vm.swappiness=10
EOF
Exit - Prüfen Sie schließlich Ihren freien Speicher und checken Sie Ihre Kapazität auf Ihrer Festplatte:
free -h
df -h
Option 1 – Installieren Sie Zen von Paketen – schneller Weg
Installieren Sie Zen aus Paketen der Github Pakete:
sudo apt-get update
sudo apt-get install apt-transport-https lsb-release
echo ‘deb https://zencashofficial.github.io/repo/ ‘$(lsb_release -cs)’ main’ | sudo tee –append /etc/apt/sources.list.d/zen.list
gpg –keyserver ha.pool.sks-keyservers.net –recv 219F55740BBF7A1CE368BA45FB7053CE4991B669gpg –export 219F55740BBF7A1CE368BA45FB7053CE4991B669 | sudo apt-key
add –
sudo apt-get update
sudo apt-get install zen
#Bemerkung hier wird final Installiert
zen-fetch-params
ENDE DER OPTION 1 – Zen von Paketen installieren
Option 2 – Kompilieren von Zen direkt aus der Quelle – langsamer Weg
Erstellen Sie ein Verzeichnis und kopieren Sie die Zen Node-Anwendung
mkdir ~/zencash
cd ~/zencash
git clone https://github.com/HorizenOfficial/zen.git
Installieren Sie erforderliche Pakete für die Zen-Knoten-Anwendung:
sudo apt -y install build-essential pkg-config libc6-dev m4 g++-multilib autoconf
libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake
Download zk-SNARK parameters:
cd zen./zcutil/fetch-params.sh
Warten Sie bis die Parameter heruntergeladen wurden. Kompilieren Sie die Zen-Anwendung:
/zcutil/build.sh -j$(nproc)
Warten Sie bis sich das Zend aufgebaut hat. Installieren Sie zend und zen-cli im Binärverzeichnis des Benutzers und führen Sie zend einmal aus um Dateien zu kopieren:
sudo cp ~/zencash/zen/src/zend /usr/bin/
sudo cp ~/zencash/zen/src/zen-cli /usr/bin/
ENDE DER OPTION 2 – Kompilieren Sie Zen aus der Quelle
Zen konfigurieren
Führen Sie zend einmal aus und lesen Sie die Nachricht aus. Es hält dann an.
zend
- Erstellen Sie eine neue Zen-Konfigurationsdatei. Kopieren Sie das und fügen Sie es in die Befehlszeile ein:
USERNAME=$(pwgen -s 16 1)
PASSWORD=$(pwgen -s 64 1)
cat <<EOF > ~/.zen/zen.conf
rpcuser=$USERNAME
rpcpassword=$PASSWORD
rpcport=18231
rpcallowip=127.0.0.1
server=1
daemon=1
listen=1
txindex=1
logtimestamps=1
### testnet config
#testnet=1
EOF
- Starten sie die Zen Run the Zen Anwendung als [daemon]:
zend
- Überprüfen Sie den Status und stellen Sie sicher, dass der Block zunimmt:
zen-cli getinfo
Installieren Sie ein kostenloses Zertifikat von LetsEncrypt:
- Erstellen Sie einen A-Datensatz für Ihren Host in Ihrem DNS-Steuerungsfeld für Ihre Domain. Dies ist dein FQDN.
Wo immer ein Wort <CAPS> ist, müssen Sie den entsprechenden Wert eingeben.
Zum Beispiel ist der <FQDN> des ZenCash-Blog-Servers blog.horizen.io
Überprüfen Sie, ob Ihr Domain-Name weitergegeben wurde und mit der öffentlichen IP-Adresse Ihres Servers übereinstimmt:ping <FQDN>Installieren Sie das Acme-Skript zum Erstellen eines Zertifikats:sudo apt install socat
cd
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh –installZertifikat erstellen:FQDN=<FQDN>
echo $FQDNsudo ~/.acme.sh/acme.sh –issue –standalone -d $FQDNEs sollte Ihnen sagen, wo Ihre Zertifikate sind. Sie sollten in:
~/.acme.sh/<FQDN> sein
Installieren Sie die Crontab, die das Ablaufdatum des Skripts überprüft und gegebenenfalls erneuert.sudo crontab -e
Setzen Sie dies am Ende der crontab-Datei ein:
6 0 * * * “/home/<USER>/.acme.sh”/acme.sh –cron –home “/home/<USER>/.acme.sh” > /dev/null
Kopieren Sie das Zwischenautoritätszertifikat in den Ubuntu-Zertifikatspeicher und installieren Sie es. Am besten kopieren Sie den nächsten Abschnitt in eine Textdatei wie Notepad, ersetzen die Felder <USER> und <FQDN> durch Ihren tatsächlichen Benutzernamen, FQDN kopieren und füge den aktualisierten Text dann in die Linux-Befehlszeile ein. Solange Sie für den Rest des Handbuchs angemeldet bleiben, sollten Sie die FQDN-Zeile nicht mehr als einmal kopieren und einfügen müssen. Verwenden Sie die Tabulatortaste, die Leertaste und die Eingabetaste um durch das CA-Zertifikat-Menü zu navigieren:
FQDN=<FQDN>
echo “<USER> is $USER”
echo “<FQDN> is $FQDN”
sudo cp /home/$USER/.acme.sh/$FQDN/ca.cer /usr/share/ca-certificates/ca.crt
sudo dpkg-reconfigure ca-certificates
Stoppen Sie die Zen-Anwendung und konfigurieren Sie den Zertifikatspeicherort und starten Sie dann erneut zend:
FQDN=<FQDN>
zen-cli stop
cat <<EOF >> ~/.zen/zen.conf
tlscertpath=/home/$USER/.acme.sh/$FQDN/$FQDN.cer
tlskeypath=/home/$USER/.acme.sh/$FQDN/$FQDN.key
EOF
zendPrüfe das TLS Zertifikat – Eine Zeile mit “tls_cert_verified” sollte erscheinen:
truezen-cli getnetworkinfo
Zen-Knoten in Testnet ändern
- Stop den zen [daemon]:
zen-cli stop
Bearbeite ~/.zen/zen.conf Datei und Entferne den Hashtag vor testnet=1
Starte zen [daemon]:zend
Einstellungen für die Stufe “secure node”
Erstellen Sie eine neue transparente Adresse auf Ihrer Swing Wallet – senden Sie diesem 42 Zen. Dies ist die Nebenadresse <T_ADDR>. Senden Sie kein echtes ZEN an den Knoten! Vergewissern Sie sich, dass der ZEN in dieser Adresse bleibt, andernfalls wird Ihr Secure Node seine Prüfungen nicht bestehen.
Hinweis zu Testnet ZenCash. Wenn Sie testnet ZEN benötigen, sollte es machbar sein testnet auf Ihrem PC oder Mac ausführen zu können, indem Sie die Zeile testnet = 1 zur zen.conf-Datei hinzufügen. Starten Sie dann Ihre ZenCash-Brieftasche und Sie sollten eine transparente Testnetze-Adresse haben. Fragen Sie nach 50 Testnet ZEN im ZenCash Slack oder Discord #securenodes Kanal und posten Sie Ihr Testnetz <T_ADDR>. Jemand wird dir etwas schicken und danach wirst du weglaufen und rennen.
Überprüfen Sie, ob der Knoten bereits eine abgeschirmte Adresse hat:
zen-cli z_listaddresses
Wenn nicht, erstellen Sie eine abgeschirmte Adresse auf dem Zen-Knoten:
zen-cli z_getnewaddress
Diese Adresse wird als <Z_ADDR> bezeichnet. Sende 5 Transaktionen von 0.25 zen an <Z_ADDR> von der ZenCash-Brieftasche, die du auf deinem PC oder Mac hast. Überprüfen Sie, ob der Knoten weiß, dass er Geld hat. Du bist bereit, wenn es mehr als 1 ZEN hat:
zen-cli z_gettotalbalance
Installieren Sie die Tracker-Anwendung. Wenn Sie Ihre Tracker-Anwendung installieren, lesen Sie die Upgrade-Anleitung hier
Install npm and Node.js:
sudo apt -y install npm
sudo npm install -g n
sudo n latest
Kopieren Sie dieses Repository und installieren Sie dann die Knotenmodule:
mkdir ~/zencash
cd ~/zencash
git clone https://github.com/HorizenOfficial/secnodetracker.git
cd secnodetracker
npm install
Führen Sie die Knoten-Setup-Anwendung aus. Sie benötigen <T_ADDR> und eine E-Mail-Adresse zum Empfangen
node setup.js
Starten Sie die Tracking-App und stellen Sie sicher dass sie funktioniert:
node app.js
Überprüfen Sie den Status Ihres Knotens auf der Secure Node Tracker-Website:
https://securenodes.zensystem.io/
Wenn es aussieht als ob es richtig registriert wurde und insgesamt gut aussieht, geben Sie ctrl-c ein um die App zu beenden. Als nächstes werden wir Node-App als Prozess ausführen: Referenz ist Psyrax Blog Post
cd ~/zencash/secnodetracker/
sudo npm install pm2 -g
pm2 start app.js –name securenodetracker
Autostart hinzufügen:
pm2 startup
Sie müssen einen Befehl kopieren und einfügen, damit pm2 beim Booten startet – es sagt Ihnen, was zu tun ist. Installieren und konfigurieren Sie monit so, dass die zen-Knoten-Anwendung ausgeführt wird. Installieren Sie monit:
sudo apt install monit
Erstellen Sie eine kleine Datei, um zend zu starten. Bearbeite es mit:
nano ~/zen_node.sh
or
vim ~/zen_node.sh
Fügen Sie dies in die Datei ein. Ersetzen Sie Ihren tatsächlichen Benutzernamen für <USER>
#!/bin/bash
PID_FILE=’/home/<USER>/.zen/zen_node.pid’
start() {
touch $PID_FILE
eval “/bin/su <USER> -c ‘/usr/bin/zend 2>&1 >> /dev/null'”
PID=$(ps aux | grep zend | grep -v grep | awk ‘{print $2}’)
echo “Starting zend with PID $PID”
echo $PID > $PID_FILE
}
stop () {
pkill zend
rm $PID_FILE
echo “Stopping zend”
}
case $1 in
start)
start
;;
stop)
stop
;;
*)
echo “usage: zend {start|stop}” ;;
esac
exit 0
Mache die Hilfsdatei ausführbar:
chmod u+x ~/zen_node.sh
Fügen Sie die Konfigurationseinstellungen am unteren Rand der Monit-Konfiguration hinzu, indem Sie sie diese bearbeiten:
sudo nano /etc/monit/monitrc
or
sudo vim /etc/monit/monitrc
Fügen Sie dies unten in die Datei ein. Ersetzen Sie Ihren tatsächlichen Benutzernamen für <USER>:
### added on setup for zend
set httpd port 2812
use address localhost # only accept connection from localhost
allow localhost # allow localhost to connect to the server
#
### zend process control
check process zend with pidfile /home/<USER>/.zen/zen_node.pid
start program = “/home/<USER>/zen_node.sh start” with timeout 60 seconds
stop program = “/home/<USER>/zen_node.sh stop”
Laden Sie die neue Konfiguration:
sudo monit reload
Aktivieren Sie den Überwachungsdienst:
sudo monit start zend
Das ist es. Sie müssen das von oben nur einmal tun. Sie können den Status von monit mit dem folgenden Befehl überprüfen:
sudo monit status
Dadurch wird die Zend-Anwendung ausgeführt. Wenn Sie es stoppen, wird es neu gestartet. Wenn Sie es wirklich stoppen müssen, geben Sie Folgendes ein:
sudo monit stop zend
Hinzufügen einer Basissicherheit zum Server
Erstellen Sie eine Firewall:
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow http/tcp
sudo ufw allow https/tcp
sudo ufw allow 9033/tcp
sudo ufw allow 19033/tcp
sudo ufw logging on
sudo ufw enable
Installieren und aktivieren Sie das Sperren von Anmeldeversuchen für Wörterbuchangriffe:
sudo apt -y install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Install a rootkit detector:
sudo apt -y install rkhunter
Wenn Sie nach der E-Mail-Konfiguration fragen, wählen Sie “Internet Site” und geben Sie Ihren FQDN auf der nächsten Seite ein. Erstellen Sie ein Upgrade-Skript, das auch den Rootkit-Jäger aktualisiert, nachdem Sie Ihren Knoten aktualisiert haben:
cat <<EOF > ~/upgrade_script.sh
#!/bin/bash
sudo apt update
sudo apt -y dist-upgrade
sudo apt -y autoremove
sudo rkhunter –propupd
EOF
Ändern Sie die Berechtigungen um die Ausführung des Skripts zu aktivieren:
chmod u+x ~/upgrade_script.sh
Wenn Sie den Knoten aktualisieren möchten führen Sie das Upgrade-Skript aus indem Sie Folgendes eingeben:
sudo ~/upgrade_script.sh
Sie sollten jetzt einen ZenCash Secure Node haben. Hoffentlich erfüllt es die Challenge-Zeiten weiterhin erfolgreich für Sie.
Finale Test
Starten Sie Ihren Server neu und prüfen Sie ob alles wieder hochgefahren wird wie gewünscht.
sudo reboot
Nach dem Neustart verbinden Sie sich neu und überprüfen Sie ob alles funktioniert:
sudo monit status
pm2 status
zen-cli getinfo
zen-cli getnetworkinfo
Das sollte alles für einen einfachen sicheren Knoten sein. Ist es möglich Dinge besser bzw. anders oder stilvoller zu machen? Ja ist es! Lasst es mich in den Kommentaren wissen.