Codice, dati aggregati e sorgente LaTeX per 'Who Patches the Lightning Network? Release Lines from Gossip, Node Platforms and Security Advisories, 2023-2026'
Saurabh Kumar, Bitcoin Data Labs
Codice, dati aggregati e sorgente LaTeX per il paper. Categorie arXiv: cs.CR, cross-list cs.NI.
Data di cutoff dei dati: 2026-10-13.
Il gossip della Lightning non trasporta alcuna versione software, quindi non è mai stato misurato se gli operatori agiscano in base agli avvisi di sicurezza. Il paper deduce la linea di rilascio di ogni nodo pubblico LND, Core Lightning, Eclair e LDK dai bit di funzionalità che annuncia, confrontati con il sorgente di ogni rilascio, e lo applica a snapshot giornalieri del gossip da maggio 2023 a ottobre 2026. La rete si aggiorna secondo i calendari di rilascio e delle piattaforme, non secondo le divulgazioni: metà dei nodi LND su una linea più vecchia si aggiorna entro 88 giorni da un rilascio; le ondate di aggiornamento più ampie si sono verificate circa un giorno dopo che l'app store di Umbrel ha distribuito una nuova versione di LND; e delle 12 divulgazioni testabili, solo quella di Core Lightning di luglio 2026 ha aumentato il tasso con cui i nodi abbandonavano i rilasci interessati, e solo tra i nodi indietro di una linea di rilascio; l'invito di Core Lightning a riavviare i nodi offline è stato seguito soprattutto da nodi già sulla linea più recente. Due mesi dopo il batch di Lightning Labs di agosto 2026, il 71% dei nodi esposti al momento della divulgazione eseguiva ancora un rilascio interessato.
paper/: sorgente LaTeX (main.tex, sections/, references.bib, figures/, tables/, numbers.tex), il
main.pdf compilato e uno script di build.src/01_*.py … src/05_*.py: le cinque fasi della pipeline.src/lnmetrics/: le regole di inferenza congelate e i dati di riferimento: regole per client (client_fingerprint.py), la
tabella dei rilasci con i bit di funzionalità di ogni rilascio (ln_release_features.json, letto da
version_fingerprint.py), l'elenco degli avvisi con il sorgente pubblico di ciascuna divulgazione (advisories.py), i rilasci
datati delle piattaforme (platforms.py), e gli helper per la lettura del gossip e per il panel (gossip.py, panel.py).data/: output JSON aggregati alla base di ogni figura, tabella e numero citato nel testo.scripts/package_arxiv.py: costruisce il bundle di upload per arXiv.pip install -r requirements.txt
La pipeline legge snapshot giornalieri del grafo pubblico del gossip Lightning come file Parquet; src/lnmetrics/gossip.py
documenta il layout atteso (gossip_daily/{nodes,policies,_quality.parquet}). I dati di gossip sottostanti sono
pubblici; i nostri snapshot giornalieri sono disponibili su richiesta all'autore. Per indicarli alla pipeline usare
export LN_PARQUET_DIR=/path/to/parquet # default: data/parquet
Ogni fase tronca i propri input a DATA_CUTOFF (src/config.py) e scrive le proprie figure in paper/figures/, le proprie
tabelle in paper/tables/ e i propri numeri in 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
Il panel node-day (data/panel/, circa 1,3 GB) non è incluso nel repository.
paper/build.ps1 (Windows, MiKTeX) esegue pdflatex → bibtex → pdflatex finché i riferimenti non si stabilizzano; build.bat lo esegue
da cmd. Su altri sistemi:
cd paper && pdflatex main && bibtex main && pdflatex main && pdflatex main
python scripts/package_arxiv.py scrive poi il bundle arXiv in dist/.
Solo aggregati: nessun elenco, classifica o etichetta di singoli nodi per rilascio, piattaforma o esposizione viene pubblicato, né nel
paper né in data/.
MIT (vedi LICENSE).