Skip to content

Bump rust-lightning pins to lsp-0.2.5 - #44

Open
amackillop wants to merge 1 commit into
lsp-0.7.0from
austin_bump-rust-lightning-0.2.5
Open

Bump rust-lightning pins to lsp-0.2.5#44
amackillop wants to merge 1 commit into
lsp-0.7.0from
austin_bump-rust-lightning-0.2.5

Conversation

@amackillop

@amackillop amackillop commented Aug 7, 2026

Copy link
Copy Markdown

Bumps all twelve lightning-* git pins from lsp-0.2.0 (upstream v0.2 base) to lsp-0.2.5 (d6f87a44d), our fork rebased onto upstream v0.2.5. Companion to moneydevkit/rust-lightning#28 — review that PR for the rebase itself; this one is just the pin move.

Picks up the 0.2.1–0.2.5 security fixes: funds-theft fix for forwarding nodes (#4854), possiblyrandom HashDoS (#4719), LSPS persistence stuck-after-one-failure (#4597), anchor reserve underestimates, async-persist restart force-closure bug, and more.

Behavioral notes:

  • Splice feature bit: splicing negotiates on bit 63 (production) per upstream 0.2.2; the fork also dual-advertises legacy bit 155 and accepts it from peers, so pre-rebase clients keep splicing (we must assume they exist until MDK-424 telemetry ships). ACINQ carve-out (strip 155) preserved.
  • DefaultMessageRouter (0.2.3): generates unblinded reply paths for nodes with public channels — the upstream workaround for LND peers refusing to forward BOLT12 messages.
  • splice_channel (0.2.1): fails fast when the peer advertises neither splicing bit; the LSPS4 error path already releases the coin reservation.

No code changes needed — the fork API surface is unchanged.

Test evidence (plain cargo per the repo's known fmt/lint debt; nix-provided bitcoind 27.1 + electrs-esplora for integration tests):

  • At the current pin (d6f87a44d): cargo check --all-targets clean; cargo test --lib 33/33; the three splice integration tests (splice_channel + both splice-reservation tests) 3/3 on a clean run — one run had a single timing flake, rerun passed.
  • Full integration suite (run at the pre-restore pin f0308f89a; the restore only adds a feature bit): 37/38 — the one failure (channel_full_cycle_0conf, ChannelSplicingFailed on the follow-up splice_in) reproduces identically on current lsp-0.7.0 with the old pins, i.e. pre-existing; see comment below. Worth a separate ticket.

Moves all twelve lightning-* git pins from lsp-0.2.0 (based on upstream
v0.2) to lsp-0.2.5 (d6f87a44d), our fork rebased onto upstream v0.2.5.
Picks up the 0.2.1-0.2.5 security and bug fixes, most notably the
funds-theft fix for forwarding nodes (#4854), the possiblyrandom
HashDoS fix (#4719), and the LSPS persistence stuck-after-one-failure
fix (#4597).

The rebase moves splicing to production feature bit 63 (upstream
0.2.2), and the fork additionally dual-advertises the legacy prototype
bit 155 and accepts it at the splice_channel gate, so un-upgraded
clients keep splicing until client version telemetry (MDK-424) ships
and confirms the bit can be sunset. The ACINQ carve-out (strip 155,
eclair chokes on both bits) is preserved.

No code changes required: the fork API surface is unchanged and the
0.2.3 DefaultMessageRouter change (unblinded reply paths for nodes
with public channels, the LND BOLT12 workaround) is behavioral only.
@amackillop
amackillop force-pushed the austin_bump-rust-lightning-0.2.5 branch from bd802e2 to 64a0588 Compare August 7, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant