Blockchain von einem verschlĂŒsselten Start9-System exportieren
Du hast 880.000+ Blöcke auf deinem Start9-Server synchronisiert. Jetzt willst du einen zweiten Bitcoin-Node auf anderer Hardware betreiben â vielleicht ein Raspberry Pi, ein Mini-PC oder ein Laptop â ohne tagelang auf eine neue Synchronisation zu warten.
Die Blockchain liegt direkt auf deinem Start9. Aber sie rauszubekommen ist schwieriger als man denkt.
Das Problem
Start9 (StartOS) verschlĂŒsselt alle Paketdaten mit LUKS. Bitcoins Blockchain liegt tief im verschlĂŒsselten Volume unter:
/embassy-data/package-data/volumes/bitcoind/data/main/
Wenn du dich per SSH als start9-User einloggst, stöĂt du auf drei HĂŒrden:
apt.
Du kannst weder NFS, noch Samba, noch irgendeinen File-Sharing-Dienst installieren.HĂŒrde 2: Root-Dateien. Die Blockchain-Daten gehören root (sie laufen in einem Podman-Container). Der
start9-User
kann sie nicht direkt lesen.HĂŒrde 3: SSHFS ist zu langsam. Du kannst die Dateien per SSHFS mounten, aber Bitcoins random I/O Muster (Millionen kleiner Lesezugriffe fĂŒr UTXO-Lookups) funktioniert ĂŒber SSH miserabel â oft unter 1 MB/s.
Die Lösung: NFS via Podman
Start9 liefert Podman mit (die Container-Runtime fĂŒr alle
Embassy-Dienste). Damit können wir einen NFS-Server im Container starten â
kein apt nötig.
Schritt fĂŒr Schritt
Schritt 1: NFS-Kernelmodule laden
Per SSH auf deinem Start9 einloggen und die NFS-Module laden:
ssh start9@deine-start9-ip
sudo modprobe nfs
sudo modprobe nfsd
Diese Module sind im StartOS-Kernel enthalten, aber standardmĂ€Ăig nicht geladen.
Schritt 2: NFS-Container starten
Ein Befehl erledigt alles:
sudo podman run -d \
--name nfs-blocks \
--privileged \
--network=host \
-v /embassy-data/package-data/volumes/bitcoind/data/main/blocks:/export/blocks \
-e NFS_EXPORT_0='/export/blocks 192.168.1.0/24(ro,no_subtree_check,all_squash,anonuid=0,anongid=0)' \
docker.io/erichough/nfs-server:2.2.1
Das exportiert das Blocks-Verzeichnis read-only in dein lokales Netzwerk.
Passe 192.168.1.0/24 an dein Subnetz an.
Schritt 3: Auf dem Zielrechner mounten
Auf deinem Pi, Laptop oder Mini-PC:
sudo apt install -y nfs-common
sudo mkdir -p /mnt/bitcoin-blocks
sudo mount -t nfs -o ro,vers=3 deine-start9-ip:/export/blocks /mnt/bitcoin-blocks
PrĂŒfen ob es funktioniert:
ls /mnt/bitcoin-blocks/blk00000.dat # Sollte existieren
ls /mnt/bitcoin-blocks/ | wc -l # Sollte tausende Dateien zeigen
Was kopiert werden muss
Du musst nicht 800 GB Block-Dateien kopieren. Bitcoin speichert drei Arten von Daten, und du brauchst nur zwei kleine davon:
Der Block-Index ordnet Block-Hashes Dateipositionen zu. Der Chainstate ist das UTXO-Set â jeder unausgegebene Transaktionsausgang in Bitcoin. Zusammen sind das ~11 GB. Die 760 GB rohen Blockdaten bleiben auf Start9 und werden ĂŒbers Netzwerk bereitgestellt.
Daten kopieren
Stoppe den Bitcoin-Dienst auf Start9 (ĂŒber die Start9-UI oder Kommandozeile), dann per SSH kopieren:
# Vom Zielrechner aus:
SRC=/embassy-data/package-data/volumes/bitcoind/data/main
# Block-Index (klein, schnell)
ssh start9@deine-start9-ip "sudo tar cf - -C $SRC/blocks/index ." | \
tar xf - -C /pfad/zu/deinem/datadir/blocks/index/
# Chainstate (~11 GB, dauert ~25 Min. ĂŒber Gigabit)
ssh start9@deine-start9-ip "sudo tar cf - -C $SRC/chainstate ." | \
tar xf - -C /pfad/zu/deinem/datadir/chainstate/
Vergiss nicht, Start9s Bitcoin-Dienst danach wieder zu starten.
XOR-Verschleierung (xor.dat)
Seit Bitcoin Knots v28+ (und Bitcoin Core) werden Block-Dateien mit einem
8-Byte XOR-SchlĂŒssel verschleiert. Dieser SchlĂŒssel liegt in
blocks/xor.dat und wird bei der ersten Synchronisation
zufÀllig generiert.
Das bedeutet: Die blk*.dat und rev*.dat Dateien
sind nicht im Klartext gespeichert. Jedes Byte wird mit dem 8-Byte-SchlĂŒssel
XOR-verknĂŒpft. Das schĂŒtzt zwar nicht vor gezieltem Zugriff (der SchlĂŒssel
liegt direkt daneben), verhindert aber, dass Virenscanner oder Backup-Programme
Bitcoin-Transaktionen als verdÀchtige Daten erkennen.
xor.dat
automatisch gelesen und alles funktioniert. Du musst xor.dat nicht
separat kopieren â es liegt bereits im Blocks-Verzeichnis.
NFS vs SSHFS: Warum es wichtig ist
Bitcoins Block-Validierung bombardiert den Speicher mit Millionen kleiner zufÀlliger Lesezugriffe. Der Protokoll-Overhead pro Operation macht einen riesigen Unterschied:
NFS ist 6x schneller als SSHFS fĂŒr Bitcoins Zugriffsmuster, weil es nicht den SSH-VerschlĂŒsselungs-Roundtrip pro Operation hat. FĂŒr leseintensive Workloads wie Block-Bereitstellung ist NFS der klare Gewinner.
Das Ergebnis
Nach dem Kopieren von ~11 GB Index-Daten (~25 Minuten) und der NFS-Konfiguration startet dein zweiter Node mit einer vollstĂ€ndig validierten Blockchain. Kein Reindex. Kein tagelangtes Warten. Die Blöcke werden ĂŒbers Netzwerk von Start9 bereitgestellt, und der lokale Chainstate ĂŒbernimmt die UTXO-Lookups mit voller Geschwindigkeit.
Kopierte Daten: ~11 GB (nicht 800 GB)
Neu-Synchronisation nötig: Keine
Persistent machen
FĂŒge den NFS-Mount zur /etc/fstab auf deinem Zielrechner hinzu,
damit er Neustarts ĂŒberlebt:
# /etc/fstab
deine-start9-ip:/export/blocks /mnt/bitcoin-blocks nfs ro,soft,timeo=300,_netdev 0 0
Auf Start9 startet der NFS-Container automatisch neu, wenn du ihn richtig einrichtest. Du kannst auch ein kleines Skript erstellen, das sicherstellt, dass die Kernel-Module geladen und der Container nach einem Neustart lÀuft.
Sicherheitshinweise
- Der NFS-Export ist read-only und auf dein lokales Subnetz beschrÀnkt
- Block-Daten sind öffentliche Informationen â es gibt kein Datenschutzrisiko beim lokalen Bereitstellen
- Die Chainstate-Kopie enthĂ€lt keine privaten SchlĂŒssel oder Wallet-Daten
- Start9s LUKS-VerschlĂŒsselung schĂŒtzt die Daten weiterhin im ausgeschalteten Zustand
- Die XOR-Verschleierung in
xor.datist kein Sicherheitsfeature â sie verhindert nur False Positives bei Antivirenprogrammen
Bitcoin auf ungewöhnlicher Hardware betreiben?
Ich helfe bei der Einrichtung von Bitcoin-Nodes auf allem von Banana Pis bis zu verteilten Multi-Maschinen-Setups. Lass uns reden.
Kontakt aufnehmen