lnd/docs/release-notes/release-notes-0.19.0.md
2025-01-24 10:58:42 +01:00

14 KiB

Release Notes

Bug Fixes

  • Fixed a bug to correctly propagate mission control and debug level config values to the main LND config struct so that the GetDebugInfo response is accurate.

  • Fixed a bug where we would not signal an error when trying to bump a non-anchor channel but instead report a successful cpfp registration although no fee bumping is possible for non-anchor channels anyways.

  • Fixed a bug where a negative fee limit for SendPaymentV2 would lead to omitting the fee limit check.

  • Use the required route blinding feature-bit for invoices containing blinded paths.

  • Fix a bug that prevented a graceful shutdown of LND during the main chain backend sync check in certain cases.

  • Fixed a bug where dust htlcs although not being able to be resolved onchain were not canceled back before the commitment tx was confirmed causing potentially force closes of the incoming channel.

  • Fixed a bug found in the mission control store that can block the shutdown process of LND.

  • Make sure the RPC clients used to access the chain backend are properly shutdown.

  • Fixed a bug where the peer may block the shutdown process of lnd.

  • Fixed a case where the confirmation notification may be missed.

  • Make the contract resolutions for the channel arbitrator optional

  • Fixed a bug that caused estimateroutefee to ignore the default payment timeout.

New Features

  • Support for experimental endorsement signal relay was added. This signal has no impact on routing, and is deployed experimentally to assist ongoing channel jamming research.

  • Add initial support for quiescence. This is a protocol gadget required for Dynamic Commitments and Splicing that will be added later.

  • Fixed a case where the initial historical sync may be blocked due to a race condition in handling the syncer's internal state.

  • Add support for archiving channel backup in a designated folder which allows for easy referencing in the future. A new config is added disable-backup-archive, with default set to false, to determine if previous channel backups should be archived or not.

Functional Enhancements

RPC Additions

lncli Additions

Improvements

Functional Updates

  • Allow the compression of logs during rotation with ZSTD via the logging.file.compressor startup argument.

  • The SCB file now [contains more data][https://github.com/lightningnetwork/lnd/pull/8183] that enable a last resort rescue for certain cases where the peer is no longer around.

  • LND updates channel.backup file at shutdown time.

  • A new subsystem chainio is introduced to make sure the subsystems are in sync with their current best block. Previously, when resolving a force close channel, the sweeping of HTLCs may be delayed for one or two blocks due to block heights not in sync in the relevant subsystems (ChainArbitrator, UtxoSweeper and TxPublisher), causing a slight inaccuracy when deciding the sweeping feerate and urgency. With chainio, this is now fixed as these subsystems now share the same view on the best block. Check here to learn more.

  • The sweeper does now also use the configured budget values for HTLCs (first level sweep) in parcticular --sweeper.budget.deadlinehtlcratio and --sweeper.budget.deadlinehtlc.

RPC Updates

  • Some RPCs that previously just returned an empty response message now at least return a short status message to help command line users to better understand that the command was executed successfully and something was executed or initiated to run in the background. The following CLI commands now don't just return an empty response ({}) anymore:

    • lncli wallet releaseoutput (WalletKit.ReleaseOutput RPC)
    • lncli wallet accounts import-pubkey (WalletKit.ImportPublicKey RPC)
    • lncli wallet labeltx (WalletKit.LabelTransaction RPC)
    • lncli sendcustom (Lightning.SendCustomMessage RPC)
    • lncli connect (Lightning.ConnectPeer RPC)
    • lncli disconnect (Lightning.DisconnectPeer RPC)
    • lncli stop (Lightning.Stop RPC)
    • lncli deletepayments (Lightning.DeleteAllPaymentsResponse RPC)
    • lncli abandonchannel (Lightning.AbandonChannel RPC)
    • lncli restorechanbackup (Lightning.RestoreChannelBackups RPC)
    • lncli verifychanbackup (Lightning.VerifyChanBackup RPC)
  • The ForwardInterceptor's MODIFY option will merge any custom range TLVs provided with the existing set of records on the HTLC, overwriting any conflicting values with those supplied by the API.

  • Make the param ProofMatureDelta used in gossip to be configurable via --gossip.announcement-conf, with a default value of 6.

lncli Updates

Code Health

  • Add retry logic for watchtower block fetching with a max number of attempts and exponential back-off.

  • Moved profile related config settings to its own dedicated group. The old ones still work but will be removed in a future release.

  • Update to use structured logging. This also introduces a new --logging.console.disable option to disable logs being written to stdout and a new --logging.file.disable option to disable writing logs to the standard log file. It also adds --logging.console.no-timestamps and --logging.file.no-timestamps which can be used to omit timestamps in log messages for the respective loggers. The new --logging.console.call-site and --logging.file.call-site options can be used to include the call-site of a log line. The options for this include "off" (default), "short" (source file name and line number) and "long" (full path to source file and line number). Finally, the new --logging.console.style option can be used under the dev build tag to add styling to console logging.

  • Start adding a commit hash fingerprint to log lines by default. This can be disabled with the new --logging.no-commit-hash" option. Note that this extra info will currently only appear in a few log lines, but more will be added in future as the structured logging change is propagated throughout LND.

  • Add max files and max file size options to the logging config namespace under new --logging.file.max-files and --logging.files.max-file-size options. The old options (--maxlogfiles and --maxlogfilesize) will still work but deprecation notices have been added and they will be removed in a future release. The defaults values for these options have also been increased from max 3 log files to 10 and from max 10 MB to 20 MB.

  • Deprecate dust-threshold config option and introduce a new option channel-max-fee-exposure which is unambiguous in its description. The underlying functionality between those two options remain the same.

Breaking Changes

Performance Improvements

  • Log rotation can now use ZSTD

Technical and Architectural Updates

BOLT Spec Updates

  • Add new lnwire messages for the Gossip 1.75 protocol.

Testing

  • LND uses the feerate estimator provided by bitcoind or btcd in regtest and simnet modes instead of static fee estimator if feeurl is not provided.

  • The integration tests CI have been optimized to run faster and all flakes are now documented and fixed.

Database

Code Health

Tooling and Documentation

  • Fixed a few misspellings of "broadcast" in the code base, specifically the lncli peers updatenodeannouncement command documentation.

Contributors (Alphabetical Order)

  • Abdullahi Yunus
  • Alex Akselrod
  • Andras Banki-Horvath
  • Animesh Bilthare
  • Boris Nagaev
  • Carla Kirk-Cohen
  • CharlieZKSmith
  • Elle Mouton
  • George Tsagkarelis
  • hieblmi
  • Jesse de Wit
  • Keagan McClelland
  • Nishant Bansal
  • Oliver Gugger
  • Pins
  • Viktor Tigerström
  • Yong Yu
  • Ziggie