Von Null auf Witness, Teil 3: Witness aktivieren

in Deutsch Unplugged2 years ago

In diesem dritten und letzten Teil der Serie erledigen wir die restlichen Schritte für den Sprung zum Witness. Sieht nach viel aus, in der Praxis ist das eine Sache von Minuten.

Als Erstes erstellen wir uns ein paar kleine Skripte:

stop.sh

Mit nano stop.sh Editor starten, darin diese zwei Zeilen einfügen:

docker network disconnect bridge witness

docker stop -t 600 witness

Mit Strg-O gefolgt von Enter stop.sh speichern und mit Strg-X nano beenden.

Genauso legen wir die weiteren Dateien an:

start.sh

docker network connect bridge witness

docker start witness

logs20.sh

docker logs witness -f --tail 20

wallet.sh

docker exec -it witness cli_wallet

Mit

chmod +x stop.sh start.sh logs20.sh wallet.sh

machen wir die eben erstellten Skripte ausführbar, ls -lh zeigt die Dateien jetzt grün an. (Nicht wundern, wallet.sh habe ich erst nach dem Screenshot erstellt.)

image.png

Ein zweites Terminal ist jetzt ganz nützlich, damit können wir beobachten was wir anrichten ;-)

Seednode aus, cli_wallet ein

Node stoppen mit ./stop.sh

image.png

Die Db wurde brav geschlossen - exited cleanly. Wunderbar.

Zunächst zwei kleine Änderungen in der config.ini

nano /steemdata/config.ini

Vor Zeile 2 fügen wir ein # ein, dies bewirkt, dass unser Server nicht mehr als Blockquelle zur Verfügung steht.

image.png

Mit Strg-W suchen wir nach webserver-ws oder scrollen etwas weiter nach unten bis zur Zeile #webserver-ws-endpoint = 0.0.0.0:8090. Dort die Raute # am Anfang der Zeile löschen.

So sollte es danach aussehen:

image.png

Diese Änderung sorgt dafür, dass wir uns mit der cli_wallet verbinden können. Wie gewohnt mit Strg-O gefolgt von Enter speichern und mit Strg-X nano verlassen.

Witness-Keys erzeugen

Mit ./start.sh starten wir die Chain wieder. Eventuell kommen ein paar rote Meldungen, es sollte aber innerhalb einer Minute wieder sycron sein. Falls nicht hilft vielleicht dieser Kommentar.

Sicher ist euch schön öfter diese Meldung beim Starten aufgefallen:

image.png

Die nötigen Schlüssel werden wir jetzt generieren, dazu brauchen wir die bereits erwähnte cli_wallet. Dieses Programm befindet sich im Docker Container, mit dem oben angelegten Skript wallet.sh können wir es starten.

Bereit? Dann los...

./wallet.sh

Dies ist der erste Aufruf von cli_wallet, deshalb müssen wir dafür ein Passwort vergeben. Im Bild unten zu sehen, neben new >>> wird dies mit set_password DeinTotalGeheimesPasswort erledigt.

Danach erscheint locked >>> - durch Eingabe von unlock DeinTotalGeheimesPasswort erhalten wir Zugriff und es erscheint unlocked >>>.

Mit suggest_brain_key erzeugen wir die nötigen Schlüssel für unseren Witness. Dieser Befehl berechnet die Schlüssel und zeigt diese an, weiter passiert nichts. Die erzeugten Schlüssel sicherst du in deinem Passwortmanager oder wo immer du sensible Daten aufbewahrst.

image.png

1 = wif_priv_key, dieser kommt in die config.ini

2 = dein private active Key

Anschließend wird mit import_key der private active Key deines Accounts importiert. Die cli_wallet braucht den active Key um Daten in die Chain schreiben zu können.

