← Lernpfad Kapitel 4 von 6

Electrum Server: Deine Wallet mit deiner Node verbinden

Du hast einen Full Node aufgesetzt. Er verifiziert jeden Block und jede Transaktion. Aber deine Wallet nutzt ihn noch nicht. Warum? Weil die meisten Wallets nicht direkt mit Bitcoin Core kommunizieren — sie sprechen das Electrum-Protokoll. Dafür brauchst du eine Brücke: einen Electrum Server.

Das Problem: Light-Wallets und fremde Server

Wenn du Sparrow, BlueWallet, Electrum Desktop oder eine andere Light-Wallet öffnest, verbindet sie sich mit einem Electrum-Server im Internet. Dieser Server indexiert die gesamte Timechain und beantwortet Anfragen wie: “Welche Transaktionen gehören zu Adresse X?”

Das funktioniert — aber mit einem Preis:

sequenceDiagram
    participant W as Sparrow Wallet
    participant E as Fremder Electrum Server
    participant N as Bitcoin Netzwerk

    W->>E: "Transaktionen für xpub...?"
    Note over E: Server kennt jetzt:
- Deinen Extended Public Key
- ALLE deine Adressen
- Deinen Gesamtsaldo
- Deine IP-Adresse E->>N: Fragt Daten ab N-->>E: Rohdaten E-->>W: Salden & Historie
Ohne eigenen Electrum Server: Deine Wallet leakt Adressen

Der fremde Server sieht nicht nur einzelne Adressen — er sieht deinen Extended Public Key (xpub). Damit kann er alle deine vergangenen, aktuellen und zukünftigen Adressen ableiten. Er kennt deinen vollständigen Bitcoin-Besitz.

Merke

Deine Wallet an einen fremden Electrum Server anzuschließen ist das Äquivalent dazu, einem Fremden deine kompletten Kontoauszüge zu geben. Plus deine IP-Adresse. Plus die Information, dass du Bitcoin besitzt.

Warum reicht der Full Node allein nicht?

Bitcoin Core hat eine eigene Wallet, die direkt mit dem Node kommuniziert. Aber sie ist bewusst minimalistisch — keine Coin Control, kein Label-Management, keine Hardware-Wallet-Unterstützung. Die meisten Nutzer bevorzugen spezialisierte Wallets wie Sparrow. Und die sprechen Electrum-Protokoll.

Die Lösung: Eigener Electrum Server

Ein eigener Electrum Server läuft lokal neben deinem Full Node. Er:

  1. Indexiert die gesamte Timechain (erstellt einen durchsuchbaren Index aller Adressen und Transaktionen)
  2. Beantwortet Anfragen deiner Wallet über das Electrum-Protokoll
  3. Leakt nichts — die Kommunikation bleibt auf deinem Gerät
sequenceDiagram
    participant W as Sparrow Wallet
    participant E as Dein Electrum Server
    participant N as Dein Full Node

    W->>E: "Transaktionen für xpub...?"
    E->>N: Fragt lokale Daten ab (RPC)
    N-->>E: Verifizierte Daten
    E-->>W: Salden & Historie

    Note over W,N: Alles läuft lokal.
Kein Dritter involviert.
Mit eigenem Electrum Server: Alles bleibt lokal

Electrs vs. Fulcrum

Es gibt zwei etablierte Implementierungen. Beide tun dasselbe, unterscheiden sich aber in Ressourcenbedarf und Performance:

EigenschaftElectrsFulcrum
SpracheRustC++
Indexgröße~30–50 GB~100–130 GB
RAM-Bedarf~1–2 GB~4–8 GB
Initiale Indexierung8–24 Stunden (auf SSD)4–12 Stunden (auf SSD)
Abfrage-PerformanceGutSehr schnell
Ideal fürRaspberry Pi, ressourcenknappe SystemeDesktop, Server mit mehr Platz
WartungMinimalMinimal
VerbreitungSehr verbreitet (Umbrel, RaspiBlitz)Zunehmend beliebt

Empfehlung: Wenn du einen Raspberry Pi oder ein System mit wenig Speicher nutzt, nimm Electrs. Wenn du einen Desktop oder Mini-PC mit ausreichend SSD-Platz hast, bietet Fulcrum schnellere Abfragen.

Electrs einrichten

Voraussetzungen

Installation

# Repository klonen
git clone https://github.com/romanz/electrs
cd electrs

# Bauen (Release-Modus für Performance)
cargo build --locked --release

# Binary verschieben
sudo cp target/release/electrs /usr/local/bin/

Konfiguration

Erstelle die Datei ~/.electrs/config.toml:

# Verbindung zu Bitcoin Core
daemon_rpc_addr = "127.0.0.1:8332"
daemon_p2p_addr = "127.0.0.1:8333"

# RPC-Zugangsdaten (wie in bitcoin.conf)
auth = "dein_benutzername:dein_passwort"

# Electrum-Port (Standard: 50001)
electrum_rpc_addr = "127.0.0.1:50001"

# Datenverzeichnis für den Index
db_dir = "/data/electrs"

