Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 16 additions & 19 deletions doc/developers-guide/deprecated-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,22 @@ excerpt: "Deprecated features and timeline for old feature removals."
hidden: 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 |
| coin_movement.tags | Notification Field | v25.09 | v26.09 | Use `primary_tag` (first tag) and `extra_tags` instead |
| coin_movement.utxo_txid | Notification Field | v25.09 | v26.09 | Use `utxo` instead of `utxo_txid` & `vout` |
| coin_movement.txid | Notification Field | v25.09 | v26.09 | Use `spending_txid` instead |
| channel_state_changed.null_scid | Notification Field | v25.09 | v26.09 | In channel_state_changed notification, `short_channel_id` will be missing instead of `null` |
| notification.payload | Notification Field | v25.09 | v26.09 | Notifications from plugins used to have fields in `payload` sub-object, now they are not (just like normal notifications) |
| pay_notifications.raw_fields | Field | v25.09 | v26.09 | `channel_hint_update`, `pay_failure` and `pay_success` notifications now wrap members in an object of the same name |
| 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 |
| 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 |
| 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 |
| coin_movement.tags | Notification Field | v25.09 | v26.09 | Use `primary_tag` (first tag) and `extra_tags` instead |
| coin_movement.utxo_txid | Notification Field | v25.09 | v26.09 | Use `utxo` instead of `utxo_txid` & `vout` |
| coin_movement.txid | Notification Field | v25.09 | v26.09 | Use `spending_txid` instead |
| channel_state_changed.null_scid | Notification Field | v25.09 | v26.09 | In channel_state_changed notification, `short_channel_id` will be missing instead of `null` |
| notification.payload | Notification Field | v25.09 | v26.09 | Notifications from plugins used to have fields in `payload` sub-object, now they are not (just like normal notifications) |
| pay_notifications.raw_fields | Field | v25.09 | v26.09 | `channel_hint_update`, `pay_failure` and `pay_success` notifications now wrap members in an object of the same name |

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

Expand Down
6 changes: 0 additions & 6 deletions doc/lightningd-config.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -804,12 +804,6 @@ The operations will be bundled into a single transaction. The channel will remai
active while awaiting splice confirmation, however you can only spend the smaller
of the prior channel balance and the new one.

* **experimental-quiesce**

Specifying this option advertizes `option_quiesce`. Not very useful
by itself, except for testing.



BUGS
----
Expand Down
6 changes: 0 additions & 6 deletions lightningd/onion_message.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,6 @@ static void json_add_blindedpath(struct plugin *plugin,
json_add_short_channel_id(stream, "first_scid", path->first_node_id.scidd.scid);
json_add_u32(stream, "first_scid_dir", path->first_node_id.scidd.dir);
}
if (lightningd_deprecated_out_ok(plugin->plugins->ld,
plugin->plugins->ld->deprecated_ok,
"onion_message_recv", "blinding",
"v24.11", "v25.05")) {
json_add_pubkey(stream, "blinding", &path->first_path_key);
}
json_add_pubkey(stream, "first_path_key", &path->first_path_key);
json_array_start(stream, "hops");
for (size_t i = 0; i < tal_count(path->path); i++) {
Expand Down
24 changes: 0 additions & 24 deletions lightningd/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -1253,23 +1253,6 @@ static char *opt_set_peer_storage(struct lightningd *ld)
return NULL;
}

static char *opt_set_quiesce(struct lightningd *ld)
{
if (!opt_deprecated_ok(ld, "experimental-quiesce", NULL,
"v24.11", "v25.05"))
return "--experimental-quiesce is now enabled by default";
return NULL;
}

static char *opt_set_offers(struct lightningd *ld)
{
if (!opt_deprecated_ok(ld, "experimental-offers", NULL,
"v24.11", "v25.05"))
return "--experimental-offers has been deprecated (now the default)";

return NULL;
}

static char *opt_set_db_upgrade(const char *arg, struct lightningd *ld)
{
ld->db_upgrade_ok = tal(ld, bool);
Expand Down Expand Up @@ -1440,19 +1423,12 @@ static void register_opts(struct lightningd *ld)
" channels using splicing");

/* This affects our features, so set early. */
opt_register_early_noarg("--experimental-offers",
opt_set_offers, ld,
opt_hidden);
opt_register_early_noarg("--experimental-shutdown-wrong-funding",
opt_set_shutdown_wrong_funding, ld,
"EXPERIMENTAL: allow shutdown with alternate txids");
opt_register_early_noarg("--experimental-peer-storage",
opt_set_peer_storage, ld,
opt_hidden);
opt_register_early_noarg("--experimental-quiesce",
opt_set_quiesce, ld,
"experimental: Advertise ability to quiesce"
" channels.");

clnopt_noarg("--help|-h", OPT_EXITS,
opt_lightningd_usage, ld, "Print this message.");
Expand Down
2 changes: 0 additions & 2 deletions plugins/offers.c
Original file line number Diff line number Diff line change
Expand Up @@ -612,8 +612,6 @@ static bool json_add_blinded_paths(struct command *cmd,
paths[i]->first_node_id.scidd.dir);
}

if (command_deprecated_out_ok(cmd, "blinding", "v24.11", "v25.05"))
json_add_pubkey(js, "blinding", &paths[i]->first_path_key);
json_add_pubkey(js, "first_path_key", &paths[i]->first_path_key);

/* Don't crash if we're short a payinfo! */
Expand Down
Loading