Skip to content

Latest commit

 

History

History
288 lines (226 loc) · 11 KB

release-notes-0.18.3.md

File metadata and controls

288 lines (226 loc) · 11 KB

Release Notes

Bug Fixes

  • closedchannels now successfully reports settled balances even if the delivery address is set to an address that LND does not control.

  • SendPaymentV2 now cancels the background payment loop if the user cancels the stream context.

  • Fixed a bug that caused LND to read the config only partially and continued with the startup.

  • Avoids duplicate wallet addresses being created when multiple RPC calls are made concurrently.

  • Fixed a bug that caused LND to use a default fee rate for the batch channel opening flow.

  • Fixed a case where LND would not shut down properly when interrupted via e.g. SIGTERM. Moreover, LND now shutsdown correctly in case one subsystem fails to startup.

  • The fee limit for payments was made compatible with inbound fees.

  • Fixed a case where bumping an anchor channel closing was not possible when no HTLCs were on the commitment when the channel was force closed.

  • Fixed old payments that are stuck inflight. Though the root cause is unknown, it's possible the network result for a given HTLC attempt was not saved, which is now fixed. Check here for the details about the analysis, and here for a summary of the issue.

  • We'll now always send channel updates to our remote peer for open channels.

  • Fix a bug that would cause UpdateAddHTLC message with blinding point fields to not be re-forwarded correctly on restart.

  • A bug has been fixed that could cause invalid channel announcements to be generated if the inbound fee discount is used.

  • Fixed a timestamp issue in the ReplyChannelRange msg and introduced a check that ChanUpdates with a timestamp too far into the future will be discarded.

  • Fixed a bug where we would create a blinded route with a minHTLC greater than the actual payment amount. Moreover remove strict correlation between min_cltv_delta and the blinded path expiry.

New Features

Functional Enhancements

  • LND will now temporarily ban peers that send too many invalid ChannelAnnouncement. This is only done for LND nodes that validate ChannelAnnouncement messages.

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.

  • The SendCoinsRequest now takes an optional param Outpoints, which is a list of *lnrpc.OutPoint that specifies the coins from the wallet to be spent in this RPC call. To send selected coins to a given address with a given amount,

        req := &lnrpc.SendCoinsRequest{
            Addr: ...,
            Amount: ...,
            Outpoints: []*lnrpc.OutPoint{
                selected_wallet_utxo_1,
                selected_wallet_utxo_2,
            },
        }
    
        SendCoins(req)

    To send selected coins to a given address without change output,

        req := &lnrpc.SendCoinsRequest{
          Addr: ...,
          SendAll: true,
          Outpoints: []*lnrpc.OutPoint{
              selected_wallet_utxo_1,
              selected_wallet_utxo_2,
          },
        }
    
        SendCoins(req)
  • The EstimateFee call on the walletrpc sub-server now also returns the current min_relay_fee.

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.

  • sendcoins now takes an optional utxo flag. This allows users to specify the coins that they want to use as inputs for the transaction. To send selected coins to a given address with a given amount,

    sendcoins --addr YOUR_ADDR --amt YOUR_AMT --utxo selected_wallet_utxo1 --utxo selected_wallet_utxo2

    To send selected coins to a given address without change output,

    sendcoins --addr YOUR_ADDR --utxo selected_wallet_utxo1 --utxo selected_wallet_utxo2 --sweepall

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.

  • Commitment fees are now taken into account when calculating the fee exposure threshold.

  • Allow multiple etcd hosts to be specified in db.etcd.host.

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

  • Added a new failure reason FailureReasonCanceled to the list of payment failure reasons. It indicates that a payment was manually cancelled by the user.

  • Update the version of falafel used to generate JSON/wasm stubs. This latest version of falafel also supports proto3 optional fields.

Breaking Changes

Performance Improvements

Technical and Architectural Updates

BOLT Spec Updates

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.

  • Check leader status with our health checker to correctly shut down LND if network partitioning occurs towards the etcd cluster.

  • Fix some inconsistencies to make the native SQL invoice DB compatible with the KV implementation. Furthermore fix a native SQL invoice issue where AMP subinvoice HTLCs are sometimes updated incorrectly on settlement.

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)

  • Alex Akselrod
  • Andras Banki-Horvath
  • bitromortac
  • Bufo
  • Elle Mouton
  • Eugene Siegel
  • Matheus Degiovani
  • Olaoluwa Osuntokun
  • Oliver Gugger
  • Slyghtning
  • Yong Yu
  • Ziggie