Skip to content

Commit 0fb87e9

Browse files
authored
Merge branch 'master' into fix-feerate-tolerance
2 parents 4cdfc21 + 29465f5 commit 0fb87e9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+1922
-1481
lines changed

.github/scripts/setup.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ sudo apt-get -qq install --no-install-recommends --allow-unauthenticated -yy \
3333
libsodium-dev \
3434
libsqlite3-dev \
3535
libssl-dev \
36+
pkg-config \
3637
libtool \
3738
libxml2-utils \
3839
locales \
3940
lowdown \
4041
net-tools \
4142
postgresql \
42-
python-pkg-resources \
4343
python3 \
4444
python3-dev \
4545
python3-pip \
4646
python3-setuptools \
47-
qemu \
47+
qemu-system \
4848
qemu-system-arm \
4949
qemu-user-static \
5050
shellcheck \

.github/workflows/ci.yaml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ env:
1616
RUST_PROFILE: release
1717
SLOW_MACHINE: 1
1818
CI_SERVER_URL: "http://35.239.136.52:3170"
19-
PYTEST_OPTS_BASE: "--reruns=10 -vvv --junit-xml=report.xml --timeout=1800 --durations=10"
19+
PYTEST_OPTS_BASE: "-vvv --junit-xml=report.xml --timeout=1800 --durations=10"
2020

2121
jobs:
2222
prebuild:
2323
name: Pre-build checks
24-
runs-on: ubuntu-22.04
25-
timeout-minutes: 30
24+
runs-on: ubuntu-24.04
25+
timeout-minutes: 120
2626
if: |
2727
github.event.action != 'edited' ||
2828
contains(github.event.pull_request.body, 'Changelog')
@@ -107,7 +107,7 @@ jobs:
107107

108108
compile:
109109
name: Compile CLN ${{ matrix.cfg }}
110-
runs-on: ubuntu-22.04
110+
runs-on: ubuntu-24.04
111111
timeout-minutes: 30
112112
needs:
113113
- prebuild
@@ -174,7 +174,7 @@ jobs:
174174
# The unit test checks are not in the critical path (not dependent
175175
# on the integration tests), so run them with `valgrind`
176176
name: Run unit tests
177-
runs-on: ubuntu-22.04
177+
runs-on: ubuntu-24.04
178178
timeout-minutes: 60
179179
env:
180180
BOLTDIR: bolts
@@ -219,7 +219,7 @@ jobs:
219219
220220
check-fuzz:
221221
name: Run fuzz regression tests
222-
runs-on: ubuntu-22.04
222+
runs-on: ubuntu-24.04
223223
needs:
224224
- prebuild
225225
steps:
@@ -245,7 +245,7 @@ jobs:
245245
246246
check-downgrade:
247247
name: Check we can downgrade the node
248-
runs-on: ubuntu-22.04
248+
runs-on: ubuntu-24.04
249249
needs:
250250
- compile
251251
strategy:
@@ -298,8 +298,8 @@ jobs:
298298
run: |
299299
mkdir /tmp/old-cln
300300
cd /tmp/old-cln
301-
wget https://github.com/ElementsProject/lightning/releases/download/v25.09/clightning-v25.09-Ubuntu-22.04-amd64.tar.xz
302-
tar -xaf clightning-v25.09-Ubuntu-22.04-amd64.tar.xz
301+
wget https://github.com/ElementsProject/lightning/releases/download/v25.09/clightning-v25.09-ubuntu-24.04-amd64.tar.xz
302+
tar -xaf clightning-v25.09-ubuntu-24.04-amd64.tar.xz
303303
304304
- name: Switch network
305305
if: ${{ matrix.TEST_NETWORK == 'liquid-regtest' }}
@@ -333,11 +333,11 @@ jobs:
333333

334334
integration:
335335
name: Test CLN ${{ matrix.name }}
336-
runs-on: ubuntu-22.04
336+
runs-on: ubuntu-24.04
337337
timeout-minutes: 120
338338
env:
339339
RUST_PROFILE: release # Has to match the one in the compile step
340-
PYTEST_OPTS: --reruns=10 -vvv --junit-xml=report.xml --timeout=1800 --durations=10
340+
PYTEST_OPTS: -vvv --junit-xml=report.xml --timeout=1800 --durations=10
341341
needs:
342342
- compile
343343
strategy:
@@ -448,12 +448,12 @@ jobs:
448448

449449
integration-valgrind:
450450
name: Valgrind Test CLN ${{ matrix.name }}
451-
runs-on: ubuntu-22.04
451+
runs-on: ubuntu-24.04
452452
timeout-minutes: 120
453453
env:
454454
RUST_PROFILE: release # Has to match the one in the compile step
455455
CFG: compile-gcc
456-
PYTEST_OPTS: --reruns=10 -vvv --junit-xml=report.xml --timeout=1800 --durations=10 --test-group-random-seed=42
456+
PYTEST_OPTS: -vvv --junit-xml=report.xml --timeout=1800 --durations=10 --test-group-random-seed=42
457457
needs:
458458
- compile
459459
strategy:
@@ -535,13 +535,13 @@ jobs:
535535