An der Stelle ist zu überlegen, ob du deinen Hauptaccount oder einen extra Account für deinen Witness verwenden willst. Vorteile eines extra Accounts, man braucht den active Key des Hauptaccounts nicht in der cli_wallet hinterlegen. Ich denke jedoch, die Gefahr hält sich dabei in Grenzen, weil dieser verschlüsselt im Docker-Container abgelegt wird. Ein weiterer Punkt, falls du in die Top20 kommen solltest, wird dein Hauptaccount nicht mit producer reward Einträgen zugemüllt. Auch verkraftbar, da Steemworld das standardmäßig rausfiltert. Nachteile eines extra Accounts, dein Hauptaccount ist bekannt, den extra angelegten Witness-Account musst du erst bekannt machen. So oder so, es ist wohl eine Geschmacksfrage.

Damit sind wir mit der cli_wallet vorerst fertig, mit Strg-D verlassen wir die cli_wallet und landen wieder im SSH-Terminal.

Witness Account und wif_priv_key eintragen

Jetzt müssen wir den eben erzeugten wif_priv_key in die config.ini eintragen. Zuerst stoppen wir die Chain.

./stop.sh

Dann config.ini öffen, wir können das nun schon im Schlaf:

nano /steemdata/config.ini

Mit Strg-W nach witness = suchen. Neben witness = kommt dein Username oder eben der Account der als Witness fungieren soll. Wichtig ist hier, der Username kommt in doppelte Anführungszeichen.

image.png

Gleich darunter den vorhin in der cli_wallet erzeugten wif_priv_key neben private-key = ohne Anführungszeichen eintragen. Änderung speichern und nano beenden.

Jetzt wird es spannend, bis auf einen Schritt haben wir alles erledigt!

Witness aktivieren

Chain wieder starten:

./start.sh

Und was sehen wir da?

image.png

Launching block production for 1 witnesses. Na, das hört sich doch gut an!

Nur noch eine Kleinigkeit fehlt, die Chain weiß nämlich noch nichts von ihrem Glück - das müssen wir in der cli_wallet noch erledigen:

./wallet.sh

Der Befehl um unseren Witness aktiv zu schalten, sieht in etwa so aus:

update_witness "dein_witness_name" "dein_witness_post" "witness_pub_key" {"account_creation_fee":"3.370 STEEM","maximum_block_size":65536,"sbd_interest_rate":0} true

Beispiel:

update_witness "michelangelo3" "https://steemit.com/@michelangelo3/witness-post" "STM6eKcUEFoF18EFRZKpbVgExgJuBSipw6PX48CwidQ4A19i1ibwm" {"account_creation_fee":"3.370 STEEM","maximum_block_size":65536,"sbd_interest_rate":0} true

Bitte beachten, dies ist nicht der private sondern der mit suggest_brain_key erzeugte public Key! So würde es im Terminal aussehen:

image.png
Nach Absenden dieses Kommandos bist du...

...Jubel, Trommelwirbel und Gratulation:

W I T N E S S !



Das war der Ausflug von Null auf Witness in drei Teilen, hier findest du Teil 1 und Teil 2.

Wie ein Price Feed eingerichtet wird, ist in Part 11 bei @rexthetech beschrieben. Wer bis hierher durchgehalten hat, wird mit Part 11, auch wenn er in englisch geschrieben ist, gut zurecht kommen. Außerdem empfehle ich Part 8, Part 9 und Part 10 zu Gemüte zu führen, diese sind viel ausführlicher als dieser Post.

Ach ja, falls sich jemand Sorgen um die hier gezeigten Schlüssel macht, alles gut! Ich habe alles wieder rückgängig gemacht und mein Server läuft wieder brav als Seednode. Vorerst habe ich noch Lust weiter zu experimentieren und einen aktiven Witness möchte ich nicht unbedingt abschießen - soll bei Experimenten angeblich schon vorgekommen sein :-)

image.png

Sort:  
 2 years ago 

Danke für diesen gelungenen Abschluss. Wie immer absolut gut aufbereitet, so dass beim Nachmachen nicht viel schief gehen kann...
Du machst es mir nicht leicht abzuwarten ;-)

