Code, aggregierte Daten und LaTeX-Quelltext für „Who Patches the Lightning Network? Release Lines from Gossip, Node Platforms and Security Advisories, 2023-2026“
Saurabh Kumar, Bitcoin Data Labs
Code, aggregierte Daten und LaTeX-Quelle für das Paper. arXiv-Kategorien: cs.CR, Cross-List cs.NI.
Datenstichtag: 2026-10-13.
Lightning-Gossip enthält keine Softwareversion, daher wurde nie gemessen, ob Betreiber auf Sicherheitshinweise reagieren. Das Paper leitet die Release-Linie jedes öffentlichen LND-, Core Lightning-, Eclair- und LDK-Knotens aus den angekündigten Feature-Bits ab, abgeglichen mit dem Quellcode jedes Releases, und wendet dies auf tägliche Gossip-Snapshots von Mai 2023 bis Oktober 2026 an. Das Netzwerk patcht nach Release- und Plattform-Zeitplänen, nicht nach Offenlegungen: Die Hälfte der LND-Knoten auf einer älteren Linie aktualisiert innerhalb von 88 Tagen nach einem Release; die größten Upgrade-Wellen folgten etwa einen Tag, nachdem der Umbrel-App-Store eine neue LND-Version ausgeliefert hatte; und von 12 testbaren Offenlegungen erhöhte nur die von Core Lightning im Juli 2026 die Rate, mit der Knoten betroffene Releases verließen, und dies nur unter Knoten, die eine Release-Linie zurücklagen; der Aufruf von Core Lightning, Offline-Knoten neu zu starten, wurde überwiegend von Knoten befolgt, die bereits auf der neuesten Linie waren. Zwei Monate nach der August-2026-Charge von Lightning Labs liefen 71 % der zum Zeitpunkt der Offenlegung exponierten Knoten noch immer auf einem betroffenen Release.
paper/: LaTeX-Quelle (main.tex, sections/, references.bib, figures/, tables/, numbers.tex), die
kompilierte main.pdf und ein Build-Skript.src/01_*.py … src/05_*.py: die fünf Pipeline-Stufen.src/lnmetrics/: die eingefrorenen Inferenzregeln und Referenzdaten: Client-Regeln (client_fingerprint.py), die
Release-Tabelle mit den Feature-Bits jedes Releases (ln_release_features.json, gelesen von
version_fingerprint.py), die Advisory-Liste mit der öffentlichen Quelle jeder Offenlegung (advisories.py), die
datierten Plattform-Releases (platforms.py) sowie der Gossip-Reader und die Panel-Hilfsfunktionen (gossip.py, panel.py).data/: aggregierte JSON-Ausgaben hinter jeder Abbildung, Tabelle und jeder im Text genannten Zahl.scripts/package_arxiv.py: erstellt das arXiv-Upload-Bundle.pip install -r requirements.txt
Die Pipeline liest tägliche Snapshots des öffentlichen Lightning-Gossip-Graphen als Parquet-Dateien; src/lnmetrics/gossip.py
dokumentiert das erwartete Layout (gossip_daily/{nodes,policies,_quality.parquet}). Die zugrunde liegenden Gossip-Daten sind
öffentlich; unsere täglichen Snapshots sind auf Anfrage beim Autor erhältlich. Richten Sie die Pipeline mit folgendem Befehl darauf aus:
export LN_PARQUET_DIR=/path/to/parquet # default: data/parquet
Jede Stufe schneidet ihre Eingaben bei DATA_CUTOFF (src/config.py) ab und schreibt ihre Abbildungen nach paper/figures/, ihre
Tabellen nach paper/tables/ und ihre Zahlen nach data/*.json.
python src/01_build_panel.py # node-day panel: client, release line, liveness, fleet flag (~7 min) -> data/panel/
python src/02_validate_lines.py # release-line validation and consistency checks -> Fig. 1, Table I
python src/03_upgrade_dynamics.py # adoption, time to upgrade, hazard model, platform waves -> Figs. 2-5, Table II
python src/04_advisory_exposure.py # exposure per advisory, response to disclosure, robustness -> Figs. 6-7, Tables III-V
python src/05_supporting_numbers.py # every number quoted in the text -> paper/numbers.tex
Das Node-Day-Panel (data/panel/, etwa 1,3 GB) ist nicht eingecheckt.
paper/build.ps1 (Windows, MiKTeX) führt pdflatex → bibtex → pdflatex aus, bis sich die Referenzen stabilisieren; build.bat führt dies
von cmd aus. Auf anderen Systemen:
cd paper && pdflatex main && bibtex main && pdflatex main && pdflatex main
python scripts/package_arxiv.py schreibt anschließend das arXiv-Bundle nach dist/.
Nur Aggregate: Es wird keine Liste, kein Ranking und keine Kennzeichnung einzelner Knoten nach Release, Plattform oder Exposition veröffentlicht, weder im
Paper noch in data/.
MIT (siehe LICENSE).