Código, datos agregados y fuente LaTeX de 'Who Patches the Lightning Network? Release Lines from Gossip, Node Platforms and Security Advisories, 2023-2026'
Saurabh Kumar, Bitcoin Data Labs
Código, datos agregados y fuente LaTeX del artículo. Categorías de arXiv: cs.CR, lista cruzada cs.NI.
Fecha de corte de los datos: 2026-10-13.
El gossip de Lightning no transporta ninguna versión de software, por lo que nunca se ha medido si los operadores actúan ante los avisos de seguridad. El artículo infiere la línea de versión de cada nodo público de LND, Core Lightning, Eclair y LDK a partir de los bits de características que anuncia, cotejados con el código fuente de cada versión, y lo aplica a instantáneas diarias del gossip desde mayo de 2023 hasta octubre de 2026. La red se parchea según los calendarios de versiones y de plataformas, no según las divulgaciones: la mitad de los nodos LND en una línea más antigua se actualizan en los 88 días siguientes a una versión; las mayores oleadas de actualización se produjeron aproximadamente un día después de que la tienda de aplicaciones de Umbrel publicara una nueva versión de LND; y de 12 divulgaciones que pueden someterse a prueba, solo la de Core Lightning de julio de 2026 elevó la tasa a la que los nodos abandonaron las versiones afectadas, y solo entre los nodos que iban una línea de versión por detrás; el llamamiento de Core Lightning a reiniciar los nodos sin conexión fue seguido mayoritariamente por nodos que ya estaban en la línea más reciente. Dos meses después del lote de agosto de 2026 de Lightning Labs, el 71% de los nodos expuestos en el momento de la divulgación seguían ejecutando una versión afectada.
paper/: fuente LaTeX (main.tex, sections/, references.bib, figures/, tables/, numbers.tex), el
main.pdf compilado y un script de compilación.src/01_*.py … src/05_*.py: las cinco etapas del pipeline.src/lnmetrics/: las reglas de inferencia congeladas y los datos de referencia: reglas de cliente (client_fingerprint.py), la
tabla de versiones con los bits de características de cada versión (ln_release_features.json, leída por
version_fingerprint.py), la lista de avisos con la fuente pública de cada divulgación (advisories.py), las
versiones de plataforma con fecha (platforms.py), y el lector de gossip y los ayudantes de panel (gossip.py, panel.py).data/: salidas JSON agregadas que respaldan cada figura, tabla y cifra del texto.scripts/package_arxiv.py: genera el paquete de carga para arXiv.pip install -r requirements.txt
El pipeline lee instantáneas diarias del grafo de gossip público de Lightning como archivos Parquet; src/lnmetrics/gossip.py
documenta la estructura esperada (gossip_daily/{nodes,policies,_quality.parquet}). Los datos de gossip subyacentes son
públicos; nuestras instantáneas diarias están disponibles a petición del autor. Apunte el pipeline a ellas con
export LN_PARQUET_DIR=/path/to/parquet # default: data/parquet
Cada etapa trunca sus entradas en DATA_CUTOFF (src/config.py) y escribe sus figuras en paper/figures/, sus
tablas en paper/tables/ y sus cifras en 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
El panel de nodo-día (data/panel/, unos 1,3 GB) no está incluido en el repositorio.
paper/build.ps1 (Windows, MiKTeX) ejecuta pdflatex → bibtex → pdflatex hasta que las referencias se estabilicen; build.bat lo ejecuta
desde cmd. En otros sistemas:
cd paper && pdflatex main && bibtex main && pdflatex main && pdflatex main
python scripts/package_arxiv.py escribe entonces el paquete de arXiv en dist/.
Solo agregados: no se publica ninguna lista, clasificación o etiqueta de nodos individuales por versión, plataforma o exposición, ni en el
artículo ni en data/.
MIT (véase LICENSE).