Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
ded972b
Automatically archive resolved `ChannelMonitor`s in the BP
TheBlueMatt Dec 16, 2025
5ff4051
Simplify `Sleeper` init in sync `lightning-background-processor`
TheBlueMatt Dec 31, 2025
efaadf5
Pass a new `Notifier` through to `UtxoFuture`s
TheBlueMatt Dec 31, 2025
91a16c5
Poll for resolved `UtxoFuture`s rather than resolving on the graph
TheBlueMatt Dec 31, 2025
ad78799
Move to awaiting gossip validation in the background processor
TheBlueMatt Dec 31, 2025
15ddb31
Drop the async-setting of the `P2PGossipSync` `utxo_verifier`
TheBlueMatt Dec 31, 2025
9c802c2
Refactor payment_hash to return PaymentHash
psychemist Dec 26, 2025
c06aa96
Add a trivial helper to LSPS5's `WebhookNotification`
TheBlueMatt Jan 1, 2026
f036788
Merge pull request #4295 from TheBlueMatt/2025-12-lsps5-auto-serialize
tnull Jan 5, 2026
9203818
Split `OffersContext::OutboundPayment` into `InRefund`/`InInvReq`
TheBlueMatt Nov 9, 2025
485ae4e
Make `DefaultMessageRouter` use the context to pad/compact paths
TheBlueMatt Oct 16, 2025
c589389
Always pad `BlindedMessagePath` hop data to a consistent length
TheBlueMatt Jan 5, 2026
dc623d3
Add additional documentation on when to use `NodeIdMessageRouter`
TheBlueMatt Dec 9, 2025
d7b86e5
Add a pending changelog note for breaking invreq blinded paths
TheBlueMatt Dec 11, 2025
72c69bb
Merge pull request #4213 from TheBlueMatt/2025-10-pad-use-non-compact…
jkczyz Jan 6, 2026
1c730c8
Merge pull request #4288 from TheBlueMatt/2025-12-autoprune
tankyleo Jan 7, 2026
cafbd56
Add logger to monitor_updating_paused
joostjager Jan 5, 2026
88485d2
Consume vectors in monitor_updating_paused
joostjager Jan 6, 2026
8ae40ee
Rustfmt channel methods
joostjager Jan 5, 2026
51b5ef7
Simplify error return patterns in channel.rs
joostjager Jan 6, 2026
5b21115
Make test block connect style configurable for deterministic runs
joostjager Jan 5, 2026
5236dba
Merge pull request #4294 from TheBlueMatt/2025-12-gossip-validate-arc…
tnull Jan 8, 2026
075bc34
Make test hash map iteration order configurable for deterministic runs
joostjager Jan 7, 2026
94cc358
Merge pull request #4296 from joostjager/connect-style-var
TheBlueMatt Jan 8, 2026
5fbbd41
Parallelize `ChannelMonitor` loading from async `KVStore`s
TheBlueMatt Oct 8, 2025
b4eab2c
Allow `FutureSpawner` to return the result of the spawned future
TheBlueMatt Oct 9, 2025
18f7a8f
Add an option to deserialize monitors in parallel in async load
TheBlueMatt Oct 12, 2025
7471d05
Avoid a storage RTT when loading `ChannelMonitor`s without updates
TheBlueMatt Oct 8, 2025
6ef22ba
Parallelize `ChannelMonitorUpdate` loading
TheBlueMatt Oct 9, 2025
f1755b1
Merge pull request #4298 from joostjager/add-monitor-logging
valentinewallace Jan 8, 2026
b858b44
util: add support for option with custom encoding
carlaKC Dec 16, 2025
46aa1cf
ln: add experimental accountable signal to update_add_htlc
carlaKC Oct 23, 2025
413aa95
ln: add incoming_accountable to PendingHTLCInfo
carlaKC Oct 23, 2025
d084a9d
ln: add accountable signal to HTLCUpdateAwaitingACK::AddHTLC
carlaKC Oct 23, 2025
d3b58e3
ln: add accountable signal to OutboundHTLCOutput
carlaKC Jan 8, 2026
c9f022b
Merge pull request #4147 from TheBlueMatt/2025-10-parallel-reads
TheBlueMatt Jan 8, 2026
7c97f3c
Remove unnecessary update_add clone on Channel ser
valentinewallace Dec 16, 2025
351bd3c
ln/test: add test coverage for accountable signal propagation
carlaKC Nov 12, 2025
c722443
Merge pull request #4232 from carlaKC/4181-experimental-accountable
tnull Jan 9, 2026
6578b88
Clarify splicing feature flag requirements
tankyleo Dec 10, 2025
cef001b
Merge pull request #4274 from tankyleo/25-12-02-splicing-docs
TheBlueMatt Jan 12, 2026
2a1273b
Move is_chan_closed check into loop
valentinewallace Jan 5, 2026
55f8911
Don't double-forward HTLCs in rebuilt update_adds map
valentinewallace Dec 12, 2025
03882bd
Optimize dedup_decode_update_add_htlcs
valentinewallace Dec 16, 2025
e76159a
Prefer legacy forward maps on manager read
valentinewallace Dec 16, 2025
5a4912c
Update outdated comment due to var renames
valentinewallace Jan 12, 2026
b6b622f
Convert internal update handling fns to methods
joostjager Dec 19, 2025
b540cd6
Refactor monitor update completion into helper methods
joostjager Jan 8, 2026
d89a1af
Inline handle_monitor_update_completion! macro
joostjager Jan 8, 2026
a9656dd
Remove handle_new_monitor_update_locked_actions_handled_by_caller macro
joostjager Jan 8, 2026
d0cc60f
Remove handle_initial_monitor macro
joostjager Jan 8, 2026
d0dc4f0
Remove handle_post_close_monitor_update macro
joostjager Jan 8, 2026
a160bbf
Remove handle_new_monitor_update macro
joostjager Jan 8, 2026
c5d7b13
Merge pull request #4289 from valentinewallace/2025-12-reconstruct-fw…
TheBlueMatt Jan 13, 2026
b524b9b
Remove spurious debug assertion added in 0.2
TheBlueMatt Jan 14, 2026
20e8526
Rename update_channel_monitor to handle_new_monitor_update_locked_act…
joostjager Jan 14, 2026
b4fb555
Merge pull request #4312 from TheBlueMatt/2026-01-spurious-debug-asse…
wpaulino Jan 14, 2026
bf6017d
`NetworkGraph`: Update node and channel count estimates for Jan 2026
tnull Jan 12, 2026
9859bb9
fuzz: document -D flag for faster development builds
joostjager Jan 15, 2026
1f2e903
fuzz: support initial async monitor persistence in chanmon_consistency
joostjager Jan 15, 2026
5a81e17
Merge pull request #4291 from joostjager/update-handling-refactor
TheBlueMatt Jan 15, 2026
429a55a
`NetworkGraph`: Determine pre-allocations using actual numbers when r…
tnull Jan 12, 2026
39ca7cb
`NetworkGraph`: One pre-allocate memory on mainnet
tnull Jan 14, 2026
4281e49
Merge pull request #4306 from tnull/2026-01-allow-empty-network-graph
TheBlueMatt Jan 16, 2026
94078ca
Use struct instead of enum for SpliceContribution
jkczyz Dec 2, 2025
76e73a4
Use Amount in calculate_change_output_value
jkczyz Dec 4, 2025
e58cfbc
Check change value in test_splice_in
jkczyz Dec 4, 2025
900ffda
Introduce Dummy BlindedPaymentTlv
shaavan Oct 9, 2025
cad88af
Free holding cells immediately rather than in message sending
TheBlueMatt Jan 17, 2026
09b3bef
Merge pull request #4315 from joostjager/async-fuzz
TheBlueMatt Jan 17, 2026
923949b
Introduce Dummy Hop support in Blinded Path Constructor
shaavan Oct 9, 2025
d2def54
Introduce Payment Dummy Hop parsing mechanism
shaavan Oct 20, 2025
6abf36e
Update PaymentPath, and ClaimAlongRoute arguments
shaavan Oct 21, 2025
5981c17
Introduce payment dummy hops in DefaultRouter
shaavan Nov 18, 2025
2a34be1
Introduce Blinded Payment Dummy Path test
shaavan Oct 21, 2025
105521f
net-tokio: add `fn tor_connect_outbound`
tankyleo Jan 12, 2026
2d54669
Merge pull request #4152 from shaavan/pay-dummy
TheBlueMatt Jan 20, 2026
8eb9e70
Mixed mode splicing
jkczyz Dec 4, 2025
b9c1a72
Merge pull request #4305 from tankyleo/26-01-socks5-outbound
TheBlueMatt Jan 20, 2026
e9ce486
Merge pull request #4261 from jkczyz/2025-12-splice-in-and-out
TheBlueMatt Jan 20, 2026
7785360
Merge pull request #4320 from TheBlueMatt/2026-01-live-holding-cells
tnull Jan 21, 2026
8bdd1fa
Add `total_consistency_lock` check in `handle_post_event_actions`
TheBlueMatt Jan 21, 2026
8cdc86a
Merge pull request #4329 from TheBlueMatt/2026-01-actions-lock-assert
wpaulino Jan 22, 2026
24c61fa
fuzz: consolidate payment counters into single counter
joostjager Jan 19, 2026
7d51892
fuzz: simplify get_payment_secret_hash return type
joostjager Jan 19, 2026
151762c
fuzz: rename chan_id to scid in hop payment functions
joostjager Jan 19, 2026
ecf502a
fuzz: add transaction broadcast assertions
joostjager Jan 19, 2026
0a48663
fuzz: convert send helpers to closures with node indices
joostjager Jan 19, 2026
246083e
fuzz: track pending and resolved payments
joostjager Jan 19, 2026
5da7499
Drop unnecessary Rust install in SemVer CI
tnull Jan 23, 2026
feef6a4
Merge pull request #4339 from tnull/2026-01-run-semver-checks-on-msrv
TheBlueMatt Jan 23, 2026
cc1eb16
`ElectrumSyncClient`: Skip unconfirmed `get_history` entries
tnull Jan 23, 2026
16973b2
Merge pull request #4321 from joostjager/fuzz-improvements
TheBlueMatt Jan 23, 2026
1a50684
Merge pull request #4341 from tnull/2026-01-electrum-improvements
TheBlueMatt Jan 23, 2026
3fee76b
Merge pull request #4293 from psychemist/change-bolt11invoice-payment…
TheBlueMatt Jan 25, 2026
131e422
`DefaultMessageRouter`: Make compact blinded paths configurable
vincenzopalazzo Jan 22, 2026
dffca8a
Include `payment_nonce` in `PaymentSent` for payer proof construction
vincenzopalazzo Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -320,3 +320,19 @@ jobs:
run: cargo fmt --check
- name: Run rustfmt checks on lightning-tests
run: cd lightning-tests && cargo fmt --check
tor-connect:
runs-on: ubuntu-latest
env:
TOOLCHAIN: 1.75.0
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install tor
run: |
sudo apt install -y tor
- name: Install Rust ${{ env.TOOLCHAIN }} toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain ${{ env.TOOLCHAIN }}
- name: Test tor connections using lightning-net-tokio
run: |
TOR_PROXY="127.0.0.1:9050" RUSTFLAGS="--cfg=tor" cargo test --verbose --color always -p lightning-net-tokio
4 changes: 0 additions & 4 deletions .github/workflows/semver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ jobs:
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install Rust stable toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain stable
rustup override set stable
- name: Check SemVer with default features
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
Expand Down
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,28 @@ Fuzzing is heavily encouraged: you will find all related material under `fuzz/`
Mutation testing is work-in-progress; any contribution there would be warmly
welcomed.