Ich habe mich aber auch schon gefragt, warum manche einen eigenen Account für den Witness anlegen. Ich würde dafür auch nicht wirklich einen Bedarf sehen. Vielleicht wollen sie auch die Witness-Tätigkeit nicht mit dem Bloggen vermischen...

It certainly does add a little work -- and adds a need for cross-branding, because you need to make sure people know your witness account is actually representing you, and they should witness-vote for that and not your main, etc...

The main advantage is that in case of any server compromise, your main Private Active Key isn't in the server wallet (or the price feed config file) waiting to be stolen.

(Sorry für das Englisch, aber du willst mein Deutsch nicht!)

 2 years ago 

Perhaps there is something to be said for creating a witness account at the moment. But perhaps it would be possible to find a way to store the keys in encrypted form.

du willst mein Deutsch nicht

Fortunately, we are very flexible ;-)

 2 years ago 

Thank you

 2 years ago 

Das mit dem PW wie rexhetech schreibt hat schon was, beim Price Feed muss man es anscheinend auch hinterlegen, inwieweit es dort verschlüsselt am Server weiß ich nicht, da ich das noch nicht gemacht habe. Ohne Verschlüsselung würd ich das auch nicht am VPS liegen haben wollen.

Also, ich mach's wie Chriddi, ich vote dann auch einfach moecki.wit :-)

beim Price Feed muss man es anscheinend auch hinterlegen, inwieweit es dort verschlüsselt am Server weiß ich nicht

Liegt unverschlüsselt so wie er ist

Aber jetzt nehmen wir an, es wird gestohlen, was alles passiert dann?

Ich nehme an erst den steem weg transferieren, dann powerdown einleiten, upvoten bis das 0 anzeigt und anschließend downvoten bis es 0 ist. Naya es ist schon gruselig.

 2 years ago 

Liegt unverschlüsselt so wie er ist

Ups, stimmt. Hab gerade nochmal bei Part 11 von rexthetech nachgesehen, da ist es auch so beschrieben.

Der Server muss evtl. gar nicht gehackt werden, bestimmte Mitarbeiter des Providers dürften Zugriff auf die Inhalte des Servers haben, davon gehe ich aus. Den active Key unverschlüsselt auf einem gemieteten Server liegen zu lassen ist wirklich keine gute Idee.

 2 years ago 

thank you for stopping by on my account

 2 years ago 

Schon blöd, wenn die Schlüssel - vielleicht noch der Active Key - dort im Klartext angegeben werden müssen.
Vielleicht könnte man dafür ja auch steempy nutzen. Dort sind die Schlüssel verschlüsselt.

ich vote dann auch einfach moecki.wit

Vielleicht sollte ich mir den Account schon mal sichern ;-)

 2 years ago 

Mein Vote geht an @michelangelo3.wit… 😉

 2 years ago 

Ha ha, das wäre eine Option. Momentan sagt mein Bauch zum Thema Witness: "Tu dir das nicht an". Und da ist sich Bauch und Kopf ausnahmsweise einig :-)

Excellent!!

 2 years ago 

...und ich muss mal das Schwarze Quadrat nochmal vergrößert anschauen, ob da nicht oben links in der Ecke steht:
C:\Users\Malevich>

;-))

Vorerst habe ich noch Lust weiter zu experimentieren

Vergiss bitte nicht darüber zu berichten :)

 2 years ago 

Werd ich machen, sofern es was interessantes gibt...

Congratulations senior

This post has been featured in the latest edition of Witness Weekly...

 2 years ago 

Glad to hear, thanks!

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

 2 years ago 

thank you for stopping by on my account

 2 years ago 

Gladly, could happen again :-)

 2 years ago 

que Allah nos bendiga a todos éxito siempre

 2 years ago 

Amén, las oraciones están con nosotros.

 2 years ago 

Very good

 2 years ago 

Thank you

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.034
BTC 62759.93
ETH 3112.27
USDT 1.00
SBD 3.87