Von Null auf Witness, Teil 1: Vorbereitungen

in Deutsch Unplugged2 years ago

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:

image.png

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.

image-20220919001753922.png

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:

image.png

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.

image.png

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:

image.png

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.

image.png

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.

image.png

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:

image.png

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:

image.png

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.

image.png

Sort:  

Very good job! The idea of having a condensed version for the more confident is great :)

 2 years ago 

Thanks to your excellent instructions, which are also fun to read, everything has worked so far. Node is syncing right now... :-)

 2 years ago 

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!

 2 years ago 

dass du auf 11 Posts verzichtest

Genau, ich mach 12 :-)

Hatte mich brav durch die von rexthetech gearbeitet

Ich fand die Serie seeeehr genial, fast als ob er neben dir sitzt und alles erklärt - inkl. Kaffeepause.

vor Witnesses nur so wimmeln

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 :-)

 2 years ago 

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

 2 years ago 

Und? Wann läuft so eine Node auf der Raspi... ;-D

Müsste da nicht bloß ein NAS dahinter stehen?
;-))

 2 years ago 

Diese Frage verstehe ich leider nicht.

 2 years ago 

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.

 2 years ago 

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.

 2 years ago 

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...

 2 years ago 

Ups.
Als ich dir darauf (m)eine freche Antwort posten wollte, hat sich mein (unbemerkterweise) wieder annenes Empathie-Modul dazwischen geschaltet...

 2 years ago 

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... ;-)

 2 years ago 

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.

 2 years ago 

Verwirrend war viele verschiedene alte Anleitungen

Oh ja, das kenn ich auch - inkl. Kreisel im Kopf :-) Manchmal nutze ich noch diese Suche, @seo-boss hat das mal eingerichtet.

zwei fullnode, ahnode und seed eingerichtet / drei dedicate Server

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.

Discord Chanel für deutschsprachige Steem User

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 :)

 2 years ago 

Ich habe auch zwei fullnode, ahnode und seed eingerichtet

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.

Gibt es ein Discord Chanel für deutschsprachige Steem User die manchmal Fragen haben, weil sie nicht weiterkommen?

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.

"https://steemworld.org/" für mich immer noch die beste App bei Steem

Jepp, das kann ich nur bestätigen. Ist auf jeden Fall jeden Tag mein Anlaufpunkt, um zu sehen, was bei mir so passiert ist...

Einrichtung der witness knoten

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 ;-)

Loading...
 2 years ago 

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...

 2 years ago (edited)

Solch eine Fork wäre für mich unter folgenden Voraussetzungen interessant/unterstützenswert:

  • keine Bidbots
  • keine Autovotes
  • kein Premined Stake / Airdrop für wen auch immer (wer den Token besitzen will, muss entweder frisch investieren oder posten; es dürfte nicht gelten, wer viele STEEM besitzt, ist automatisch auch auf der neuen Chain ein Wal)
  • keine Vote-Proxys (Upvotes sollten entweder bewusst oder gar nicht vergeben werden)
  • Witness-Votes besitzen ein Verfallsdatum und müssen regelmäßig bewusst erneuert werden (keine Witness-Proxies)

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). :)

 2 years ago 

Keine Sorge, das ist keine Aufforderung an dich, irgendetwas zu unternehmen

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 kranken angeschlagenen 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...

 2 years ago 

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 🙏

 2 years ago 

Im Moment sind so viele neue Witnesses am Start

Huch, hab ich gar nicht so mitbekommen, bis auf steemwow natürlich. Find es sehr schade, dass er noch auf Platz 96 rumkrebst.

da durchzusteigen ist eine Herausforderung

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!

ne Fork...

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.

nicht die richtige IP eingetragen

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.

 2 years ago 

hab ich gar nicht so mitbekommen

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.

Da wär ich gespannt!

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.

Nein, da hab ich bissl gemogelt, ist nicht meine

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...

 2 years ago (edited)

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

 2 years ago 

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.

 2 years ago 

!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!

 2 years ago 

It's not hard, but it takes time ;-)
Thanks for your comment!

This post has been featured in the latest edition of Steem News...

 2 years ago 

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

 2 years ago 

Thank you @ubongudofot!