Warum verbindet sich ElectrumX zu anderen Electrum Servern?

Ich weiß, dass der eigene Electrum Server auf der eigenen Bitcoin Fullnode auch von anderen genutzt werden kann, wenn man den dafür notwendigen Port nach außen öffnet, was ich nicht getan habe. Aber warum verbindet sich mein Electrumx Server mit anderen Electrum Servern? Die nötigen Daten bekommt es doch von meiner eigenen Bitcoin Fullnode.

Anhand der Logs kann ich so was sehen:

INFO:PeerManager:[electrum.coineuskal.com:50002 SSL] verified in 2.8s
INFO:PeerManager:[electrum.freedns.rocks:50002 SSL] verified in 3.9s
INFO:PeerManager:[electrumx.jumpingcrab.com:50002 SSL] verified in 3.9s
INFO:PeerManager:[electrumx.domian.rocks:50002 SSL] verified in 4.8s
INFO:PeerManager:[22jumpstreet.mooo.com:50002 SSL] verified in 4.7s
INFO:PeerManager:[smmalis37.ddns.net:50002 SSL] verified in 30.8s
INFO:PeerManager:[wallet.blither.io:50002 SSL] verified in 30.5s
INFO:PeerManager:[electrum.petrkr.net:50002 SSL] verified in 30.3s

Das sind alles andere öffentlich erreichbare Electrum Server. Es wird auch eine blacklist gepflegt die Electrumx regelmäßig aus dem Internet runterlädt und aktuell hält.
Ehrlich gesagt bin ich von dieser Funktionalität nicht begeistert. Generell habe ich in letzter Zeit bemerkt wie viele Anwendungen auf einer Bitcoin Fullnode regelmäßig die clearnet IP Adresse in die Welt posaunen.

Ganz ohne Kontakt zur Außenwelt geht es nicht. Sonst würdest du keine neuen Blöcke bekommen und könntest keine Transaktionen über deine Node veröffentlichen.

Neue Blöcke werden ja durch Bitcoin Core empfangen und ein Electrum Server holt sich die nötigen Daten zum indexieren eigentlich aus der lokalen Blockchain. Daher meine Frage, warum braucht ElectrumX Kontakt zu anderen Electrum Servern?

Ja, stimmt. Du sprichst ja von Electrum!
Ich bin noch durcheinander wegen der ETF Panik, sorry :sweat_smile:

Im Zweifelsfall mal die Entwickler fragen?
Auch könntest du den Port für Electrum sperren.
Mehr Idden habe ich leider nicht.

Kann auch nur spekulieren, wahrscheinlich fragt er andere Server ab,. um zu prüfen ob er auf dem aktuellen Stand ist und verlässt sich nicht nur auf den Bitcoin-Node.
In der Electrum-Wallet sieht man z.Bsp. einige andere Server mit deren aktueller Blockhöhe und Port.

Ich habe jetzt ein wenig mehr herausgefunden. Die öffentlich erreichbaren ElectrumX Server tauschen anscheinend Daten wie Blockheader untereinander aus, um auf dem neuesten Stand zu bleiben.

Man kann dieses Verhalten von ElectrumX durch das setzen bestimmter Umgebungsvariablen deaktivieren. Dazu muss man die Umgebungsvariable PEER_DISCOVERY auf „self“ setzen und PEER_ANNOUNCE leer lassen:

PEER_DISCOVERY=self
PEER_ANNOUNCE=

Alternativ kann man ElectrumX so einstellen dass es diese Aktivitäten ausschließlich über Tor ausführt. Dazu muss man die Umgebungsvariable FORCE_PROXY anpassen.

https://electrumx.readthedocs.io/en/latest/environment.html

1 „Gefällt mir“

Kann man so weiterhin alle funktionen nutzen?

Die Funktionalität für deine Wallet bleibt dadurch unverändert.

Weiß jemand, wie Electrum hinsichtlich dieser Variablen standardmäßig bei einer Umbrel BTC Node konfiguriert ist?