1. Find the right virtuall server.

Wir haben uns für den V-Server Anbieter Strato ( www.strato.de ) entschieden. Durch die Anforderungen, welche erst später vollständig ausgenutzt werden, kommen nur die Produkte V-Server Linux V60 und V80 in Frage. Als Betriebsystem wird Ubuntu 18.04 LTS verwendet und alle Befehle werden als Benutzer „root“ ausgeführt. Falls Ihr nicht „root“ seid, müsst ihr „sudo“ vor den Befehlen ergänzen.

We choose a V-Server from Strato ( www.strato.de ). The requirements needed for the Witness fulfills only by the V-Server Linux V60 or V80. If you can’t use strato, you could choose a other provider with the same power. Recommended is also to use a physical server. If you aren’t “root” you need to add “sudo” before the Command.

2. Install required tools

Als erstes werden ein paar Programme installiert, welche während der Installation bzw. danach benötigt werden:

First we install some required tools:

apt-get install apt-transport-https ca-certificates curl software-properties-common nano htop vnstat

3. Install Docker

Damit der Dockercontainer installiert werden kann, muss als erstes Docker selbst installiert werden. Die orignale Anleitung ist in Englisch unter docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce zu finden.

Dafür werden als erstes die gpg-Schlüssel des Docker-Servers hinzugefügt:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Überprüfung des Schüssel mit dem von Docker (siehe: docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository ):

apt-key fingerprint 0EBFCD88

Der nächste Schritt ist, die Einbindung des Docker-Repository in die eigenen Paketquellen:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Nun werden die Paketquellen neu eingelesen:

apt-get update

und Docker installiert:

apt-get install docker-ce

Zusätzlich wird noch docker-compose benötigt. Das wird mit

curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

heruntergeladen und gespeichert. Jetzt wird docker-compose nur noch ausführbar gemacht:

chmod +x /usr/local/bin/docker-compose

4. Witness installieren

4.1 Container herunterladen

Dafür wird als erstes das Docker-Abbild der Witness heruntergeladen:

docker pull tokken/witness:3

4.2 Schlüssel generieren und Konfig-Datei erstellen

Als nächstes werden die Schlüssel für die Witness generiert. Dafür wird die Komandozeilen Wallet im Docker-Container gestartet:

docker run -it tokken/witness:3 /usr/local/steemd-full/bin/cli_wallet -s wss://peer.vit.tube

Nun landet man in der Wallet-Console (Konsolenzeile startet mit „new >>>“). Nun erzeugt man die Schüssel der Witness mit den Befehl:

suggest_brain_key

und erält diese Ausgabe:

WICHTIG! Ausgabe an einer sicheren Stelle speichern!

{
  "brain_priv_key": "FEMORA **** **** **** **** **** **** MEIO",
  "wif_priv_key": "5Jv********GE",
  "pub_key": "VIT5********5"
}

Diese Konsole kann danach durch die Tastenkombination  „STRG + D“ wieder verlassen werden.

Als nächstes wird die Konfigurationsdatei für den Docker-Daemon geschrieben, welcher einen der gerade erzeugten Keys enthält:

nano docker-compose.yml

Hinweis: Die Datei wird unter /root/docker-compose.yml (aktuelles Verzeichnis, Startverzeichnis nach SSH-Login, Home-Ordner des Benutzers root) angelegt, solange ihr nicht vorher das Verzeichnis gewechselt habt. Wenn ihr sicher gehen wollt in welchen Verzeichnis ihr euch befindet, könnt ihr es mit diesen Befehl anzeigen lassen: pwd

Der Inhalt der Datei ist folgender (Der STEEMD_PRIVATE_KEY kommt vom Befehl suggest_brain_key und ist der Wert von wif_priv_key) :

vit-witness:
  restart: always
  image: tokken/witness:3
  ports:
    - 8090:8090
    - 2001:2001
  environment:
    USE_WAY_TOO_MUCH_RAM: 1
    USE_FULL_WEB_NODE: 1
    STEEMD_PRIVATE_KEY: 5Jv********GE
    STEEMD_WITNESS_NAME: [Name der Witness]
    STEEMD_SEED_NODES: peer.vit.tube:2001
  volumes:
    - /var/lib/vit-blockchain/production-vit-witness:/var/lib/steemd

