From 35a514553dca9797c68bfacbd5fe4b22cb0e1f96 Mon Sep 17 00:00:00 2001 From: Peter Neuroth Date: Tue, 28 Nov 2023 12:50:32 +0100 Subject: [PATCH 1/6] CHANGELOG.md: Update for 23.11 final Signed-off-by: Peter Neuroth --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be0bef790d11..dc1030ae387d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -## [v23.11rc3] - 2023-11-02: "Bitcoin Orangepaper" +## [23.11] - 2023-11-28: "Bitcoin Orangepaper" This release named by Shahana Farooqui @@ -81,6 +81,7 @@ Note: You should always set `allow-deprecated-apis=false` to test for changes. - Rune: use runes table `id` instead `runes_uniqueid` from `vars` because it returns incorrect unique id if rune/s migrated from datastore. ([#6715]) - Added docs, testing, and some fixes related to splicing out, insufficent balance handling, and restarting during a splice. ([#6677]) - The WIRE_HSMD_SIGN_SPLICE_TX HSM capability is now correctly checked. ([#6867]) + - Hsmtool: Fix segmentation fault when calling `getcodexsecret` without id. ([#6895]) ### EXPERIMENTAL @@ -125,6 +126,7 @@ Note: You should always set `allow-deprecated-apis=false` to test for changes. [#6876]: https://github.com/ElementsProject/lightning/pull/6876 [#6840]: https://github.com/ElementsProject/lightning/pull/6840 [#6884]: https://github.com/ElementsProject/lightning/pull/6884 +[#6895]: https://github.com/ElementsProject/lightning/pull/6895 ## [23.08.1] - 2023-09-12: "Satoshi's Successor II" @@ -2757,6 +2759,7 @@ There predate the BOLT specifications, and are only of vague historic interest: 6. [0.5.1] - 2016-10-21 7. [0.5.2] - 2016-11-21: "Bitcoin Savings & Trust Daily Interest II" +[23.11]: https://github.com/ElementsProject/lightning/releases/tag/v23.11 [23.05]: https://github.com/ElementsProject/lightning/releases/tag/v23.05 [23.02.1]: https://github.com/ElementsProject/lightning/releases/tag/v23.02.1 [23.02]: https://github.com/ElementsProject/lightning/releases/tag/v23.02 From b1bf1e9a4bee82daebc8f181706a92fb0235279b Mon Sep 17 00:00:00 2001 From: arowser Date: Wed, 22 Nov 2023 19:29:59 +0800 Subject: [PATCH 2/6] build: 32-bit status_debug fix --- channeld/channeld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/channeld/channeld.c b/channeld/channeld.c index a4ea9219c744..1ddc246d070c 100644 --- a/channeld/channeld.c +++ b/channeld/channeld.c @@ -5147,7 +5147,7 @@ static void peer_reconnect(struct peer *peer, } status_debug("Got reestablish commit=%"PRIu64" revoke=%"PRIu64 - " inflights: %lu, active splices: %"PRIu32, + " inflights: %zu, active splices: %"PRIu32, next_commitment_number, next_revocation_number, tal_count(peer->splice_state->inflights), From 3f35f83faa7778a1c3e0fe5439561cad6a02ea20 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Tue, 12 Dec 2023 14:13:31 +0100 Subject: [PATCH 3/6] subd: Do not send feerate updates to non-channeld subds Turns out we were sending feerate updates to daemons that do not understand it. Don't do that! Closes #6932 Changelog-Fixed: channeld: We could crash `closingd` by sending it a `channeld` message --- lightningd/channel_control.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lightningd/channel_control.c b/lightningd/channel_control.c index 7018e63457aa..ae57e891a77b 100644 --- a/lightningd/channel_control.c +++ b/lightningd/channel_control.c @@ -93,6 +93,11 @@ static void try_update_feerates(struct lightningd *ld, struct channel *channel) if (!channel->owner) return; + /* The feerate message is only understood by `channeld` so + * don't attempt to send it to other subds*/ + if (!streq(channel->owner->name, "channeld")) + return; + channel_update_feerates(ld, channel); } From 806781417183b68966e923fdebdf556b216776c0 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Fri, 15 Dec 2023 15:45:34 +0100 Subject: [PATCH 4/6] meta: Update CHANGELOG.md for v23.11.1 hotfix --- CHANGELOG.md | 17 +++++++++++++++-- contrib/pyln-client/pyln/client/__init__.py | 2 +- contrib/pyln-client/pyproject.toml | 2 +- contrib/pyln-proto/pyln/proto/__init__.py | 2 +- contrib/pyln-proto/pyproject.toml | 2 +- contrib/pyln-testing/pyln/testing/__init__.py | 2 +- contrib/pyln-testing/pyproject.toml | 2 +- 7 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc1030ae387d..06b90e18d708 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [23.11.1] - 2023-12-15: "Bitcoin Orangepaper" + +This is a hotfix release to address a couple of issues in the release. + +### Fixed + + - channeld: We could crash `closingd` by sending it a `channeld` message ([#6937]) + +[#6937]: https://github.com/ElementsProject/lightning/pull/6937 + +[v23.11.1]: https://github.com/ElementsProject/lightning/releases/tag/v23.11.1 + ## [23.11] - 2023-11-28: "Bitcoin Orangepaper" This release named by Shahana Farooqui @@ -149,7 +162,7 @@ Bugfix release for bad issues found since 23.08 which can't wait for 23.11, and - Protocol: Fixed a wrong number type being used in routes ([#6642]) - JSON-RPC: `showrunes` on a specific rune would always say `stored`: false. ([#6640]) - - MacOS: `clnrest` now works ([#6605]) + - MacOS: `clnrest` now works ([#6605]) - Build: test for `python3` or `python`, rather than assuming `python3` ([#6630]) @@ -417,7 +430,7 @@ Note: You should always set `allow-deprecated-apis=false` to test for changes. - JSON-RPC: `close`, `fundchannel`, `fundpsbt`, `multifundchannel`, `multiwithdraw`, `txprepare`, `upgradewallet`, `withdraw` `feerate` (`feerange` for `close`) expressed as, "delayed_to_us", "htlc_resolution", "max_acceptable" or "min_acceptable". Use explicit block counts or *slow*/*normal*/*urgent*/*minimum*. ([#6120]) - Plugins: `estimatefees` returning feerates by name (e.g. "opening"); use `fee_floor` and `feerates`. ([#6120]) - Protocol: Not setting `option_scid_alias` in `option_channel` `channel_type` for unannounced channels. ([#6136]) - + ### Removed diff --git a/contrib/pyln-client/pyln/client/__init__.py b/contrib/pyln-client/pyln/client/__init__.py index 36ca27e272e5..ae7d5ac9eda3 100644 --- a/contrib/pyln-client/pyln/client/__init__.py +++ b/contrib/pyln-client/pyln/client/__init__.py @@ -3,7 +3,7 @@ from .gossmap import Gossmap, GossmapNode, GossmapChannel, GossmapHalfchannel, GossmapNodeId, LnFeatureBits from .gossmapstats import GossmapStats -__version__ = "23.11" +__version__ = "23.11.1" __all__ = [ "LightningRpc", diff --git a/contrib/pyln-client/pyproject.toml b/contrib/pyln-client/pyproject.toml index e1ef3d3ad4e7..a4549bbf67ab 100644 --- a/contrib/pyln-client/pyproject.toml +++ b/contrib/pyln-client/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyln-client" -version = "23.11" +version = "23.11.1" description = "Client library and plugin library for Core Lightning" authors = ["Christian Decker "] license = "BSD-MIT" diff --git a/contrib/pyln-proto/pyln/proto/__init__.py b/contrib/pyln-proto/pyln/proto/__init__.py index 332f49564831..82b00599ae61 100644 --- a/contrib/pyln-proto/pyln/proto/__init__.py +++ b/contrib/pyln-proto/pyln/proto/__init__.py @@ -4,7 +4,7 @@ from .onion import OnionPayload, TlvPayload, LegacyOnionPayload from .wire import LightningConnection, LightningServerSocket -__version__ = "23.11" +__version__ = "23.11.1" __all__ = [ "Invoice", diff --git a/contrib/pyln-proto/pyproject.toml b/contrib/pyln-proto/pyproject.toml index 3f4bb74b1f21..f05e64c99fe3 100644 --- a/contrib/pyln-proto/pyproject.toml +++ b/contrib/pyln-proto/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyln-proto" -version = "23.11" +version = "23.11.1" description = "This package implements some of the Lightning Network protocol in pure python. It is intended for protocol testing and some minor tooling only. It is not deemed secure enough to handle any amount of real funds (you have been warned!)." authors = ["Christian Decker "] license = "BSD-MIT" diff --git a/contrib/pyln-testing/pyln/testing/__init__.py b/contrib/pyln-testing/pyln/testing/__init__.py index 1b6207511657..ba279d5a7e27 100644 --- a/contrib/pyln-testing/pyln/testing/__init__.py +++ b/contrib/pyln-testing/pyln/testing/__init__.py @@ -1,4 +1,4 @@ -__version__ = "23.11" +__version__ = "23.11.1" __all__ = [ "__version__", diff --git a/contrib/pyln-testing/pyproject.toml b/contrib/pyln-testing/pyproject.toml index b30ef42f82fc..c81d534581ec 100644 --- a/contrib/pyln-testing/pyproject.toml +++ b/contrib/pyln-testing/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyln-testing" -version = "23.11" +version = "23.11.1" description = "Test your Core Lightning integration, plugins or whatever you want" authors = ["Christian Decker "] license = "BSD-MIT" From 294f8dbbe5797b321b340df0b3048c4dbfc845c2 Mon Sep 17 00:00:00 2001 From: Alex Myers Date: Tue, 19 Dec 2023 14:40:49 -0600 Subject: [PATCH 5/6] invoice: force inclusion of min_final_cltv_expiry for compatibility As reported by @wtogami, LND nodes are using a default min_final_cltv_expiry_delta of 9, which makes them unable to pay invoices using the modern spec default of 18. Forcing inclusion of the c field allows interoperability until broader support of the 18 block default. Fixes: #6956 Changelog-Fixed: Default bolt11 invoices are payable by LND nodes. --- common/bolt11.c | 6 ++++-- common/test/run-bolt11.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/common/bolt11.c b/common/bolt11.c index 1a397d339311..efcd388468d3 100644 --- a/common/bolt11.c +++ b/common/bolt11.c @@ -1327,8 +1327,10 @@ char *bolt11_encode_(const tal_t *ctx, * - if the `c` field (`min_final_cltv_expiry_delta`) is not provided: * - MUST use an expiry delta of at least 18 when making the payment */ - if (b11->min_final_cltv_expiry != 18) - encode_c(&data, b11->min_final_cltv_expiry); + /* FIXME: Only encode if non-default once all implementations update + * default min_final_cltv_expiry_delta to 18. Forcing inclusion in the + * interrim to ensure compatibility with existing nodes. */ + encode_c(&data, b11->min_final_cltv_expiry); for (size_t i = 0; i < tal_count(b11->fallbacks); i++) encode_f(&data, b11->fallbacks[i]); diff --git a/common/test/run-bolt11.c b/common/test/run-bolt11.c index 5f909f3b5a12..5c6d9256f824 100644 --- a/common/test/run-bolt11.c +++ b/common/test/run-bolt11.c @@ -494,11 +494,11 @@ int main(int argc, char *argv[]) badstr = bolt11_encode(tmpctx, b11, false, test_sign, NULL); assert(streq(badstr, "lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q4psqqqqqqqqqqqqqqqqsgqtqyx5vggfcsll4wu246hz02kp85x4katwsk9639we5n5yngc3yhqkm35jnjw4len8vrnqnf5ejh0mzj9n3vz2px97evektfm2l6wqccp3y7372")); dev_bolt11_old_order = false; - dev_bolt11_omit_c_value = false; /* Otherwise it does it normally */ badstr = bolt11_encode(tmpctx, b11, false, test_sign, NULL); assert(streq(badstr, "lnbc25m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdees9q4psqqqqqqqqqqqqqqqqsgq8w9mkdh2n9pmrsg5natjffcgjpp5caamstsq5pm03v2c7ca5ej3plyrfe3vyzl76v6wex4r8rd6rdvys4a35983n6wrzegcwfl2gl4qqxh98vj")); + dev_bolt11_omit_c_value = false; /* Empty set of allowed bits, ensures this fails! */ fset = tal(tmpctx, struct feature_set); From 76cd32387a400a2aee607edaf1e0a06e92e1402f Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Fri, 22 Dec 2023 12:09:09 +0100 Subject: [PATCH 6/6] meta: update CHANGELOG.md for v23.11.2 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06b90e18d708..ab0240c984b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [23.11.2] - 2023-12-22: "Bitcoin Orangepaper" + +This is a hotfix release to address BOLT 11 invoice compatibility. + +### Fixed + + - invoice: Force cltv field inclusion in BOLT 11 invoice, for old implementations still defaulting to 9 blocks ([#6957]) + +[#6957]: https://github.com/ElementsProject/lightning/pull/6957 + + ## [23.11.1] - 2023-12-15: "Bitcoin Orangepaper" This is a hotfix release to address a couple of issues in the release.