536536
integration-sanitizers:
537537
name: Sanitizers Test CLN
538-
runs-on: ubuntu-22.04
538+
runs-on: ubuntu-24.04
539539
timeout-minutes: 120
540540
env:
541541
RUST_PROFILE: release
542542
SLOW_MACHINE: 1
543543
TEST_DEBUG: 1
544-
PYTEST_OPTS: --reruns=10 -vvv --junit-xml=report.xml --timeout=1800 --durations=10 --test-group-random-seed=42
544+
PYTEST_OPTS: -vvv --junit-xml=report.xml --timeout=1800 --durations=10 --test-group-random-seed=42
545545
needs:
546546
- compile
547547
strategy:
@@ -553,7 +553,7 @@ jobs:
553553
PYTEST_OPTS: --test-group=1 --test-group-count=12
554554
- NAME: ASan/UBSan (02/12)
555555
GROUP: 2
556-
PYTEST_OPTS: --test-group=2 --test-group-count=12 -n 1
556+
PYTEST_OPTS: --test-group=2 --test-group-count=12
557557
- NAME: ASan/UBSan (03/12)
558558
GROUP: 3
559559
PYTEST_OPTS: --test-group=3 --test-group-count=12
@@ -625,14 +625,14 @@ jobs:
625625
update-docs-examples:
626626
name: Update examples in doc schemas (disabled temporarily!)
627627
if: false
628-
runs-on: ubuntu-22.04
628+
runs-on: ubuntu-24.04
629629
timeout-minutes: 30
630630
strategy:
631631
fail-fast: false
632632
env:
633633
VALGRIND: 0
634634
GENERATE_EXAMPLES: 1
635-
PYTEST_OPTS: --reruns=10 -vvv --junit-xml=report.xml --timeout=1800 --durations=10
635+
PYTEST_OPTS: -vvv --junit-xml=report.xml --timeout=1800 --durations=10
636636
TEST_NETWORK: regtest
637637
needs:
638638
- compile
@@ -674,11 +674,11 @@ jobs:
674674

675675
min-btc-support:
676676
name: Test minimum supported BTC v${{ matrix.MIN_BTC_VERSION }} with ${{ matrix.NAME }}
677-
runs-on: ubuntu-22.04
677+
runs-on: ubuntu-24.04
678678
timeout-minutes: 120
679679
env:
680680
RUST_PROFILE: release # Has to match the one in the compile step
681-
PYTEST_OPTS: --reruns=10 -vvv --junit-xml=report.xml --timeout=1800 --durations=10
681+
PYTEST_OPTS: -vvv --junit-xml=report.xml --timeout=1800 --durations=10
682682
needs:
683683
- compile
684684
strategy:
@@ -759,7 +759,7 @@ jobs:
759759
# signals successful completion. Used for the PR status to pass
760760
# before merging. Needs to run even if they failed!
761761
name: CI completion
762-
runs-on: ubuntu-22.04
762+
runs-on: ubuntu-24.04
763763
needs:
764764
- integration
765765
- check-units

