8.8 KiB
Release Notes
Bug Fixes
- Fixed potential update inconsistencies in node announcements by creating a shallow copy before modifications. This ensures the original announcement remains unchanged until the new one is fully signed and validated.
New Features
Functional Enhancements
RPC Additions
-
When querying
ForwardingEventslogs, the response now include the incoming and outgoing htlc indices of the payment circuit. The indices are only available for forwarding events saved after v0.20. -
The
lncli addinvoice --blindcommand now has the option to include a chained channels 1 2 incoming list--blinded_path_incoming_channel_listwhich gives users the control of specifying the channels they prefer to receive the payment on. With the option to specify multiple channels this control can be extended to multiple hops leading to the node. -
The
lnrpc.ForwardingHistoryRPC method now supports filtering byincoming_chan_idsandoutgoing_chan_ids. This allows to retrieve forwarding events for specific channels. -
DescribeGraph,GetNodeInfo,GetChanInfoand the corresponding lncli commands now have flaginclude_auth_proof. With the flag, these APIs add AuthProof (signatures from the channel announcement) to the returned ChannelEdge.
lncli Additions
-
lncli sendpaymentandlncli queryroutesnow support the--route_hintsflag to support routing through private channels. -
The
lncli fwdinghistorycommand now supports two new flags:--incoming_chan_idsand--outgoing_chan_ids. These filters allows to query forwarding events for specific channels.
Improvements
Functional Updates
- Graph Store SQL implementation and migration project:
- Introduce an abstract graph store interface.
- Start validating that byte blobs at the end of gossip messages are valid TLV streams.
- Various preparations of the graph code before the SQL implementation is added.
- Only fetch required fields during graph cache population.
- Add graph schemas, queries and CRUD:
- Add graph SQL migration logic:
RPC Updates
- Previously the
RoutingPolicywould return the inbound fee record in itsCustomRecordsfield, which is duplicated info as it's already presented in fieldsInboundFeeBaseMsatandInboundFeeRateMilliMsat. This is now fixed, the affected RPCs areSubscribeChannelGraph,GetChanInfo,GetNodeInfoandDescribeGraph.
lncli Updates
Code Health
-
Increase itest coverage for payments. Now the payment address is mandatory for the writer and reader of a payment request.
-
Refactored
channelLinkto improve readability and maintainability of the code.
Breaking Changes
Performance Improvements
Deprecations
⚠️ Warning: The following RPCs will be removed in release version 0.21:
| Deprecated RPC Method | REST Equivalent | HTTP Method | Path | Replaced By |
|---|---|---|---|---|
lnrpc.SendToRoute routerrpc.SendToRoute |
❌ (No direct REST equivalent) | — | — | routerrpc.SendToRouteV2 |
lnrpc.SendPayment routerrpc.SendPayment |
✅ | POST |
/v1/channels/transaction-stream |
routerrpc.SendPaymentV2 |
lnrpc.SendToRouteSync |
✅ | POST |
/v1/channels/transactions/route |
routerrpc.SendToRouteV2 |
lnrpc.SendPaymentSync |
✅ | POST |
/v1/channels/transactions |
routerrpc.SendPaymentV2 |
router.TrackPayment |
❌ (No direct REST equivalent) | — | — | routerrpc.TrackPaymentV2 |
🚨 Users are strongly encouraged to transition to the new V2 methods before release 0.21 to ensure compatibility:
| New RPC Method | REST Equivalent | HTTP Method | Path |
|---|---|---|---|
routerrpc.SendToRouteV2 |
✅ | POST |
/v2/router/route/send |
routerrpc.SendPaymentV2 |
✅ | POST |
/v2/router/send |
routerrpc.TrackPaymentV2 |
✅ | GET |
/v2/router/track/{payment_hash} |
Technical and Architectural Updates
BOLT Spec Updates
-
Explicitly define the inbound fee TLV record on the
channel_updatemessage and handle it explicitly throughout the code base instead of extracting it from the TLV stream at various call-sites. -
Require invoices to include a payment address or blinded paths to comply with updated BOLT 11 specifications before sending payments.
Testing
- Previously, automatic peer bootstrapping was disabled for simnet, signet and
regtest networks even if the
--nobootstrapflag was not set. This automatic disabling has now been removed meaning that any test network scripts that rely on bootstrapping being disabled will need to explicitly define the--nobootstrapflag. Bootstrapping will now also be deterministic on local test networks so that bootstrapping behaviour can be tested for.
Database
Code Health
Tooling and Documentation
Contributors (Alphabetical Order)
- Abdulkbk
- Boris Nagaev
- Elle Mouton
- Erick Cestari
- Funyug
- Mohamed Awnallah
- Pins
- Ziggie