Heute möchte ich Euch zeigen, wie man einen Iquidus Blockexplorer für die eMark ans laufen bekommt.
Dabei setze ich voraus, das eMarkd installiert ist und die Blockchain voll geladen ist.
Als Verbindung zum Server nutze ich Putty. Lokal unter Ubuntu das Terminal. Achtet bitte darauf, alles unter einem User zu installieren, als root oder sudo su gibt es Probleme mit der Mongo Datenbank.
Nehmen wir an, wir sind als User “fritz” angemeldet.
Nodejs
Als erstes installieren wir Nodejs mit dem den Node Manager:
sudo apt-get update sudo apt-get install build-essential libssl-dev sudo apt-get install curl curl https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
Jetzt müssen wir unser Terminal schließen und uns neu einloggen um NVM nutzen zu können. Zum Testen geben wir
nvm --version
ein und sollten die neueste Version angezeigt bekommen. (v.0.33.4)
Jetzt können wir mit
nvm ls-remote
nachschauen, welche node Versionen verfügbar sind, und installieren v.0.10.48
nvm install v0.10.48
Mit
node -v
schauen wir ob alles geklappt hat.
Mongo Datenbank installieren und einrichten.
Dazu brauchen wir noch das Paket libkrb5-dev und installieren dann die Pakete für MongoDB
sudo apt-get install libkrb5-dev sudo apt-get install mongodb
mongo --version
sollte uns die installierte Version zurück geben.
Wir starten MongoDB mit
mongo
und legen eine Datenbank an mit
> use explorerdb
User anlegen: Hast du eine Mongo Shell > 2.6 nutzt du cerateUser ansonnsten addUser. Als User musst du den User nehmen mit dem du auf dem Computer eingeloggt bist.
> db.createUser( { user: "fritz", pwd: "3xp!0reR", roles: [ "readWrite" ] } )
oder wenn eine Fehlermeldung kommt
> db.addUser( { user: "fritz", pwd: "3xp!0reR", roles: [ "readWrite" ] } )
Mit
> exit
verlassen wir mongo wieder
Prozessmanager PM2
PM2 ist ein Prozessmanager für die Verwaltung von Node.js-Prozessen. Zu den wichtigsten Features des PM2-Moduls zählen das automatische Neustarten von Node.js-Prozessen, die Aktualisierung von Prozessen mit nahezu keiner Downtime und das Monitoring der Prozesse hinsichtlich Speicherverbrauch, CPU oder Uptime. Anleitung hier: https://entwickler.de/online/javascript/pm2-prozessmanager-184546.html
Dieser Schritt ist nicht unbedingt notwendig, erleichtert das arbeiten mit dem Explorer jedoch erheblich.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv D1EA2D4C echo "deb http://apt.pm2.io/ubuntu stable main" | sudo tee /etc/apt/sources.list.d/pm2.list sudo apt-get update sudo apt-get install pm2
Wenn alles geklappt hat gibt uns
pm2 -v
die installierte Version zurück.
Iquidus Blockexplorer
Jetzt kommen wir zu der eigentlichen Installation des Blockexplorers. Zur Bearbeitung der Dateien könnt ihr einen Texteditor eurer Wahl nehmen, für Anfänger empfehle ich NANO, da VI ein bischen Einarbeitungszeit braucht. (sudo apt-get install nano)
git sollte ja schon vom eMarkd installiert sein, wenn nicht, einfach mit
sudo apt-get install git
installieren.
Um auf dem neuesten Stand zu sein holen wir uns das Original von Iquidus
git clone https://github.com/iquidus/explorer.git
und installieren mit
cd explorer && npm install --production
und passen es auf unsere Bedürfnissen an. Als erstes das Icon und das eMark Logo
cd explorer/public/ rm favicon.ico wget https://www.dropbox.com/s/s9b19rm5mcb7a4x/favicon.ico cd images/ rm logo.png wget https://www.dropbox.com/s/dxeedfsqas6ri33/logo.png
Anpassen der Netzwerkhashrate
Warum muß diese angepast werden? Bei der eMark gibt das RPC Komando “getnetworkhashps” die Hashrate in MEGA zurück. Der Blockexplorer rechnet somit also falsch um.
wir wechseln in den Ordner /lib/
cd lib/
und öffnen die Datei explorer.js
nano explorer.js
und ändern unter var uri = base_url + ‘getnetworkhashps’ die Zeilen Mega, Giga, Tera und Peta indem wir jeweils 6 Nullen entfernen. Mit gleichzeitigem drücken von STRG und o gefolgt von ENTER speichern wir die Datei und verlassen NANO mit STRG + x
Settings einstellen
entweder ihr bearbeitet die settings.json.template und benennt sie dann in settings.json um oder ihr nehmt meine vorgefertigten settings:
cd .. wget https://www.dropbox.com/s/obs1zliyjgzcn97/settings.json nano settings.json
Hier ändern wir nur noch die “database settings” und die “wallet settings”. Bei Database kommen zum Beispiel user: “fritz”, password: “3xp!0reR” rein und bei wallet eure Angaben aus der eMark.conf. Unter http://bootswatch.com/ kann man sich verschiedene Designs anschauen, welche man dann unter “theme” einstellen kann.
STRG+o, Enter, STRG+x speichert die Datei und verlässt NANO wieder.
Blockexplorer installieren
npm install --production
Warnungen können ignoriert werden, Fehler jedoch nicht.
Jetzt sollte alles für den ersten Start bereit sein. Stellt sicher, das eMarkd läuft.
npm start
Wenn alles so aussieht sind wir auf dem richtigen Weg
Wir können jetzt den Browser starten und schauen wie es aussieht. Läuft der Blockexplorer lokal, nutzen wir die IP Adresse http://127.0.0.1:3009/ auf dem Server die Server IP gefolgt von :3009
Wir beenden npm mit STRG+c
Jetzt muß nur noch die Datenbank für den Explorer und die Tauschbörsen aufgebaut werden. Und bei dieser Gelegenheit bauen wir auch gleich einen Fix ein, der automatisch die index.pid löscht sollte der Blockexplorer mal abstürzen.
wir sind immer noch im Ordner ./explorer/
nano clean_pid
folgende Zeilen hinzufügen (Achtung passt euren Pfad an!!!):
#!/bin/bash PID_FILE=/home/fritz/explorer/tmp/index.pid ps -aefw | grep -q '[/]usr/bin/node scripts/sync.js index update' || { [ -f $PID_FILE ] && rm -f $PID_FILE }
Diese Datei wieder mit STRG+o speichern, NANO beenden und ab und zu per cron ausführen.
Datenbanken aufbauen und die clean_pid ausführen
crontab -e
hier eventuell jetzt euren bevorzugten Editor auswählen und dieses einfügen( Auch hier wieder auf die richtigen Pfadangaben achten):
# eMarkexplorer */3 * * * * cd /home/fritz/explorer && /usr/bin/node scripts/sync.js index update > /dev/null 2>&1 */5 * * * * cd /home/fritz/explorer && /usr/bin/node scripts/sync.js market > /dev/null 2>&1 */5 * * * * cd /home/fritz/explorer && /usr/bin/nodejs scripts/peers.js > /dev/null 2>&1 # remove stale pid file from node.js */30 * * * * /home/fritz/explorer/clean_pid
Speichern und beenden.
Jetzt kommt der entgültige start des Blockexplorers. Dazu nutzen wir den Prozessmanager PM2
pm2 start ./bin/cluster --name explorer
Der Explorer sollte jetzt laufen und nach spätestens 2 Minuten anfangen die Datenbank aufzubauen.
Herzlichen Glückwunsch, Ihr habt es geschafft. Bei Fragen oder Problemen meldet euch einfach hier in den Komentaren.
Rumhocker