Da bin ich ja mal gespannt, wie die Reise weitergeht!
Aktuell bin ich an dem Punkt:
DEBUG - starting full compaction on RocksDB
Der hat wohl die Blockchain eingelesen und startet nun ein Prozesss. Was genau da passiert, hab ich mir jetzt nicht durchgelesen, allerdings bei ca 468G GB ging der Prozess los.
Das erste einlesen wurde ca 4 Uhr morgens getriggert mit einem sleep Befehl. Ich hab etwa ausgerechnet, wann der Blockchain sync fertig sein wird. Dann hab ich das einlesen begonnen und kam wieder zum Error mit den limits. Hatte vergessen es im vorraus zu editieren. Vor 2h dann ca das einlesen vom Rest gestartet. Jetzt mal abwarten was passiert. Derzeit „bläst“ sich das Ding auf und ist bei 586G. Ende wird etwa bei 1,1T sein.
Pro Minute kann/wird etwa 4G auf die HDD geschrieben.
Das DEBUG - starting full compaction on RocksDB
ist nun vorbei.
Anscheinend fängt der jetzt an, die blkxxxxx.dat Dateien einzulesen. Wir warten mal ab, wie lange das dauern wird
Sind ja auch nur 02799 Dateien…
Nachtrag: Es dauert etwa 10min eine blk Datei einzulesen…
Kurzes Update:
Wir sind jetzt bei blk00128.dat
Only 2.671 Files left !! Respökt…
Soooo, mal ein update. Ich hab mich dazu durchgedrungen und Geld in die Hand zu nehmen und einen Server mit vielen Cores (20) und 2 PCI-E NVME SSDs (1x 1tb und 1x 2tb) zu nehmen. Das Teil war dann auch innerhalb von ±24h durch. Esplora hab ich nicht zum laufen bekommen, aber das Blockstream electrs api System hat wunderbar funktioniert, was das esplora obsolet gemacht hat. Ich muss sagen, dass das blockstream electrs vieeel stabieler läuft als mempool mit electrs, da ich ohnehin nur interesse am api System hatte.
Ahaaa…es lebt ja doch noch!
Was mich nun aber brennend interessieren würde → Was kostet die Büchse monatlich
Nur mal rein interessehalber für diejenigen, die sich vllt. auch mit solch einem Projekt beschäftigen möchten!
Denn auf Dauer, wird so eine Hardware-Anforderung schon auf die Geldbörse hauen…weshalb dann eventuell eine Colo-Lösung die bessere Variante wäre?
Die Büchse kostet etwa 230€ pro Monat. Ich denke da geht auch was kleineres (CPU(!!!)), aber ich wollte das jetzt endlich durch haben. Man merkt richtig den unterschied, zwischen mempool mit electrs und blockstream electrs.
Unter Belastung neigte mempool mit electrs abzustürtzen. Das electrs hat sich dann verabschiedet, mempool lief dann weiter, schmiss aber nur mit errors um sich.
Blockstream electrs ist mir nicht einmal unter Belastung abgestürtzt. Ich muss dazusagen, dass die Server, wo normales electrs läuft, viel kleiner sind. Das sind 100€ Server
Kleines Update, der HDD Server ist gestern Abend fertig geworden mit blockstream-electrs…
Dann hat das ganze nun ca. eine Woche gebraucht, um alles einzulesen?! Wie viele Daten sind das nun netto?
Mal ein kleines Statusupdate. Das erstellen der Datenbank wächst auf ca 1.2tb, sobald es einmal eingelesen wurde, hat es eine Größe von ca 827G (Stand ca. 28.03.2022)
Ich hab auch mal etwas Benchmarking gemacht, weil ich wissen wollte wie zäh das Teil ist und es ist sehr wiederstandsfähig. Ich habe es mit Anfragen (API) zugeballert und bisher ist es mir nicht abgeschmiert, wie manche andere.
Esplora geht weiterhin nicht und Electrum lässt sich auch nicht verbinden.
Aktuell lasse ich noch ein ElectrumX Server synchronisieren, welcher dann morgen fertig sein sollte.
Da ich vergessen habe auf deine Frage zu antworten:
Bitcoind sync (ich hatte bereits alle Blöcke etc.) ca 5-6h
Electrs (blockstream) dauert etwa einen Tag
Betriebsystem und bitcoind Server läuft auf einer NVME und es wurde eine extra NVME gemountet für Electrs.
THXX for update…
Da es ja nun fast fünf Monate her ist, als du dir den Server für 230€ geholt hattest, wollte ich mal fragen, ob du diesen gegen einen kleineren bzw. günstigeren Brotkasten ausgetauscht hast mittlerweile??
Also das alte Problem! Und da gibt es zwischenzeitlich keine Lösungsansätze für? Ich denke mal nicht, dass es nur bei dir nicht klappt. Da müsste es doch bestimmt massenhaft Beschwerden zu geben, oder irgendwelche Blitzbirnen aus einer Blitzbirnen-Community, haben einen eigenständigen Fix dazu entwickelt??
Ich nehme mempool.space und btc-rpc-explorer dafür. Beide tun das gleiche wie Esplora und mempool.space bietet ein wirklich gelungenes Webinterface.
Ich habe mir danach nicht mehr die Mühe gemacht, esplora zum laufen zu bekommen, da ich mit den anderen bedient war!
Ich habe eine billigere gefunden, die mehr Leistung hat…
Ich bin inzwischen einen Schritt weiter gegangen und habe Load Balancing getestet und ich war beeidnruckt, wie einfach es funktioniert hat!
I love it…!
Den Load Balancer als Hardware oder als Software-Lösung?
Verständlich…wenn die Alternative für deine Zwecke passt, warum sich dann auch noch mit Müll beschäftigen?! Hätte ich auch keinen Bock drauf - so viel Langeweile kann ja kein Mensch haben!
NGINX Load Balancer
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 , 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