6.4 KiB
Release Notes
- Bug Fixes
- New Features
- Improvements
- Technical and Architectural Updates
- Contributors (Alphabetical Order)
Bug Fixes
-
Fix bug where channels with both policies disabled at startup could never be used for routing
-
Fix a case where resolving the to_local/to_remote output might take too long.
-
Fix a bug where repeated network addresses were added to the node announcement and
getinfooutput. -
Fix source node race condition which could prevent a node from starting up if two goroutines attempt to update the node's announcement at the same time.
-
Fix timestamp comparison in source node updates that could still cause "sql: no rows in result set" startup errors. The previous fix (#10371) addressed concurrent updates with equal timestamps, but the seconds-only comparison could still fail when restarting with different minute/hour values.
-
Fix a startup issue in LND when encountering a deserialization issue in the mission control store. Now we skip over potential errors and also delete them from the store.
-
Fix potential sql tx exhaustion issue in LND which might happen when running postgres with a limited number of connections configured.
-
Add missing payment address/secret when probing an invoice. This makes sure the EstimateRouteFee API can probe Eclair and LDK nodes which enforce the payment address/secret.
-
Fix a bug where missing edges for own channels could not be added to the graph DB due to validation checks in the graph Builder that were resurfaced after the graph refactor work.
-
Fix backwards compatibility for channel edge feature deserialization. Nodes upgrading from pre-v0.20 versions could fail to read channel edges from their graph database due to a format change in how channel features are serialized. The fix adds automatic format detection to handle both legacy (raw feature bits) and new (length-prefixed) formats.
New Features
Functional Enhancements
RPC Additions
lncli Additions
Improvements
Functional Updates
-
Added panic recovery to the gossiper's message processing goroutines. This increases the robustness of the gossiper subsystem by allowing it to continue operating even if a logic error causes a panic during message processing. The recovery mechanism ensures dependencies are properly freed and logs the panic trace for debugging.
-
Improved confirmation scaling for cooperative closes to provide better reorg protection. Previously, cooperative closes required a minimum of 3 confirmations. Now, small channels only require 1 confirmation, while larger channels scale proportionally using the standard 0.16 BTC threshold (matching funding confirmation scaling).
RPC Updates
- The
EstimateRouteFeeRPC now implements an LSP detection heuristic that probes up to 3 unique Lightning Service Providers when route hints indicate an LSP setup. The implementation returns worst-case (most expensive) fee estimates for conservative budgeting and includes griefing protection by limiting the number of probed LSPs. It enhances the previous LSP design by being more generic and more flexible.
lncli Updates
Breaking Changes
- Increased MinCLTVDelta from 18 to
24 to provide a larger
safety margin above the
DefaultFinalCltvRejectDelta(19 blocks). This affects users who create invoices with customcltv_expiry_deltavalues between 18-23, which will now require a minimum of 24. The default value of 80 blocks for invoice creation remains unchanged, so most users will not be affected. Existing invoices created before the upgrade will continue to work normally.
Performance Improvements
-
Added new Postgres configuration options
db.postgres.channeldb-with-global-lockanddb.postgres.walletdb-with-global-lockto allow fine-grained control over database concurrency. The channeldb global lock defaults tofalseto enable concurrent access, while the wallet global lock defaults totrueto maintain safe single-writer behavior until the wallet subsystem is fully concurrent-safe. -
Modified the query for
IsPublicV1Nodeto useUNION ALLinstead ofORconditions in theWHEREclause, improving performance when checking for public nodes especially in large graphs when usingSQLbackends.
Deprecations
Technical and Architectural Updates
BOLT Spec Updates
- Enforce non-zero timestamps
for
channel_update(as required by BOLT 7) andnode_announcementmessages. Gossip messages with zero timestamps are now rejected. Forchannel_updatemessages, remote peers sending such invalid messages will have their ban score incremented.
Testing
Database
Code Health
Tooling and Documentation
Contributors (Alphabetical Order)
- Abdulkbk
- bitromortac
- Olaoluwa Osuntokun
- Ziggie