Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.
This commit fixes a bug in the Lightning Dev Kit where a proposed channel splice could be incorrectly rejected when there were still unconfirmed updates (like HTLC fulfillments) pending in the channel. The fix skips an internal consistency…
Logic bug in channel-state validation during splice negotiationDebug-only assertion could trigger on legitimate protocol stateState inconsistency between advertised splice maximum and current commitment views
This commit fixes a fee-reservation bug in a Lightning Network node implementation. When a node calculates how much money it can still send through a channel, it must set aside enough funds to pay the on-chain transaction fee if the channe…
Fee-reservation miscalculation in channel balance availabilityAsymmetric commitment transaction fees due to differing dust limitsPotential protocol violation when proposing channel state updates
This commit is a pure code cleanup: it takes one large function that calculates how much money can still be sent over a Lightning channel and splits it into smaller, named helper functions. The actual arithmetic and rules appear unchanged,…
This commit fixes a bug in how the Lightning node calculates the maximum amount a user can splice out of a channel. Previously, the calculation only looked at the user's own view of the channel (the local commitment). It now also checks th…
Invariant violation in splice-out maximum calculationDebug assertion failure triggered by fuzzingChannel state inconsistency between local and remote commitments
This commit only removes test cases that covered old-style ('legacy') Lightning channels with zero reserve. It does not change the actual production code that runs in users' nodes. The remaining tests now focus on modern anchor-style chann…
Removal of legacy-channel test coverage onlyNo changes to src/ln/channel.rs, channelmanager.rs, or transaction-fee production logicCommit title explicitly states intent: 'Remove all tests covering 0-reserve legacy channels'
This commit tightens the rules for a special kind of Lightning channel. In older-style ('legacy') channels, it now prevents the local side from setting a zero channel reserve. A channel reserve is a small amount of bitcoin each party must …
0-reserve restriction added specifically for legacy/anchorless channelsEconomic disincentive against revoked commitment broadcast may be weakened when reserve is zeroValidation added at channel open, accept, reestablish, and splice paths
This commit only adds new test code. It does not change any production logic. The tests verify that the software already rejects opening so-called '0-reserve legacy channels' and returns clear error messages. Nothing in the commit fixes a …
No production code modifiedTest-only changeValidates existing access-control / policy enforcement
This commit relaxes a safety check in how Lightning channels calculate available balances during fee spikes. Previously, the code tried to ensure a commitment transaction would still have at least one output even if fees spiked. The change…
Fee spike handling logic changedNo-outputs guard removed from balance availability calculationLegacy channel assumptions used to justify relaxed check
This commit fixes a consistency gap in the Lightning Dev Kit: a setting that normally blocks very small inbound channels when they are first opened was not being checked after a 'splice' that shrinks the channel. A splice lets both parties…
Missing authorization/policy enforcement: an existing inbound-channel policy (`min_funding_satoshis`) was not enforced after splice operations that reduce channel capacity.Defensive hardening: the patch closes the gap by re-applying the configured minimum to splice-in/splice-out/RBF flows where the counterparty removes funds.Peer-disconnect on violation: failures are surfaced as `WarnAndDisconnect`, terminating the offending peer's connection.
This commit is purely a code-formatting cleanup. It removes a `#[rustfmt::skip]` annotation and lets Rust's automatic formatter re-indent a function. No logic, behavior, or security properties of the code change.
This commit is a code-cleanup refactor that moves the calculation of a 'spiked feerate' (a safety buffer against sudden Bitcoin fee increases) from one part of the code to another. It does not change the actual multiplier value or the secu…
Refactor of fee-spike-buffer calculation locationNo change to the FEE_SPIKE_BUFFER_FEE_INCREASE_MULTIPLE constant or its valueNo change to anchor/non-anchor channel handling logic
This commit fixes a bug in how Lightning Dev Kit calculates whether a channel funder can afford a sudden spike in Bitcoin transaction fees. Previously, the code assumed HTLCs (small conditional payments) that would become uneconomical at a…
This commit fixes a bug in how the Lightning node calculates the reserve funds it must keep available to pay for a future emergency fee increase. Previously, the node counted how many small HTLC payments would be dropped from the transacti…
This commit fixes a bug in Lightning Dev Kit's splicing logic for zero-fee-commitment (0FC) channels. Previously, when calculating the required channel reserve after a splice, the code would cap the reserve at the total channel value. In a…
Channel reserve bypass in 0FC splice-outReserve calculation capped to channel value instead of dust limitUse of per-party dust limit rather than global constant
This commit tightens how Lightning Dev Kit calculates the channel reserve for older-style (v1) channels. The reserve is a portion of channel funds that must stay untouched to guarantee both parties can pay penalties if someone cheats. Prev…
Input validation added to channel reserve calculationProportional reserve capped at 100% to prevent reserve exceeding channel valueError returned instead of silently clamping reserve to channel value
This commit fixes a bug in the Lightning Dev Kit where very small channels could be created or spliced down to below 1000 satoshis when zero-reserve channels were used. Normally, a reserve requirement prevents channels from being too tiny,…
Missing lower-bound validation on channel value for zero-reserve channelsSplicing could reduce channel value below 1000 satoshisNew constant MIN_CHANNEL_VALUE_SATOSHIS introduced and enforced
This commit changes how a Lightning channel validates splice-out funding contributions. Instead of a more general reserve check, it now uses a dedicated 'next splice-out maximum' calculation to decide whether a proposed splice-out is too l…
Replaces a broader reserve validation with a specific splice-out maximum checkUses `checked_add_signed` to prevent signed-amount overflow when validating contributionsCommit message references a prior commit with added debug assertions, implying a hardening or follow-up fix
This commit adds a new test case for the Lightning Dev Kit library. It does not change any production code; it only adds test code that checks how splicing (a way to resize a Lightning channel) behaves when one side has a zero reserve bala…
This commit adds a new read-only field called next_splice_out_maximum_sat to the public ChannelDetails struct. It exposes how much bitcoin can be spliced out of a channel in the next splice operation. There is no change to logic, permissio…
This commit fixes how rust-lightning calculates the maximum amount a user can splice out of a Lightning channel. Previously the calculation ignored channel reserve rules and a requirement to keep at least one output, which could have allow…
Incorrect maximum splice-out calculation could lead to protocol-rejected or unbroadcastable splice transactionsZero-reserve channel edge case could produce a commitment with no outputsReserve requirement was not recomputed after reducing channel value