Código, dados agregados e fonte LaTeX para 'Who Patches the Lightning Network? Release Lines from Gossip, Node Platforms and Security Advisories, 2023-2026'
Saurabh Kumar, Bitcoin Data Labs
Código, dados agregados e fonte LaTeX do artigo. Categorias arXiv: cs.CR, cross-list cs.NI.
Data de corte dos dados: 2026-10-13.
O gossip da Lightning não carrega versão de software, portanto nunca se mediu se os operadores agem com base nos avisos de segurança. O artigo infere a linha de lançamento de cada nó público LND, Core Lightning, Eclair e LDK a partir dos bits de funcionalidade que ele anuncia, comparados com o código-fonte de cada lançamento, e aplica isso a instantâneos diários de gossip de maio de 2023 a outubro de 2026. A rede se corrige conforme os cronogramas de lançamento e de plataforma, não conforme as divulgações: metade dos nós LND em uma linha mais antiga atualiza em até 88 dias após um lançamento; as maiores ondas de atualização ocorreram cerca de um dia depois de a loja de aplicativos Umbrel disponibilizar uma nova versão do LND; e, das 12 divulgações que podem ser testadas, apenas a da Core Lightning de julho de 2026 elevou a taxa com que os nós deixaram lançamentos afetados, e apenas entre nós uma linha de lançamento atrás; o pedido da Core Lightning para reiniciar nós offline foi seguido majoritariamente por nós que já estavam na linha mais recente. Dois meses após o lote da Lightning Labs de agosto de 2026, 71% dos nós expostos na divulgação ainda executavam um lançamento afetado.
paper/: fonte LaTeX (main.tex, sections/, references.bib, figures/, tables/, numbers.tex), o
main.pdf compilado e um script de build.src/01_*.py … src/05_*.py: os cinco estágios do pipeline.src/lnmetrics/: as regras de inferência congeladas e os dados de referência: regras de cliente (client_fingerprint.py), a
tabela de lançamentos com os bits de funcionalidade de cada lançamento (ln_release_features.json, lida por
version_fingerprint.py), a lista de avisos com a fonte pública de cada divulgação (advisories.py), os lançamentos
de plataforma datados (platforms.py) e o leitor de gossip e os auxiliares de painel (gossip.py, panel.py).data/: saídas JSON agregadas por trás de cada figura, tabela e número citado no texto.scripts/package_arxiv.py: monta o pacote de upload para o arXiv.pip install -r requirements.txt
O pipeline lê instantâneos diários do grafo público de gossip da Lightning como arquivos Parquet; src/lnmetrics/gossip.py
documenta o layout esperado (gossip_daily/{nodes,policies,_quality.parquet}). Os dados de gossip subjacentes são
públicos; nossos instantâneos diários estão disponíveis com o autor mediante solicitação. Aponte o pipeline para eles com
export LN_PARQUET_DIR=/path/to/parquet # default: data/parquet
Cada estágio trunca suas entradas em DATA_CUTOFF (src/config.py) e grava suas figuras em paper/figures/, suas
tabelas em paper/tables/ e seus números em 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
O painel nó-dia (data/panel/, cerca de 1,3 GB) não está versionado.
paper/build.ps1 (Windows, MiKTeX) executa pdflatex → bibtex → pdflatex até as referências se estabilizarem; build.bat executa
a partir do cmd. Em outros sistemas:
cd paper && pdflatex main && bibtex main && pdflatex main && pdflatex main
python scripts/package_arxiv.py então grava o pacote do arXiv em dist/.
Apenas agregados: nenhuma lista, ranking ou rótulo de nós individuais por lançamento, plataforma ou exposição é publicado, nem no
artigo nem em data/.
MIT (ver LICENSE).