Files
palladum-lightning/doc/developers-guide/deprecated-features.md

4.8 KiB

title, slug, excerpt, hidden
title slug excerpt hidden
Deprecated Features deprecated-features Deprecated features and timeline for old feature removals. false
Name Type First Deprecated Last Supported Description
listpeers.features.option_anchors_zero_fee_htlc_tx Field v24.08 v25.09 Renamed to option_anchors in the spec: check for that in features instead
decode.blinding Field v24.11 v25.05 Renamed to first_path_key in BOLT 4 (available in decode from v24.11)
onion_message_recv.blinding Hook Field v24.11 v25.05 Renamed to first_path_key in BOLT 4 (available in hook from v24.11)
decodepay Command v24.11 v25.12 Use decode which is more powerful (since v23.05)
close.tx Field v24.11 v25.12 Use txs array instead
close.txid Field v24.11 v25.12 Use txids array instead
experimental-offers Config v24.11 v25.05 Now the default
xpay.ignore_bolt12_mpp Field v25.05 v25.12 Try MPP even if the BOLT12 invoice doesn't explicitly allow it (CLN didn't until 25.02)
listpeerchannels.max_total_htlc_in_msat Field v25.02 v26.03 Use our_max_total_htlc_out_msat
wait.details Field v25.05 v26.06 Use subsystem-specific object instead
channel_state_changed.old_state.unknown Notification Field v25.05 v26.03 Value "unknown" is deprecated: field will be omitted instead

Inevitably there are features which need to change: either to be generalized, or removed when they can no longer be supported.

Types of deprecation:

  • Command: an entire command is removed. Usually replaced by a more generic or better-named one.
  • Config: a commandline/configuration option is removed. Usually made the default, or replaced by generalized or better-named.
  • Field(s): a JSON field output. We cannot detect if you are using these, of course.
  • Parameter(s): a JSON RPC input.
  • Getmanifest Reply: a field in the JSON reply which plugins give to getmanifest.
  • Hook Return: a field/value in the JSON reply which plugins give to a plugin hook.
  • Notification/Hook Field: a field in the JSON notification/hook to a plugin.

For each deprecation:

  1. The deprecation is listed here, and in the CHANGELOG.md file.
  2. We try to give at least 2 versions before removal.
  3. Then one version where we issue a warning message if we detect a deprecated feature being used (not possible for deprecatred Field types).
  4. At least one version where the deprecated feature can be explicit re-enabled using i-promise-to-fix-broken-api-user=FEATURENAME.

This is designed to minimize the chance that anyone will be surprised by a change!

You can also test earlier. Deprecated features can be disabled in three ways:

  1. developer mode changes the default deprecations to disabled globally.
  2. allow-deprecated-apis= lets you disable (false) or re-enable (true) globally.
  3. The deprecations JSON API can disable/re-enable deprecations for a specific client (added in v24.02).