Auf einem Minirechner läuft meine Umbrel Node mit Lightning. Ich will auf meinem Desktop PC eine weitere neue Lightning Instanz laufen lassen. Ich habe gelesen dass es möglich ist das mehrere Lightning Nodes den selben Bitcoin Core Node nutzen.
Die Bitcoin Core Konfiguration entspricht den defaults von Umbrel. Ich habe nur zusätzlich die Option onlynet=onion hinzugefügt. LND starte ich auf dem PC als Docker Container mit den folgenden Optionen:
sudo docker run lightninglabs/lnd:v0.15.5-beta
–bitcoin.active
–bitcoin.mainnet
–bitcoin.node=bitcoind
–bitcoind.rpchost=192.168.0.234
–bitcoind.rpcuser=umbrel
–bitcoind.rpcpass=mypass
–bitcoind.zmqpubrawblock=tcp://192.168.0.234:28332
–bitcoind.zmqpubrawtx=tcp://192.168.0.234:28333
Die RPC Daten habe ich aus Umbrel, so wie es auf der Weboberfläche von Bitcoin Core angezeigt wird. LND startet und bricht dann mit der folgenden Fehlermeldung ab: error creating wallet config: unable to create partial chain control: status code: 403, response: ""
Versuche mit curl oder bitcoin-cli überhaupt eine RPC Verbindung herzustellen schlagen auch fehl:
bitcoin-cli
-rpcconnect=192.168.0.234
-rpcport=8332
-rpcuser=umbrel
-rpcpassword=mypass getnetworkinfo error: server returned HTTP error 403
An Docker liegt es sicher nicht, da ich die gleiche Fehlermeldung bei einer Docker freien LND Installation in VirtualBox auch bekomme.
Trying 192.168.0.234…
Connected to 192.168.0.234.
Escape character is ‚^]‘.
Hier heißt es der RPC Port wäre im lokalen Netzwerk aus Sicherheitsgründen nicht freigegeben. Wozu dann die RPC Verbindungsdaten in der Bitcoin Core Umbrel App? Finde ich ziemlich irritierend. Und die Ausgabe von telnet zeigt doch dass der Port erreichbar ist?
Danke dir. Dort wird gezeigt wie man mehrere Lightning Nodes auf dem selben Rechner laufen lassen kann. Das wollte ich eigentlich vermeiden um auf meiner main Node nicht großartig herum experimentieren zu müssen. Ich habe es jetzt trotzdem getan und es funktioniert.
Es wäre trotzdem schön wenn es möglich wäre Lightning Nodes von anderen Rechnern aus auf meine Bitcoin Node zu verbinden. Das muss doch irgendwie gehen, auch ohne Sicherheitseinbußen.
Ich glaube ich habe es jetzt lösen können. Nochmal danke für deine Hilfe. So wie ich das verstehe kann man mit der Option rpcallowip in bitcoin.conf bestimmen welche Geräte im Netzwerk die RPC Verbindung nutzen dürfen.
Ich habe in der bitcoin.conf die lokale IP Addresse meines Desktop Rechners hinzugefügt:
rpcallowip=192.168.0.21
Dadurch war eine RPC Verbindung endlich möglich. Ich nehme an wenn man so vorgeht ist das auch kein großes Sicherheitsrisiko. Wenn man als IP Addresse 0.0.0.0 eingibt, dürfen alle Geräte im lokalen Netzwerk RPC nutzen. Das bedeutet wohl theoretisch auch Geräte über das Internet?? Wenn das wirklich ein Sicherheitsrisiko darstellt, frage ich mich, wieso man in diesem Tutorial 0.0.0.0 nutzt.
So wie es aussieht gibt es in Umbrel keine bitcoin.conf Datei mehr. Im Bitcoin Ordner kann man ein leeres bitcoin.conf anlegen und damit weitere Einstellungen ergänzen. Ich habe dort nur die beiden Einstellungen onlynet=onion und rpcallowip=192.168.0.21.
Man kann sich aber anzeigen lassen mit welchen Argumenten der bitcoind Docker container gestartet wurde. Das sind demnach die default bitcoind Einstellungen von Umbrel:
„–listen=0.0.0.0:9735“,
„–rpclisten=0.0.0.0:10009“,
„–restlisten=0.0.0.0:8080“,
„–tlsautorefresh“,
„–accept-amp“,
„–rpcmiddleware.enable“,
„–bitcoind.rpchost=10.21.21.8“,
„–bitcoind.rpcuser=umbrel“,
„–bitcoind.rpcpass=xxxxxx“,
„–bitcoind.zmqpubrawblock=tcp://10.21.21.8:28332“,
„–bitcoind.zmqpubrawtx=tcp://10.21.21.8:28333“,
„–bitcoin.active“,
„–bitcoin.mainnet“,
„–bitcoin.node=bitcoind“,
„–tor.active“,
„–tor.v3“,
„–tor.control=10.21.21.11:29051“,
„–tor.socks=10.21.21.11:9050“,
„–tor.targetipaddress=10.21.21.9“,
„–tor.password=xxxxxxxx“
Die Tantiemen reiche ich aber an DeTec weiter, der hat gleich im ersten Post den rpcallow angesprochen
Super, dass du es jetzt zum Laufen gebracht hast
VG
Habe mich wohl etwas zu früh gefreut Ich kann jetzt zwar mich mit bitcoin-cli vom Desktop Rechner aus auf die Umbrel Node verbinden und Befehle ausführen, was vorher nicht ging.
Aber ein LND Node auf meinem Desktop Rechner kann sich immer noch nicht mit der Umbrel Node verbinden. Die neue Fehlermeldung betrifft die ZeroMQ Schnitstelle:
unable to subscribe for zmq block events: dial tcp 192.168.0.234:28332: connect: connection refused
Vermutlich bedingt durch die Umbrel Einstellung:
–bitcoind.zmqpubrawblock=tcp://10.21.21.8:28332
–bitcoind.zmqpubrawtx=tcp://10.21.21.8:28333
An dieser Stelle gebe ich vorerst auf. Ich werde meine Node bald sowieso mit Raspibolt neu aufsetzen und Umbrel nicht weiter nutzen. Umbrel setzt auf Docker auf und ich habe keine Erfahrung damit. Docker ist praktisch und macht vieles einfacher, es bringt an einigen Stellen aber auch mehr Komplexität, die man beherrschen muss. Docker Container haben ihr eigenes lokales Netzwerk und ich blicke da nicht durch.
Ich vermute durch die obige Einstellung wird die ZMQ Schnitstelle nur für das lokale Netzwerk (10.21.21.8) freigegeben. Deswegen kann sich LND von außen nicht verbinden. Und es bringt nichts im lnd.conf 10.21.21.8 für ZMQ anzugeben.
Ist mir alles etwas zu viel gerade. Da müsste man noch einiges dazulernen um das alles zu durchschauen.