# Logging
log_filters = "INFO"

# Netzwerk
network = "bitcoin"

Starten und indexieren

# Erster Start — die Indexierung beginnt
electrs --conf ~/.electrs/config.toml

# Fortschritt beobachten: Electrs zeigt Block-Nummer und Geschwindigkeit
# [INFO] indexing block 800000 (1234 blocks/s)

Die initiale Indexierung dauert je nach Hardware 8–24 Stunden. Danach hält Electrs den Index automatisch aktuell.

Als Systemd-Service einrichten

# /etc/systemd/system/electrs.service
[Unit]
Description=Electrs Electrum Server
After=bitcoind.service
Requires=bitcoind.service

[Service]
ExecStart=/usr/local/bin/electrs --conf /home/deinuser/.electrs/config.toml
User=deinuser
Group=deinuser
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target
sudo systemctl enable electrs
sudo systemctl start electrs

Fulcrum einrichten (Alternative)

Installation

# Release herunterladen (aktuellste Version prüfen)
wget https://github.com/cculianu/Fulcrum/releases/download/v1.11.1/Fulcrum-1.11.1-x86_64-linux.tar.gz

# GPG-Signatur prüfen (wie bei Bitcoin Core!)
# Entpacken
tar xzf Fulcrum-1.11.1-x86_64-linux.tar.gz
sudo cp Fulcrum-1.11.1-x86_64-linux/Fulcrum /usr/local/bin/

Konfiguration

# /etc/fulcrum.conf
datadir = /data/fulcrum
bitcoind = 127.0.0.1:8332
rpcuser = dein_benutzername
rpcpassword = dein_passwort

# Electrum-Port
tcp = 127.0.0.1:50001

# Optionale SSL-Verschlüsselung
# ssl = 0.0.0.0:50002
# cert = /path/to/cert.pem
# key = /path/to/key.pem

Sparrow Wallet verbinden

Jetzt kommt der entscheidende Moment: Deine Wallet mit deinem Electrum Server verbinden.

In Sparrow

  1. File → Preferences → Server
  2. Wähle Private Electrum Server
  3. URL: 127.0.0.1
  4. Port: 50001
  5. SSL: Aus (lokal nicht nötig)
  6. Test Connection — sollte “Connected” zeigen

Ab sofort fragt Sparrow deinen eigenen Node — kein Dritter sieht deine Adressen.

Über Tor (Remote-Zugriff)

Wenn dein Node zuhause läuft und du Sparrow auf einem Laptop unterwegs nutzt, verbinde über Tor:

  1. Richte auf dem Node einen Tor Hidden Service ein:
# /etc/tor/torrc
HiddenServiceDir /var/lib/tor/electrs/
HiddenServicePort 50001 127.0.0.1:50001
  1. Starte Tor neu: sudo systemctl restart tor

  2. Lies die Onion-Adresse: sudo cat /var/lib/tor/electrs/hostname

  3. In Sparrow: Trage die .onion-Adresse ein und aktiviere “Use Proxy” (127.0.0.1:9050)

Probiere es aus

Verbinde Sparrow mit deinem Electrum Server und öffne eine bestehende Wallet. Beobachte im Electrs-Log, wie dein Server die Anfragen bearbeitet. Vergleiche die angezeigte Balance mit einem Block-Explorer — sie sollte identisch sein. Der Unterschied: Diesmal hat kein fremder Server deine Adressen gesehen.

Andere Wallets verbinden

Das Electrum-Protokoll ist ein offener Standard. Neben Sparrow unterstützen unter anderem:

WalletEigenen Server eintragenPlattform
SparrowJa (Preferences → Server)Desktop
Electrum DesktopJa (Tools → Network)Desktop
BlueWalletJa (Settings → Lightning/Electrum)Mobile
EnvoyJa (Settings → Node)Mobile
NunchukJa (Settings → Network)Desktop/Mobile
Merke

Jede Wallet, die du mit deinem eigenen Electrum Server verbindest, profitiert von der gleichen Privatsphäre und Verifizierung. Ein Server reicht für all deine Wallets.

Troubleshooting

ProblemUrsacheLösung
“Connection refused”Electrs läuft nicht oder falscher Portsystemctl status electrs, Port in Config prüfen
Indexierung extrem langsamHDD statt SSDSSD verwenden — HDD ist bei der Indexierung um Faktor 10–50 langsamer
Sparrow zeigt keine TransaktionenIndex noch nicht fertigIndexierungsfortschritt im Log prüfen
Hoher RAM-Verbrauch (Fulcrum)Normal bei großem IndexRAM auf ≥ 8 GB aufstocken oder zu Electrs wechseln
Bitcoin Core nicht erreichbarRPC falsch konfiguriertrpcuser/rpcpassword in bitcoin.conf und Electrs-Config vergleichen

Weiterführend

Diskussion via Nostr

Kommentare werden über das dezentrale Nostr-Netzwerk geladen. Du brauchst eine Nostr-Identität und eine Browser-Extension wie nos2x oder Alby.