Wichtig! Dieser Block darf keine Tabs enthalten (1. Einrückung = 2 Leerzeichen, 2.  Einrückung: 4 Leerzeichen usw.). Wir empfehlen zusätzlich die Zeilenumbüche nicht zu kopieren, sondern in der Konsole selbst durchzuführen.

4.3 Witness starten

Nachdem die Datei gespeichert (STRG+O) und verlassen (STRG + X) wurde, kann nun der Docker-Container durch nachfolgenden Befehl gestartet werden. Ihr müsst immernoch in dem Verzeichnis stehen, wo ihr die
docker-compose.yml abgelegt habt (Prüfen mit ls -al bzw. ll).

docker-compose up -d

Jetzt läuft der Docker-Container. Überprüft werden kann das mit den Befehl:

docker container ls

Danach erhält man die Container ID, welche in den nachfolgenden Befehlen benötigt und eingesetzt wird:

docker logs -f [Container ID]

Dieser Befehl zeigt das Log der Witness an. Um das Log zu verlassen die Tastenkombination STRG+C drücken.

4.4 Witness parametrisieren

Damit die Witness richtig funktioniert, muss sie wie nachfolgend Konfiguriert werden. Jetzt und bei jedem weiteren mal wird die Wallet-Konsole mit folgenden Befehl gestartet:

docker exec -it [Container ID] /usr/local/steemd-full/bin/cli_wallet -s ws://localhost:8090

Nach dem ersten Start steht vor der Konsoleneingabe new >>> und mit den nachfolgenden Befehl wird die Witness-Wallet mit einem Passwort versehen:

set_password "[Hier das Witness Passwort]"

Dadurch ändert sich die Konsoleneingabe von new >>> auf locked >>>. Jetzt wird die Wallet freigeschalten:

unlock "[Hier das Witness Passwort]"

Wichtig! Dieses Passwort wird später zum Voting usw. benötigt!

Jetzt ändert sich die Konsoleneingabe von locked >>> auf unlocked >>> und die Wallet ist offen. Jetzt muss der private Schlüssel von touch.tube/wallet importiert werden. Ganz unten auf der Seite befindet sich der Knopf „Display your private & public keys“ nach der Eingabe des Passworts werden alle Schlüssel angezeigt:

Jetzt muss der Schlüssel active mit den nachfolgenden Befehl importiert werden:

import_key 5JNtn***************************rMp

Der letzte Schritt ist, die Witness aktiv zu schalten. Das geschieht über den Befehl update_witness.

update_witness [Name der Witness] "[Webseite der Witness]" "VIT5********5" {"account_creation_fee":"0.100 VIT","maximum_block_size":131072,"sbd_interest_rate":0} true
NameHerkunft
[Name der Witness]Wurde am Anfang in die docker-compose.yml geschrieben.
[Webseite der Witness]Frei wählbare Webseite. Falls Ihr keine habt könnt ihr euer Touch.Tube Profil verlinken:
https://touch.tube/@[Benutzername]
VIT55********5Das ist der pub_key aus der Ausgabe von suggest_brain_key.

Nachdem Ihr diesen Befehl ausgeführt habt, müsste eure Witness in der Liste explore.vit.tube/witnesses auftauchen. Auch für die Wallet-Konsole gibt es 2 Befehle, welche einen die Witness anziegen:

list_witnesses 1 100

Dieser Befehl zeigt die Top 100 aller Witnesses an (Ab der 1.).

get_active_witnesses

Dieser Befehl zeigt alle aktiven Witness an (Top 20), die aktiv das Netzwerk am Laufen halten.  [Hier ggf. genauer erklären?]

Die Wallet-Konsole  kann nun wieder durch STRG+D verlassen werden.

5. Der erste Vote

Wenn euch diese Anleitung weiter geholfen hat um euren Witness einzurichten und zu starten, würden wir uns freuen wenn ihr für unseren Witness eine Stimme abgeben würdet. (Insgesamt könnt ihr für bis zu 30 Witnesses voten). Das passiert mit dem nachfolgenden Befehl:

vote_for_witness [Name euer Witness],mysticx,true,true

Falls Ihr uns auch noch eine zweite von euren 30 Votes geben wollt, dann bitte an diesen Witness aus unserem Team:

vote_for_witness [Name euer Witness],thekfx,true,true