Von Null auf Witness, Teil 1: Vorbereitungen
Nachdem @rexthetech mit seiner Serie "Zero to Witness" eine wunderbare Anleitung geschrieben hat, wird es Zeit dies jetzt auszuprobieren. Hier die Links zu den 11 Teilen:
Part 1: We need a big computer
Part 2: Connecting to the server
Part 3: Securing the server
Part 4: Enabling certificate authentication
Part 5: Downloading the blockchain
Part 6: Unpacking the blockchain and configuring Steem
Part 7: Starting and syncing Steem
Part 8: Witness responsibilities
Part 9: Generating witness keys
Part 10: Witness Up!
Part 11: Publishing the Price Feed
In diesem und den noch folgenden 1-2 Beiträgen werde ich meine Erfahrungen mitschreiben. Ob ich den finalen Befehl der den Witness letztendlich aktiviert ausführe, weiß ich jetzt noch nicht. Jedenfalls soll eine leicht nachvollziehbare deutsche Anleitung entstehen, denn so etwas gibt es wohl nicht, zumindest keine die auf dem aktuellen Stand wäre.
Danke an @blockseater für How to be Witness, denn die Preise für einen in Part 1 erforderlichen Server waren mir zu hoch, mit einem VPS für unter 20,-- Euro/Monat sieht die Geschichte schon besser aus.
Also los geht's, mieten wir unseren Server bei Contabo:
Der Cloud VPS L kostet inkl. MwSt. 17,84 € pro Monat, die fettgedruckten 14,99 ist der Nettopreis. Ich nehme keine zusätzlichen Add-Ons und bleibe vorerst auch bei der bewährten Ubuntu 20.04 Version. Für die Einrichtung des VPS wird eine voraussichtliche Dauer von 3 Stunden angegeben, bei mir dauerte es nur 8 Minuten.
Das Kind bekommt einen Namen
Wie bei jeder Geburt, geben wir unserem Kind zuerst einen Namen. Der Hintergrund, ein Name tippt sich nicht nur leichter als eine IP-Adresse, er lässt sich auch leichter merken. Die Möglichkeit kannte ich noch nicht, sehr praktisch - Danke an @rexthetech für den Tipp.
Dazu mit
sudo nano /etc/hosts
die zuständige Datei öffnen, dort eine neue Zeile mit der IP des VPS und den gewünschten Namen einfügen.
Die IP ist im Begrüßungsmail und natürlich auch im Kundenaccount zu finden.
Erster Login
Mit ssh root@witness
wird die Verbindung aufgebaut.
Beim ersten Login kommt die Meldung Are you sure you want to continue connecting (yes/no)? weil der PC diese IP noch nicht kennt. Einfach mit yes bestätigen und schon sind wir auf unserem brandneuen Server:
Wow - das ging schnell, wunderbar!
System Update
Zuerst aktualisieren wir unseren Server:
apt update
apt upgrade
Diesmal wurde ein neuer Kernel installiert, zu erkennen an der Ausgabe Setting up linux-modules-5.4.0-125-generic, wobei 5.4.0-125 die neu installierte Version ist. Mit uname -r
können wir uns den aktuell laufenden Kernel anzeigen lassen. Aktuell läuft noch 5.4.0-105.
Nach jedem Systemupdate ist es ratsam, insbesondere wenn ein neuer Kernel installiert wurde, den Server mit shutdown -r now
neu zu starten. Die SSH Verbindung wird dabei unterbrochen, nach 1-2 Minuten sollte der Server wieder online sein.
Neuen User anlegen
Für alltägliche Aufgaben nutzen wir nicht den Superuser root sondern erstellen dafür einen neuen User, @rexthetech hat diesen in seiner Anleitung steem genannt, so bleibe ich dabei.
adduser steem
Damit der neue User sudo ausführen darf:
usermod -aG sudo steem
Zertifikat-Authentifizierung einrichten
Dazu öffnen wir ein neues Terminal auf dem PC.
ssh-keygen -t ed25519 -f ~/.ssh/id_witness
Dieser Befehl erzeugt die nötigen Schlüssel, im Verzeichnis ~/.ssh befinden sich danach zwei neue Dateien, id_witness mit dem privaten und id_witness.pub mit dem public Schlüssel.
Der Public-Key muss jetzt nur noch auf den VPS hochgeladen werden, dies erledigt:
ssh-copy-id -i ~/.ssh/id_witness.pub steem@witness
Dieser Befehl schreibt den Key von id_witness.pub in die Datei ~/.ssh/authorized_keys am VPS.
So sieht es im Terminal aus:
Jetzt sagen wir dem System noch, welchen Schlüssel es für die Verbindung verwenden soll.
nano ~/.ssh/config
In die config Datei schreiben wir folgende zwei Zeilen:
Host witness
IdentityFile ~/.ssh/id_witness
Mit Strg-O Änderung speichern und mit Strg-X editor verlassen.
Zertifikat-Authentifizierung testen
Hat alles geklappt, wird nach ssh steem@witness
beim ersten Login das Passwort für den vorher mittels ssh-keygen
generierten Key abgefragt und danach die Verbindung hergestellt.
Snapshoot erstellen
Die nächsten Schritte sind etwas triggy, wir deaktivieren den Passwort-Login und auch den Superuser root lassen wir nicht mehr auf den Server. Ein guter Zeitpunkt zuerst einen Snapshoot zu machen, falls etwas schief laufen sollte.
Die Funktion ist im Kundenaccount bei Contabo unter "VPS-Steuerung" zu finden.
Passwort-Authentifizierung deaktivieren
sudo nano /etc/ssh/sshd_config
In der Datei sshd_config den Punkt PasswordAuthentication suchen und von no auf yes setzen, ggf. # am Beginn der Zeile löschen. Um den Login von Superuser root zu verhindern, ganz am Ende PermitRootLogin ebenfalls auf no setzen.
Speichern und Nano schließen. Um die Änderung wirksam werden zu lassen:
sudo systemctl restart ssh
Ein kleiner Test in einem 2ten Terminal am PC:
Yes - passt! Es wird nicht mehr nach einem Passwort gefragt, sondern die Verbindung sofort abgelehnt. ssh root@wintness
gibt ebenfalls eine Fehlermeldung aus.
Firewall einrichten
Installation mit:
sudo apt install ufw
SSH und Port 2001 erlauben:
sudo ufw default deny
sudo ufw allow OpenSSH
sudo ufw allow 2001/tcp
Firewall aktivieren:
sudo ufw enable
Status prüfen:
sudo ufw status
Ausgabe:
Pause!
So, jetzt sind wir startklar! Part 1 bis 4 aus @rexthetech Anleitung sind erledigt, als nächstes bringen wir die Chain zum Laufen - doch zuerst haben wir uns eine Pause verdient.
Very good job! The idea of having a condensed version for the more confident is great :)
Thanks to your excellent instructions, which are also fun to read, everything has worked so far. Node is syncing right now... :-)
Uiuiui, da bin ich aber froh, dass du auf 11 Posts verzichtest... ;-)
Hatte mich brav dirch die von rexthetech gearbeitet. Bei der Technik zwar abgeschaltet, aber irgendwie war's schon interessant, das Drumherum... ;-)
Und? Wann läuft so eine Node auf der Raspi... ;-D
Wird es hier nun auch bald vor deutschen Witnesses nur so wimmeln, wie einst auf dem Blurt? Wann gibt's die nächste Fork?
Ach, nimm mich nicht so ernst! Ich freue mich total, dass sich ein paar Freaks mit der Materie auseinandersetzen. Jede Bewegung ist ein Zeichen von Entwicklung, also vielen Dank!
Genau, ich mach 12 :-)
Ich fand die Serie seeeehr genial, fast als ob er neben dir sitzt und alles erklärt - inkl. Kaffeepause.
Haha, bestimmt!
War letzte Woche ziemlich mies drauf, mein Energiepegel war schon lange nicht mehr so dermaßen im Keller, da musste ich mir einfach etwas suchen was ansatzweise Freude macht. Die Therapie wirkt :-)
Oh, wie schön!
Ich muss mir auch eine suchen, jedenfalls bezüglich Steemit. Aber deine Therapie kann ich nicht auf mich übertragen - da bekäme ich höchstens graue Haare... ;-D
Müsste da nicht bloß ein NAS dahinter stehen?
;-))
Diese Frage verstehe ich leider nicht.
Ein Raspi wird wohl angesichts des empfohlenen Arbeitsspeichers wohl für eine solche Aufgabe nicht in Frage kommen, selbst wenn hinter dem Raspi ein Netzwerkspeicher (NAS) steht, der die Daten der Blockchain aufnimmt...
Es gab von etainclub mal einen Versuch dazu, der aber meines Wissens nicht zum Erfolg geführt hat.
Auf dem Blurt machen sie es ja mit Raspis + großer Speicherkarte. Irgendwie hatte gefühlt plötzlich alle ne Raspi und nen Witness. War mir schon ein wenig suspekt, hat mir ehrlich gesagt die Vorstellung vom Witness als begabten, engagierten Nerd ein wenig genommen. Der "Zauber" verflüchtigte sich, als ich merkte, mit dem richtigen Code kann jeder Witness.
Ja, bei Blurt scheint die Datenmenge wohl nicht so riesig. Habe dort auch mal einen Beitrag gelesen, dass es auf einem Raspi läuft.
Du hast recht: Ein Witness sollte mehr sein, als jemand der einen Block-Produzier-Knoten betreibt. Das gehört natürlich dazu, aber danach sollte es nicht aufhören...
Ups.
Als ich dir darauf (m)eine freche Antwort posten wollte, hat sich mein (unbemerkterweise) wieder annenes Empathie-Modul dazwischen geschaltet...
Hm. Lieber eine freche Antwort als gar keine Erklärung. Mit annem Empathie-Modul war's ja vermutlich sogar witzig (gemeint). Nützt mir nur nix, wenn ich's nicht verstehe. Und es ärgert mich immer sehr, wenn ich nicht weiß, wo ich denn nun so fest auf der Leitung stehe... ;-)
Nix Leitung.
Network Attached Storage.
Sehr schöön @michelangelo3
"Jedenfalls soll eine leicht nachvollziehbare deutsche Anleitung entstehen, denn so etwas gibt es wohl nicht, zumindest keine, die auf dem aktuellen Stand wäre." << vollkommen richtig, ich habe mich bei der Einrichtung der witness knoten ziemlich schwergetan, obwohl der witness knoten der leichteste ist. Verwirrend war viele verschiedene alte Anleitungen. Ich habe auch zwei fullnode, ahnode und seed eingerichtet einer davon ist publik und bei dem andere experimentiere ich. Insgesamt habe ich zurzeit drei dedicate Server am Laufen. Freundlicherweise hat symbionts den "https://api.campingclub.me/" RPC NODES Testing liste aufgenommen und justy hat darauf gar nicht reagiert steht auch nicht auf seine test liste. Seed habe ich auch eingerichtet "seed.campingclub.me:2001" ausprobiert habe bei @steemchiller auf der seite "https://steemworld.org/" für mich immer noch die beste App bei Steem und es funktioniert Ergebnis: seed.campingclub.me:2001 >26 ms . Ich würde mich freuen, wenn @steemchiller auf seine Liste aufnehmen könnte. :) Gibt es ein Discord Chanel für deutschsprachige Steem User die manchmal Fragen haben, weil sie nicht weiterkommen?
Auf jeden Fall finde ich großartig von dir, dass du den Anfang machst und den Stein ins Rollen bringst, mein Lob an dich. Ich bin auf dein weitere Tutorials jetzt schon neugierig.
Oh ja, das kenn ich auch - inkl. Kreisel im Kopf :-) Manchmal nutze ich noch diese Suche, @seo-boss hat das mal eingerichtet.
Oh, da bist ja gut unterwegs! Mir geht's wie moecki, ich hab zu den Begriffen keine klare Vorstellung, er hat in seinem Kommentar eh schon um Erleuchtung gebeten.
Jedenfalls hört sich deine "Konfiguration" mit drei Servern nach Arbeit an und geschenkt bekommt man die Teile ja auch nicht.
Du meist für deutschsprachige Witness? Nein, kenn ich nicht, nur den Witness-Kanal bei SteemGlobal, aber da bist du ja schon drin.
Jetzt bin ich ja nicht mehr so allein, großartig das du damit angefangen hast, das freut mich :)
Kannst du vielleicht kurz erklären, was es mit den verschiedenen Knoten auf sich hat?
Fullnode kann ich mir noch vorstellen: der bietet die APIs an... aber dann hört es schon auf.
Hm, gibt schon welche, allerdings sind die, die ich kenne, eher nicht weniger technikorientiert. Ansonsten eben englische...
Aber vielleicht hat noch jemand dazu mehr Infos.
Jepp, das kann ich nur bestätigen. Ist auf jeden Fall jeden Tag mein Anlaufpunkt, um zu sehen, was bei mir so passiert ist...
Was mich da mal interessieren würde: Wenn du den Knoten eingerichtet hast, hast du sicher die Docker-Version genommen. Hast du dann dort den compilierten Code aus dem Steem-Repo auf dem Server? Oder sind das noch anderen Codes? Vielleicht kannst du ein wenig zur Erhellung beitragen, bevor ich den Docker-Container auseinandernehmen muss ;-)
Hey, sehr cool von dir, dass Ganze mal in deutsch zu machen.
Ich behalte eure Posts dazu im Hinterkopf... in Form eines Lesezeichens :-)
Im Moment sind so viele neue Witnesses am Start. Ich hoffe nur, dass da auch wirklich mal ne Fork in Aussicht gestellt werden kann....
Ich hab neulich ne Fork der Steem-Repo in meinem Git angelegt, aber da durchzusteigen ist eine Herausforderung, die einige Zeit in Anspruch nimmt... Zusätzlich muss man noch die boost-Library installieren.... naja, da ist nicht immer die nötige Motivation vorhanden ;-)
Ach ja, ich hoffe, du hast im Screenshot der hosts-Datei nicht die richtige IP eingetragen...
Solch eine Fork wäre für mich unter folgenden Voraussetzungen interessant/unterstützenswert:
Interessant wäre außerdem:
Irgendein ausgeklügeltes 'Voting-CSI-System' à la Steemchiller sollte sowohl die "Reputation" beeinflussen (statt diese einfach aufgrund der erzielten Geldmenge zu berechnen) als auch möglicherweise den Curation-Reward pro Upvote.
ein System, das Downvotes zwar erlaubt (z. B. im Falle von Plagiarismus, Spam, kriminellen Inhalten, subjektiv überbewerten Posts), es aber verhindert, dass einzelne User andere aufgrund persönlicher Abneigung oder einfach nur unterschiedlicher Meinung permanent mit Flags 'stalken'
-> eventuell Gremien verifizierter User, die gegebenenfalls (nach Abstimmung) ungerechtfertigte Downvotes kontern könnten?
Gäbe es ein System welches Multiaccounts einer Person zu verhindern wüsste (1 User -> 1 Vote), ohne das Prinzip blockchainbasierter sozialer Medien, Pseudonymität der User zu gewährleisten, aufzuheben, wäre das sehr wünschenswert ...
Keine Sorge, das ist keine Aufforderung an dich, irgendetwas zu unternehmen, sondern eigentlich eher eine Zusammenfassung meiner eigenen diversen, wirren Gedanken zum Thema in einem einzigen Kommentar (für mich selbst zum bei Bedarf nachschlagen). :)
Puh, nochmal davon gekommen ;-))
Ich glaube vieles davon wäre als Verbesserungsvorschlag durchaus gerechtfertigt. Auf jeden Fall besser, als die ewig gleichen Vorschläge wie: Wir müssen mehr neue User von außen gewinnen... Klar, wäre das schön. Man wird mit einem
krankenangeschlagenen System aber keine Mengen neuer User gewinnen. Besser wäre es, den Unterbau den geänderten Bedingungen anzupassen und das System so für neue User/Schreiber, ja sogar Investoren, attraktiver zu machen...Wer will, dass sich "Quality Content" durchsetzt (auch um eine Plattform für neue User und Investoren attraktiv erscheinen zu lassen), muss einfach dafür sorgen, dass vor dem Voten das Bewerten des Contents stattfindet, sei es durch Biobrains oder irgendeine ausgeklüglete KI.
Für Upvotes zu zahlen oder automatisch zu voten, hat damit nicht das Geringste zu tun. Und diese beiden Verhaltensweisen sind m. E. das Grundübel, welches dafür sorgt, dass STEEM und HIVE bisher letztlich darin gescheitert sind, ihrem ursprünglichen Anspruch gerecht zu werden.
I ther can you please reply on discord 🙏
Huch, hab ich gar nicht so mitbekommen, bis auf steemwow natürlich. Find es sehr schade, dass er noch auf Platz 96 rumkrebst.
Herausforderung? Grausam! Hab vor langer, langer Zeit ;-) beim Blurt Frontend nur das Kommentarfeld etwas größer gemacht, normal ein Ding von Minuten... Also viel Glück und gute Nerven!
Da wär ich gespannt! Etwas schlanker vielleicht, so wie es Blurt gemacht hat und vor allem mit Menschen in der "Regierung" die nicht nur an ihre eigene Tasche denken.
Haha, 100 Punkte! War schon gespannt wem das auffällt. Nein, da hab ich bissl gemogelt, ist nicht meine. Wobei das wohl auch nicht so schlimm wäre, außer du hast "Freunde" die es dir besonders gut meinen.
Oh doch, ich habe es seit einiger Zeit beobachtet. Irgendwie ist mir da sogar zu viel Bewegung drin. Steemchiller ist wegen des deleted votes von rme auf Platz zwei gerutscht. Aktuell sogar auf Platz 3!!! Das rührt wiederum daher, dass dieser neue Wal hungry-griffin mit seinen 4M-Votes einen neuen bengalischen Witness unterstützt, bei dem wiederum ebenfalls rme im Boot ist...
Naja, und dann halt der visionaer3003 und jcornel.wit.
Naja, ich hab ja nur das Repo geforkt, das heißt noch nicht, dass ich es auch zum Laufen bekomme. Ich kriege es aktuell nicht mehr compiliert, da mir noch Bibliotheken (und weitere Motivation) fehlen...
Scheue mich auch ein wenig, das auf meinem "normalen" Rechner zum Laufen zu bringen. Wahrscheinlich werde ich mir dafür lieber eine VM einrichten, damit ich mit Snapshots arbeiten kann... naja, mal sehen.
Davon bin ich eigentlich auch ausgegangen, da du die IP an anderen Stellen auch verpixelt hattest :-)
This post has been featured in the latest edition of Witness Weekly...
Ich denk´ja immer -> wieso nicht ein älteres Smartphone im Heime einfach ´Rum serverieren könntete .
Kein Witness unbedingt , wegen dem vielen Speicher , aber einfach ´ne Node mit Bot , hihi , egal , ist nicht das Thema , 20 in Monat , aha , und das geht dann mit einer nichttop Witness zu finanzieren ??
!invest_vote
Ja, wär bissl schwierig mit nem Handy, allein wg. der rund 400Gb...
Haha, finanzieren kannst getrost vergessen, schätze da müsstest schon unter die Top30 oder so.
!invest_vote
@udabeu denkt du hast ein Vote durch @investinthefutur verdient!
@udabeu thinks you have earned a vote of @investinthefutur !
That’s a lot of hard work!
It's not hard, but it takes time ;-)
Thanks for your comment!
This post has been featured in the latest edition of Steem News...
Oh, I have to say, I thought there wasn't much activity here on Steem anymore regarding Witness. But through your posts I've seen that there is a lot going on here. Thanks for the mention and for the informations in your blog.
There is definitely an upsurge in witness activity at the moment which is a very good sign.
Good luck if you decide to become a witness.
!invest_vote
Congratulations!
This post has been upvoted by steemcurator07, due to the good quality of its content.
Curated By - @ubongudofot
Curation Team - Team 4 Curators
Thank you @ubongudofot!