### Environment Variables

* `LDK_TEST_CONNECT_STYLE` - Override the random block connect style used in tests for deterministic runs. Valid values:
* `BEST_BLOCK_FIRST`
* `BEST_BLOCK_FIRST_SKIPPING_BLOCKS`
* `BEST_BLOCK_FIRST_REORGS_ONLY_TIP`
* `TRANSACTIONS_FIRST`
* `TRANSACTIONS_FIRST_SKIPPING_BLOCKS`
* `TRANSACTIONS_DUPLICATIVELY_FIRST_SKIPPING_BLOCKS`
* `HIGHLY_REDUNDANT_TRANSACTIONS_FIRST_SKIPPING_BLOCKS`
* `TRANSACTIONS_FIRST_REORGS_ONLY_TIP`
* `FULL_BLOCK_VIA_LISTEN`
* `FULL_BLOCK_DISCONNECTIONS_SKIPPING_VIA_LISTEN`

* `LDK_TEST_DETERMINISTIC_HASHES` - When set to `1`, uses deterministic hash map iteration order in tests. This ensures consistent test output across runs, useful for comparing logs before and after changes.

* `LDK_TEST_REBUILD_MGR_FROM_MONITORS` - If set to `1`, on test node reload the `ChannelManager`'s
HTLC set will be reconstructed from `Channel{Monitor}` persisted data. If `0`, test nodes will be
reloaded from persisted `ChannelManager` data using legacy code paths. This ensures consistent
test output across runs, useful for comparing logs before and after changes, since otherwise the
selection of which codepaths to be used on reload will be chosen randomly.

C/C++ Bindings
--------------

Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,5 @@ check-cfg = [
"cfg(require_route_graph_test)",
"cfg(simple_close)",
"cfg(peer_storage)",
"cfg(tor)",
]
13 changes: 13 additions & 0 deletions fuzz/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,19 @@ cargo +nightly fuzz run --features "libfuzzer_fuzz" msg_ping_target
Note: If you encounter a `SIGKILL` during run/build check for OOM in kernel logs and consider
increasing RAM size for VM.

##### Fast builds for development

The default build uses LTO and single codegen unit, which is slow. For faster iteration during
development, use the `-D` (dev) flag:

```shell
cargo +nightly fuzz run --features "libfuzzer_fuzz" -D msg_ping_target
```

The `-D` flag builds in development mode with faster compilation (still has optimizations via
`opt-level = 1`). The first build will be slow as it rebuilds the standard library with
sanitizer instrumentation, but subsequent builds will be fast.

If you wish to just generate fuzzing binary executables for `libFuzzer` and not run them:
```shell
cargo +nightly fuzz build --features "libfuzzer_fuzz" msg_ping_target
Expand Down
Loading