Blockchain explorer (Hilfe)

Nach über 2 jahren schnurrt das teil wie ein Kätzchen. Aber wieso auch immer hab ich mich dazu entschieden dem Teil mal ein update zu verpassen. Schließlich ging nur mainnet und testnet und signet sollten ja nicht fehlen, damit es in „Production Mode“ läuft. Oh boy, war das ein wilder Ritt.

Nicht nur ist die Anleitung grauenhaft, man muss sich über mehrere Quellen alles zusammensuchen. Electrs hat, meiner Meinung nach, ein Downgrade erhalten, aber die nginx konfiguration ist besser geworden. Man muss auch die positiven Sachen hervorbringen.

Wer configs sehen will, das jibbet (#VIP) heute nicht, nur Tipps.

Dann starten wir mal ins geschehen. Ich hab mich nicht lumpen lassen und gemäß dem Motto: Never touch a running System, einen neuen Server gemietet und mehr Kohle verbraten als die Eisenbahnen damals. Mein erster ansatz war diesmal, dass ich es in Docker mache, damit der Umzug auf andere Server leichter ist. Einmal gemacht, kann man es auf anderen Server leichter hochziehen.

Die Docker Erstellung (oder erstellung? Deutsche Sprache irgendwas mit schwer)
Ich fing an, erstmal eine nginx Docker zu erstellen, welche auf alle anderen Docker container dann zugreift. Soweit so leicht. Anschließend hab ich dann eine Bitcoin node gestartet und die volume rausgemountet, damit auch electrs zugriff hat. Nach dem initialen sync, wollte ich dann electrs starten, der nur meinte „nö“. Die config hatte ich aus Teil 1 übernehmen wollen, aber das hat nicht geklappt. Nach etwas suchen, dann gefunden und gestartet. Danach noch lnd, denn wir wollen ja modern sein :wink: , eingerichtet. Da kam die erste Hürde, weil LND kannte ich zu dem Zeitpunkt nicht und musste erstmal einlesen welches programm etc. dafür. Erwähnenswert ist noch, bei den configs muss man mit IPs arbeiten, weil die „container_name“ nicht aufgelöst werden können von den Programmen. Vielleicht weil die IPs erwarten, ich weiß es nicht. Am Ende lief dann alles. Als tipp: Arbeitet mit dem cookie file bei bitcoind und mountet den extern, damit LND und electrs den lesen können! Erspart euch die nerven, was die passwortübertragung angeht!

Synchronisierung und mempool mit nginx
Wer den thread gelesen hat, kennt die Geschichte vom synchronisieren, die erspare ich euch. Mempool backend und frontend, waren ziemlich leicht zu machen, das ist nicht schwer. Die richtigen ips einzutragen etc. und nutzt den Production fix (hier) von mir. Hier sei noch gesagt, ich habe für mainnet, testnet und signet eigene mariadb docker container genutzt. Wenn was kaputt geht, ist es leichter ein Container zu reparieren (und das werdet ihr machen müssen), als einen großen mariadb Server. Nicht die feine englische Art, aber wie sagt man: Nichts hält so lange wie ein temporärer Server.
Zu nginx kann ich sagen, nimmt das von mainnet und dann übertragt es auf /testnet/ und /signet/ aus der nginx conf, welche in der github repo mit dabei ist. Bisschen fummeln (hihi) müsst ihr trotzdem. Hier und da ein break, dann sollte es klappen.

Mainnet, testnet und signet
Zuerst hab ich das mainnet aufgesetzt, damit ich erstmal eine Basis habe, mit der man arbeiten kann. Nachdem das ganze lief, hab ich nach dem gleichen Konzapt testnet und signet aufgesetzt. Mein Tipp hierbei ist, das ihr eine saubere Ordnerstruktur nutzt.
/
-mainnet
–bitcoind
—Dockerfile
–LND
–Electrs
–data
—bitcoind
—mariadb

Das ganze ist jetzt zwei Monate her, als ich es aufgesetzt habe und bis vor 10 Tagen lief auch alles. Jetzt macht testnet Probleme. Die neuen blocks werden nicht angezeigt, aber darum kümmer ich mich ein ander mal. Wichtig ist, der sync wird einige Tage dauern und auch das indexieren von LND, mempool-backend und electrs. Ihr müsst da also viel Geduld mitbringen.

Bis dahin: Good luck