.msggen.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,6 +1625,7 @@
16251625
"DisableofferResponse": {
16261626
"DisableOffer.active": 2,
16271627
"DisableOffer.bolt12": 4,
1628+
"DisableOffer.description": 7,
16281629
"DisableOffer.label": 6,
16291630
"DisableOffer.offer_id": 1,
16301631
"DisableOffer.single_use": 3,
@@ -1643,6 +1644,7 @@
16431644
"EnableofferResponse": {
16441645
"EnableOffer.active": 2,
16451646
"EnableOffer.bolt12": 4,
1647+
"EnableOffer.description": 7,
16461648
"EnableOffer.label": 6,
16471649
"EnableOffer.offer_id": 1,
16481650
"EnableOffer.single_use": 3,
@@ -2859,6 +2861,7 @@
28592861
"ListoffersOffers": {
28602862
"ListOffers.offers[].active": 2,
28612863
"ListOffers.offers[].bolt12": 4,
2864+
"ListOffers.offers[].description": 7,
28622865
"ListOffers.offers[].label": 6,
28632866
"ListOffers.offers[].offer_id": 1,
28642867
"ListOffers.offers[].single_use": 3,
@@ -7061,6 +7064,10 @@
70617064
"added": "pre-v0.10.1",
70627065
"deprecated": null
70637066
},
7067+
"DisableOffer.description": {
7068+
"added": "v26.04",
7069+
"deprecated": null
7070+
},
70647071
"DisableOffer.label": {
70657072
"added": "pre-v0.10.1",
70667073
"deprecated": null
@@ -7109,6 +7116,10 @@
71097116
"added": "v24.11",
71107117
"deprecated": null
71117118
},
7119+
"EnableOffer.description": {
7120+
"added": "v26.04",
7121+
"deprecated": null
7122+
},
71127123
"EnableOffer.label": {
71137124
"added": "v24.11",
71147125
"deprecated": null
@@ -10569,6 +10580,10 @@
1056910580
"added": "pre-v0.10.1",
1057010581
"deprecated": null
1057110582
},
10583+
"ListOffers.offers[].description": {
10584+
"added": "v26.04",
10585+
"deprecated": null
10586+
},
1057210587
"ListOffers.offers[].label": {
1057310588
"added": "pre-v0.10.1",
1057410589
"deprecated": null

SECURITY.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ developers, and to validate signatures on releases:
3030
| Shahana Farooqui | `[email protected]` | 0CCA 8183 C13A 2389 A9C5 FD29 BFB0 1536 0049 CB56 |
3131
| Madeline Paech | `[email protected]` | 7169 D262 72B5 0A3F 531A A1C2 A57A FC23 1B58 0804 |
3232
| Blockstream CLN Release | `[email protected]` | 616C 52F9 9D06 12B2 A151 B107 4129 A994 AA7E 9852 |
33+
| Sangbida Chaudhuri | `[email protected]` | 1A37 1C2C 3064 5FAA 91AA 6B7D B643 E612 8422 1961 |
3334

34-
You can import a key by running the following command with that individual’s fingerprint:
35-
`gpg --keyserver hkps://keys.openpgp.org --recv-keys "<fingerprint>"`.
35+
You can import a key by running the following command with that individual’s fingerprint:
36+
`gpg --keyserver hkps://keys.openpgp.org --recv-keys "<fingerprint>"`.
3637
Ensure that you put quotes around fingerprints containing spaces.

cln-grpc/proto/node.proto

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cln-grpc/src/convert.rs

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cln-rpc/src/model.rs

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/hsm_secret.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#define HSM_SECRET_PLAIN_SIZE 32
3030

3131
/* Helper function to validate a mnemonic string */
32-
static bool validate_mnemonic(const char *mnemonic, enum hsm_secret_error *err)
32+
enum hsm_secret_error validate_mnemonic(const char *mnemonic)
3333
{
3434
struct words *words;
3535
bool ok;
@@ -44,12 +44,10 @@ static bool validate_mnemonic(const char *mnemonic, enum hsm_secret_error *err)
4444
/* Wordlists can persist, so provide a common context! */
4545
tal_wally_end(notleak_with_children(tal(NULL, char)));
4646

47-
if (!ok) {
48-
*err = HSM_SECRET_ERR_INVALID_MNEMONIC;
49-
return false;
50-
}
47+
if (!ok)
48+
return HSM_SECRET_ERR_INVALID_MNEMONIC;
5149

52-
return true;
50+
return HSM_SECRET_OK;
5351
}
5452

5553
struct secret *get_encryption_key(const tal_t *ctx, const char *passphrase)
@@ -314,7 +312,8 @@ static struct hsm_secret *extract_mnemonic_secret(const tal_t *ctx,
314312
}
315313

316314
/* Validate mnemonic */
317-
if (!validate_mnemonic(hsms->mnemonic, err)) {
315+
*err = validate_mnemonic(hsms->mnemonic);
316+
if (*err != HSM_SECRET_OK) {
318317
return tal_free(hsms);
319318
}
320319

@@ -464,8 +463,9 @@ const char *read_stdin_mnemonic(const tal_t *ctx, enum hsm_secret_error *err)
464463
}
465464

466465
/* Validate mnemonic */
467-
if (!validate_mnemonic(line, err)) {
468-
return NULL;
466+
*err = validate_mnemonic(line);
467+
if (*err != HSM_SECRET_OK) {
468+
return tal_free(line);
469469
}
470470

471471
*err = HSM_SECRET_OK;

common/hsm_secret.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,14 @@ const char *hsm_secret_error_str(enum hsm_secret_error err);
129129
*/
130130
enum hsm_secret_type detect_hsm_secret_type(const u8 *hsm_secret, size_t len);
131131

132+
/**
133+
* Check a BIP39 mnemonic is valid.
134+
* @mnemonic - 12 words, single-space separated, nul terminate.
135+
*
136+
* Returns HSM_SECRET_ERR_INVALID_MNEMONIC or HSM_SECRET_OK.
137+
*/
138+
enum hsm_secret_error validate_mnemonic(const char *mnemonic);
139+
132140
/**
133141
* Reads a BIP39 mnemonic from stdin with validation.
134142
* Returns a newly allocated string on success, NULL on error.

0 commit comments

Comments
 (0)