lnd/docs/release-notes/release-notes-0.18.3.md
bitromortac b0f0715813
routing: fix fee limit condition
When iterating edges, pathfinding checks early whether using an edge
would violate the requested total fee limit for a route. This check is
done on the net amount (an amount the inbound fee is calculated with).
However, a possible next hop's fee discount leads to a reduction in fees
and as such using the net amount leads to assuming a higher cumulative
fee than the route really has, excluding the path erroneously. We
perform the fee limit check on the amount to send, which includes both
inbound and outbound fees. This should be possible as the first hop's
outbound fee is zero and therefore doesn't have to be checked in the
end.
2024-07-30 08:53:09 +02:00

5.8 KiB

Release Notes

Bug Fixes

New Features

Functional Enhancements

RPC Additions

  • The SendPaymentRequest message receives a new flag cancelable which indicates if the payment loop is cancelable. The cancellation can either occur manually by cancelling the send payment stream context, or automatically at the end of the timeout period if the user provided timeout_seconds.

lncli Additions

  • Added the cltv_expiry argument to addinvoice and addholdinvoice, allowing users to set the min_final_cltv_expiry_delta.

  • The lncli wallet estimatefeerate command returns the fee rate estimate for on-chain transactions in sat/kw and sat/vb to achieve a given confirmation target.

Improvements

Functional Updates

  • A new field, min_relay_feerate, is now expected in the response from querying the external fee estimation URL. The new response should have the format,
      {
          "fee_by_block_target": {
              "2": 5076,
              "3": 4228,
              "26": 4200
          },
          "min_relay_feerate": 1000
      }
    
    All units are sats/kvB. If the new field min_relay_feerate is not set, the default floor feerate (1012 sats/kvB) will be used.

RPC Updates

lncli Updates

  • importmc now accepts 0 failure amounts.

  • getchaninfo now accepts a channel outpoint besides a channel id.

  • Fixed how we parse the --amp flag when sending a payment specifying the payment request.

Code Health

Breaking Changes

Performance Improvements

Technical and Architectural Updates

BOLT Spec Updates

  • Start assuming that all hops used during path-finding and route construction support the TLV onion format.

  • Allow channel fundee to send a minimum confirmation depth of 0 for a non-zero-conf channel. We will still wait for the channel to have at least one confirmation and so the main change here is that we don't error out for such a case.

  • Groundwork in preparation for implementing route blinding receives.

  • Generate and send to an invoice with blinded paths. With this, the --blind flag can be used with the lncli addinvoice command to instruct LND to include blinded paths in the invoice.

Testing

Database

  • Migrate incorrectly stored invoice expiry values. This migration only affects users of native SQL invoice database. Invoices with incorrect expiry values will be updated to 24-hour expiry, which is the default behavior in LND.

  • Fixed pagination issues in SQL invoicedb queries.

Code Health

  • Move graph building and maintaining duties from the routing.ChannelRouter to the new graph.Builder sub-system and also remove the channeldb.ChannelGraph pointer from the ChannelRouter.

Tooling and Documentation

Contributors (Alphabetical Order)

  • Andras Banki-Horvath
  • bitromortac
  • Bufo
  • Elle Mouton
  • Matheus Degiovani
  • Oliver Gugger
  • Slyghtning
  • Yong Yu
  • Ziggie