summaryrefslogtreecommitdiff
path: root/fd/16c83cc15dc3f4d0acb8cd0ebfdb9ac18f7c1e
blob: 8f94f37a84948659ece7dbab4bb08908693f9758 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
Return-Path: <fanquake@gmail.com>
Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 9A343C002D
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 13 Dec 2022 12:07:05 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp4.osuosl.org (Postfix) with ESMTP id 5EFAF415F8
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 13 Dec 2022 12:07:05 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 5EFAF415F8
Authentication-Results: smtp4.osuosl.org;
 dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
 header.a=rsa-sha256 header.s=20210112 header.b=H5AxHbKs
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -0.848
X-Spam-Level: 
X-Spam-Status: No, score=-0.848 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001, URIBL_ABUSE_SURBL=1.25]
 autolearn=no autolearn_force=no
Received: from smtp4.osuosl.org ([127.0.0.1])
 by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id k00zI8ZRAxlz
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 13 Dec 2022 12:07:01 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 33BFE415F0
Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com
 [IPv6:2a00:1450:4864:20::641])
 by smtp4.osuosl.org (Postfix) with ESMTPS id 33BFE415F0
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 13 Dec 2022 12:07:01 +0000 (UTC)
Received: by mail-ej1-x641.google.com with SMTP id kw15so35927625ejc.10
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 13 Dec 2022 04:07:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=UV45LPrAXy6scRzB+hfqgNkRcSuSV/m+FMS7ovDiykg=;
 b=H5AxHbKs/7pQT1/6G4mYS5uNWdvnn+vqSn9NY1FMm4VdYJQxhlMmkITH0O6BL+2knC
 Qxz/ry4/ulNqyBQceCxixfLwaONiTgxj4V2istQ7lXy/f9fXRPj+wjpjeoeMmhgzkj4J
 DwJVCKHIGmHyrWjCQpz2o2Wi78lIW3LmMkSorGQDRq/2UQVRrr5UX8nSS7zsmz7aHJZY
 +VKZ0RFa4LXOqw7IIuSmA6jB2kex4n0mCJuOZh21jq9pCQgycgkuVygr6pKMRz8qe7kt
 5K9W4W19uYeh1ov2jRSFh/rwvB4Trw/hkKLy/LAtYAipOCBU3NBgsfGwovOHqCl/ufAt
 D9bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=UV45LPrAXy6scRzB+hfqgNkRcSuSV/m+FMS7ovDiykg=;
 b=RRfAP5YOrIfqx2BDF9kv6/UGBUSL/1+EACTNQqdNp8r+TYUVRVqrvlwk3fn19KHkry
 h0YE3/kggeEzJWE1dhGlNMn5cPxNsyMy5+XETtOYqK17uFZ6qgD4azI2lIc4o0RX2Jza
 23Hd9k7CuqgTg+y2dLX2/ZIxLmdwIpYN98BgAMUPisIUdF+CJGOPuQ/0ohf/l/nghmVq
 4tAHYIP8U0TpZHJlJo3R9MRayIljO9aoAu1MZuxt8gQzVWZQTFQfAVDZE+M73oQbju+/
 tIpZYbpVi0Y3ssZA0yp/Anjd7iZVw1St3ZV20EI3V/Od/Q9LBEpTzLPBzLRRvYSyhbvg
 K2qw==
X-Gm-Message-State: ANoB5pndB2E5dasaFa1e70qXr8AvboOqCe7lvpDg5ZGUzpfjr3b0As1y
 cfvcaK3jsjPHlxmJecgvej1dWtFqOZFX3rAa58JIlukdBZdybZNq
X-Google-Smtp-Source: AA0mqf6Dw9oLo/N9LPQGrcm664YKwUVdpgiaPf5eqELK3BIT/Wmext6e2BNTbifkVCXNsPnI4Z3Soif5DB3cbBFXBJo=
X-Received: by 2002:a17:907:7782:b0:7b6:dd6d:b829 with SMTP id
 ky2-20020a170907778200b007b6dd6db829mr68868515ejc.602.1670933218360; Tue, 13
 Dec 2022 04:06:58 -0800 (PST)
MIME-Version: 1.0
From: Michael Ford <fanquake@gmail.com>
Date: Tue, 13 Dec 2022 12:06:47 +0000
Message-ID: <CAFyhPjWjcLRo6WDzOT+dGSYwq-68gMh-O4hw1O470kanbrq-=w@mail.gmail.com>
To: bitcoin-dev@lists.linuxfoundation.org
Content-Type: multipart/alternative; boundary="000000000000ec82dc05efb474bf"
X-Mailman-Approved-At: Tue, 13 Dec 2022 13:07:59 +0000
Subject: [bitcoin-dev] Bitcoin Core 24.0.1 Released
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Dec 2022 12:07:05 -0000

--000000000000ec82dc05efb474bf
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Due to last-minute issues (https://github.com/bitcoin/bitcoin/pull/26616),
24.0, although tagged, was never fully announced or released.

Bitcoin Core version 24.0.1 is now available from:

  https://bitcoincore.org/bin/bitcoin-core-24.0.1/

Or through BitTorrent:


 magnet:?xt=3Durn:btih:d7604a67c8ed6e3b35da15138f8ac81d7618788c&dn=3Dbitcoi=
n-core-24.0.1&tr=3Dudp%3A%2F%
2Ftracker.openbittorrent.com%3A80&tr=3Dudp%3A%2F%2Ftracker.opentrackr.org
%3A1337%2Fannounce&tr=3Dudp%3A%2F%2Ftracker.coppersurfer.tk
%3A6969%2Fannounce&tr=3Dudp%3A%2F%2Ftracker.leechers-paradise.org
%3A6969%2Fannounce&tr=3Dudp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=3Dudp=
%3A%2F%
2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=3Dudp%3A%2F%
2Ftracker.bitcoin.sprovoost.nl%3A6969

This release includes new features, various bug fixes and performance
improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

  <https://github.com/bitcoin/bitcoin/issues>

To receive security and update notifications, please subscribe to:

  <https://bitcoincore.org/en/list/announcements/join/>

How to Upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

If you are running an older version, shut it down. Wait until it has
completely
shut down (which might take a few minutes in some cases), then run the
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on
macOS)
or `bitcoind`/`bitcoin-qt` (on Linux).

Upgrading directly from a version of Bitcoin Core that has reached its EOL
is
possible, but it might take some time if the data directory needs to be
migrated. Old
wallet versions of Bitcoin Core are generally supported.

Compatibility
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Bitcoin Core is supported and extensively tested on operating systems
using the Linux kernel, macOS 10.15+, and Windows 7 and newer.  Bitcoin
Core should also work on most other Unix-like systems but is not as
frequently tested on them.  It is not recommended to use Bitcoin Core on
unsupported systems.

Notice of new option for transaction replacement policies
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D

This version of Bitcoin Core adds a new `mempoolfullrbf` configuration
option which allows users to change the policy their individual node
will use for relaying and mining unconfirmed transactions.  The option
defaults to the same policy that was used in previous releases and no
changes to node policy will occur if everyone uses the default.

Some Bitcoin services today expect that the first version of an
unconfirmed transaction that they see will be the version of the
transaction that ultimately gets confirmed---a transaction acceptance
policy sometimes called "first-seen".

The Bitcoin Protocol does not, and cannot, provide any assurance that
the first version of an unconfirmed transaction seen by a particular
node will be the version that gets confirmed.  If there are multiple
versions of the same unconfirmed transaction available, only the miner
who includes one of those transactions in a block gets to decide which
version of the transaction gets confirmed.

Despite this lack of assurance, multiple merchants and services today
still make this assumption.

There are several benefits to users from removing this *first-seen*
simplification.  One key benefit, the ability for the sender of a
transaction to replace it with an alternative version paying higher
fees, was realized in [Bitcoin Core 0.12.0][] (February 2016) with the
introduction of [BIP125][] opt-in Replace By Fee (RBF).

Since then, there has been discussion about completely removing the
first-seen simplification and allowing users to replace any of their
older unconfirmed transactions with newer transactions, a feature called
*full-RBF*.  This release includes a `mempoolfullrbf` configuration
option that allows enabling full-RBF, although it defaults to off
(allowing only opt-in RBF).

Several alternative node implementations have already enabled full-RBF by
default for years, and several contributors to Bitcoin Core are
advocating for enabling full-RBF by default in a future version of
Bitcoin Core.

As more nodes that participate in relay and mining begin enabling
full-RBF, replacement of unconfirmed transactions by ones offering higher
fees may rapidly become more reliable.

Contributors to this project strongly recommend that merchants and services
not accept unconfirmed transactions as final, and if they insist on doing
so,
to take the appropriate steps to ensure they have some recourse or plan for
when their assumptions do not hold.

[Bitcoin Core 0.12.0]:
https://bitcoincore.org/en/releases/0.12.0/#opt-in-replace-by-fee-transacti=
ons
[bip125]: https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki

Notable changes
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

P2P and network changes
- - -----------------------

- - - To address a potential denial-of-service, the logic to download
headers
from peers
  has been reworked.  This is particularly relevant for nodes starting up
for the
  first time (or for nodes which are starting up after being offline for a
long time).

  Whenever headers are received from a peer that have a total chainwork
that is either
  less than the node's `-minimumchainwork` value or is sufficiently below
the work at
  the node's tip, a "presync" phase will begin, in which the node will
download the
  peer's headers and verify the cumulative work on the peer's chain, prior
to storing
  those headers permanently. Once that cumulative work is verified to be
sufficiently high,
  the headers will be redownloaded from that peer and fully validated and
stored.

  This may result in initial headers sync taking longer for new nodes
starting up for
  the first time, both because the headers will be downloaded twice, and
because the effect
  of a peer disconnecting during the presync phase (or while the node's
best headers chain has less
  than `-minimumchainwork`), will result in the node needing to use the
headers presync mechanism
  with the next peer as well (downloading the headers twice, again).
(#25717)

- - - With I2P connections, a new, transient address is used for each
outbound
  connection if `-i2pacceptincoming=3D0`. (#25355)

Updated RPCs
- - ------------

- - - The `-deprecatedrpc=3Dsoftforks` configuration option has been remove=
d.
The
  RPC `getblockchaininfo` no longer returns the `softforks` field, which wa=
s
  previously deprecated in 23.0. (#23508) Information on soft fork status i=
s
  now only available via the `getdeploymentinfo` RPC.

- - - The `deprecatedrpc=3Dexclude_coinbase` configuration option has been
removed.
  The `receivedby` RPCs (`listreceivedbyaddress`, `listreceivedbylabel`,
  `getreceivedbyaddress` and `getreceivedbylabel`) now always return result=
s
  accounting for received coins from coinbase outputs, without an option to
  change that behaviour. Excluding coinbases was previously deprecated in
23.0.
  (#25171)

- - - The `deprecatedrpc=3Dfees` configuration option has been removed. The
top-level
  fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` are
no
  longer returned by RPCs `getmempoolentry`, `getrawmempool(verbose=3Dtrue)=
`,
  `getmempoolancestors(verbose=3Dtrue)` and
`getmempooldescendants(verbose=3Dtrue)`.
  The same fee fields can be accessed through the `fees` object in the
result.
  The top-level fee fields were previously deprecated in 23.0. (#25204)

- - - The `getpeerinfo` RPC has been updated with a new `presynced_headers`
field,
  indicating the progress on the presync phase mentioned in the
  "P2P and network changes" section above.

Changes to wallet related RPCs can be found in the Wallet section below.

New RPCs
- - --------

- - - The `sendall` RPC spends specific UTXOs to one or more recipients
  without creating change. By default, the `sendall` RPC will spend
  every UTXO in the wallet. `sendall` is useful to empty wallets or to
  create a changeless payment from select UTXOs. When creating a payment
  from a specific amount for which the recipient incurs the transaction
  fee, continue to use the `subtractfeefromamount` option via the
  `send`, `sendtoaddress`, or `sendmany` RPCs. (#24118)

- - - A new `gettxspendingprevout` RPC has been added, which scans the
mempool to find
  transactions spending any of the given outpoints. (#24408)

- - - The `simulaterawtransaction` RPC iterates over the inputs and outputs
of the given
  transactions, and tallies up the balance change for the given wallet.
This can be
  useful e.g. when verifying that a coin join like transaction doesn't
contain unexpected
  inputs that the wallet will then sign for unintentionally. (#22751)

Updated REST APIs
- - -----------------

- - - The `/headers/` and `/blockfilterheaders/` endpoints have been update=
d
to use
  a query parameter instead of path parameter to specify the result count.
The
  count parameter is now optional, and defaults to 5 for both endpoints.
The old
  endpoints are still functional, and have no documented behaviour change.

  For `/headers`, use
  `GET /rest/headers/<BLOCK-HASH>.<bin|hex|json>?count=3D<COUNT=3D5>`
  instead of
  `GET /rest/headers/<COUNT>/<BLOCK-HASH>.<bin|hex|json>` (deprecated)

  For `/blockfilterheaders/`, use
  `GET
/rest/blockfilterheaders/<FILTERTYPE>/<BLOCK-HASH>.<bin|hex|json>?count=3D<=
COUNT=3D5>`
  instead of
  `GET
/rest/blockfilterheaders/<FILTERTYPE>/<COUNT>/<BLOCK-HASH>.<bin|hex|json>`
(deprecated)

  (#24098)

Build System
- - ------------

- - - Guix builds are now reproducible across architectures (x86_64 &
aarch64). (#21194)

New settings
- - ------------

- - - A new `mempoolfullrbf` option has been added, which enables the
mempool
to
  accept transaction replacement without enforcing BIP125 replaceability
  signaling. (#25353)

Wallet
- - ------

- - - The `-walletrbf` startup option will now default to `true`. The
  wallet will now default to opt-in RBF on transactions that it creates.
(#25610)

- - - The `replaceable` option for the `createrawtransaction` and
  `createpsbt` RPCs will now default to `true`. Transactions created
  with these RPCs will default to having opt-in RBF enabled. (#25610)

- - - The `wsh()` output descriptor was extended with Miniscript support.
You
can import Miniscript
  descriptors for P2WSH in a watchonly wallet to track coins, but you can't
spend from them using
  the Bitcoin Core wallet yet.
  You can find more about Miniscript on the [reference website](
https://bitcoin.sipa.be/miniscript/). (#24148)

- - - The `tr()` output descriptor now supports multisig scripts through th=
e
`multi_a()` and
  `sortedmulti_a()` functions. (#24043)

- - - To help prevent fingerprinting transactions created by the Bitcoin
Core
wallet, change output
  amounts are now randomized. (#24494)

- - - The `listtransactions`, `gettransaction`, and `listsinceblock`
  RPC methods now include a wtxid field (hash of serialized transaction,
  including witness data) for each transaction. (#24198)

- - - The `listsinceblock`, `listtransactions` and `gettransaction` output
now contain a new
  `parent_descs` field for every "receive" entry. (#25504)

- - - A new optional `include_change` parameter was added to the
`listsinceblock` command.

- - - RPC `getreceivedbylabel` now returns an error, "Label not found
  in wallet" (-4), if the label is not in the address book. (#25122)

Migrating Legacy Wallets to Descriptor Wallets
- - ---------------------------------------------

An experimental RPC `migratewallet` has been added to migrate Legacy
(non-descriptor) wallets to
Descriptor wallets. More information about the migration process is
available in the
[documentation](
https://github.com/bitcoin/bitcoin/blob/master/doc/managing-wallets.md#migr=
ating-legacy-wallets-to-descriptor-wallets
).

GUI changes
- - -----------

- - - A new menu item to restore a wallet from a backup file has been added
(gui#471).

- - - Configuration changes made in the bitcoin GUI (such as the pruning
setting,
proxy settings, UPNP preferences) are now saved to `<datadir>/settings.json=
`
file rather than to the Qt settings backend (windows registry or unix
desktop
config files), so these settings will now apply to bitcoind, instead of
being
ignored. (#15936, gui#602)

- - - Also, the interaction between GUI settings and `bitcoin.conf` setting=
s
is
simplified. Settings from `bitcoin.conf` are now displayed normally in the
GUI
settings dialog, instead of in a separate warning message ("Options set in
this
dialog are overridden by the configuration file: -setting=3Dvalue"). And th=
ese
settings can now be edited because `settings.json` values take precedence
over
`bitcoin.conf` values. (#15936)

Low-level changes
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

RPC
- - ---

- - - The `deriveaddresses`, `getdescriptorinfo`, `importdescriptors` and
`scantxoutset` commands now
  accept Miniscript expression within a `wsh()` descriptor. (#24148)

- - - The `getaddressinfo`, `decodescript`, `listdescriptors` and
`listunspent` commands may now output
  a Miniscript descriptor inside a `wsh()` where a `wsh(raw())` descriptor
was previously returned. (#24148)

Credits
=3D=3D=3D=3D=3D=3D=3D

Thanks to everyone who directly contributed to this release:

- - - /dev/fd0
- - - 0xb10c
- - - Adam Jonas
- - - akankshakashyap
- - - Ali Sherief
- - - amadeuszpawlik
- - - Andreas Kouloumos
- - - Andrew Chow
- - - Anthony Towns
- - - Antoine Poinsot
- - - Antoine Riard
- - - Aur=C3=A8le Oul=C3=A8s
- - - avirgovi
- - - Ayush Sharma
- - - Baas
- - - Ben Woosley
- - - BrokenProgrammer
- - - brunoerg
- - - brydinh
- - - Bushstar
- - - Calvin Kim
- - - CAnon
- - - Carl Dong
- - - chinggg
- - - Cory Fields
- - - Daniel Kraft
- - - Daniela Brozzoni
- - - darosior
- - - Dave Scotese
- - - David Bakin
- - - dergoegge
- - - dhruv
- - - Dimitri
- - - dontbyte
- - - Duncan Dean
- - - eugene
- - - Eunoia
- - - Fabian Jahr
- - - furszy
- - - Gleb Naumenko
- - - glozow
- - - Greg Weber
- - - Gregory Sanders
- - - gruve-p
- - - Hennadii Stepanov
- - - hiago
- - - Igor Bubelov
- - - ishaanam
- - - Jacob P.
- - - Jadi
- - - James O'Beirne
- - - Janna
- - - Jarol Rodriguez
- - - Jeremy Rand
- - - Jeremy Rubin
- - - jessebarton
- - - Jo=C3=A3o Barbosa
- - - John Newbery
- - - Jon Atack
- - - Josiah Baker
- - - Karl-Johan Alm
- - - KevinMusgrave
- - - Kiminuo
- - - klementtan
- - - Kolby Moroz
- - - kouloumos
- - - Kristaps Kaupe
- - - Larry Ruane
- - - Luke Dashjr
- - - MarcoFalke
- - - Marnix
- - - Martin Leitner-Ankerl
- - - Martin Zumsande
- - - Michael Dietz
- - - Michael Folkson
- - - Michael Ford
- - - Murch
- - - mutatrum
- - - muxator
- - - Oskar Mendel
- - - Pablo Greco
- - - pasta
- - - Patrick Strateman
- - - Pavol Rusnak
- - - Peter Bushnell
- - - phyBrackets
- - - Pieter Wuille
- - - practicalswift
- - - randymcmillan
- - - Robert Spigler
- - - Russell Yanofsky
- - - S3RK
- - - Samer Afach
- - - Sebastian Falbesoner
- - - Seibart Nedor
- - - Shashwat
- - - Sjors Provoost
- - - Smlep
- - - sogoagain
- - - Stacie
- - - St=C3=A9phan Vuylsteke
- - - Suhail Saqan
- - - Suhas Daftuar
- - - t-bast
- - - TakeshiMusgrave
- - - Vasil Dimov
- - - W. J. van der Laan
- - - w0xlt
- - - whiteh0rse
- - - willcl-ark
- - - William Casarin
- - - Yancy Ribbens

As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEz7FuIclQ9n+pXlWPLuufXMCVJsEFAmOYaq4ACgkQLuufXMCV
JsH8DQ/+PFPSLM3lOL2yZAHMlXuEKbG8at/H+pXDjwDcZsKs+cuF1Z3JfR6VmAX9
OB8tOvBbqJklZd6GlCeDs4XsBAdXppy50fdZSQ6Dqh7N/+nERUT8GEwTtU11sL7W
vAVWhOmUn5fgCqOI/J2r4jjpZYMDys/NaCUYxmUF5Vm4JaJcs1JIfSUyHtQHdS6t
VIdqb8D2+9mXM7qXbJ6OzF9KzrKFcujRHGPzcTnDvF3kOYKlpjT8w6bfFiBeuSeo
G56X5CR61iXNU5W9HmHIKXBZv6Vnblc9cust7/5ESdgn6OMEnYghnaFSuMsWWAFd
OKAGbuzunh+G9wMl1JWWG4sVVWLDtz6jNwwUu+1a0wrFryYPaPnq/JK09VL32xJr
WKx6iNYqsEcno6kXfjSxLsQTIKzJw2T7iYaQCe8KTpYkaGitNzYMpEtFD68PU/gj
0LEf1sV+BgCuBR7hSBv31pse195Fd/wR71Yk4VVYx26u+82fIhK3ssyWxiiL6ycB
K7FK9Q4QCt0QlO30oD/y/YQMuyVoVCf71qgp5ZB4TehwP+U4qYTp8wiCej7ta0rY
vwjHbFZCYhzw05pIGE7bkbpGjdrnWK5ulaQztGAH6IXw0IPfsh9UJIr42VuXh1Nt
AH6dVC+VwKsr/FjPHuFaj7lwyGw831bKiePptaQYPN9MEELqZqI=3D
=3D5tAr
-----END PGP SIGNATURE-----

--000000000000ec82dc05efb474bf
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">-----BEGIN PGP SIGNED MESSAGE-----<br>Hash: SHA256<br><br>=
Due to last-minute issues (<a href=3D"https://github.com/bitcoin/bitcoin/pu=
ll/26616">https://github.com/bitcoin/bitcoin/pull/26616</a>),<br>24.0, alth=
ough tagged, was never fully announced or released.<br><br>Bitcoin Core ver=
sion 24.0.1 is now available from:<br><br>=C2=A0 <a href=3D"https://bitcoin=
core.org/bin/bitcoin-core-24.0.1/">https://bitcoincore.org/bin/bitcoin-core=
-24.0.1/</a><br><br>Or through BitTorrent:<br><br><br>=C2=A0magnet:?xt=3Dur=
n:btih:d7604a67c8ed6e3b35da15138f8ac81d7618788c&amp;dn=3Dbitcoin-core-24.0.=
1&amp;tr=3Dudp%3A%2F%<br><a href=3D"http://2Ftracker.openbittorrent.com">2F=
tracker.openbittorrent.com</a>%3A80&amp;tr=3Dudp%3A%2F%<a href=3D"http://2F=
tracker.opentrackr.org">2Ftracker.opentrackr.org</a><br>%3A1337%2Fannounce&=
amp;tr=3Dudp%3A%2F%<a href=3D"http://2Ftracker.coppersurfer.tk">2Ftracker.c=
oppersurfer.tk</a><br>%3A6969%2Fannounce&amp;tr=3Dudp%3A%2F%<a href=3D"http=
://2Ftracker.leechers-paradise.org">2Ftracker.leechers-paradise.org</a><br>=
%3A6969%2Fannounce&amp;tr=3Dudp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&amp;=
tr=3Dudp%3A%2F%<br><a href=3D"http://2Ftracker.torrent.eu.org">2Ftracker.to=
rrent.eu.org</a>%3A451%2Fannounce&amp;tr=3Dudp%3A%2F%<br><a href=3D"http://=
2Ftracker.bitcoin.sprovoost.nl">2Ftracker.bitcoin.sprovoost.nl</a>%3A6969<b=
r><br>This release includes new features, various bug fixes and performance=
<br>improvements, as well as updated translations.<br><br>Please report bug=
s using the issue tracker at GitHub:<br><br>=C2=A0 &lt;<a href=3D"https://g=
ithub.com/bitcoin/bitcoin/issues">https://github.com/bitcoin/bitcoin/issues=
</a>&gt;<br><br>To receive security and update notifications, please subscr=
ibe to:<br><br>=C2=A0 &lt;<a href=3D"https://bitcoincore.org/en/list/announ=
cements/join/">https://bitcoincore.org/en/list/announcements/join/</a>&gt;<=
br><br>How to Upgrade<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>=
If you are running an older version, shut it down. Wait until it has<br>com=
pletely<br>shut down (which might take a few minutes in some cases), then r=
un the<br>installer (on Windows) or just copy over `/Applications/Bitcoin-Q=
t` (on<br>macOS)<br>or `bitcoind`/`bitcoin-qt` (on Linux).<br><br>Upgrading=
 directly from a version of Bitcoin Core that has reached its EOL<br>is<br>=
possible, but it might take some time if the data directory needs to be<br>=
migrated. Old<br>wallet versions of Bitcoin Core are generally supported.<b=
r><br>Compatibility<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>Bi=
tcoin Core is supported and extensively tested on operating systems<br>usin=
g the Linux kernel, macOS 10.15+, and Windows 7 and newer.=C2=A0 Bitcoin<br=
>Core should also work on most other Unix-like systems but is not as<br>fre=
quently tested on them.=C2=A0 It is not recommended to use Bitcoin Core on<=
br>unsupported systems.<br><br>Notice of new option for transaction replace=
ment policies<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>This version of Bitcoin Core=
 adds a new `mempoolfullrbf` configuration<br>option which allows users to =
change the policy their individual node<br>will use for relaying and mining=
 unconfirmed transactions.=C2=A0 The option<br>defaults to the same policy =
that was used in previous releases and no<br>changes to node policy will oc=
cur if everyone uses the default.<br><br>Some Bitcoin services today expect=
 that the first version of an<br>unconfirmed transaction that they see will=
 be the version of the<br>transaction that ultimately gets confirmed---a tr=
ansaction acceptance<br>policy sometimes called &quot;first-seen&quot;.<br>=
<br>The Bitcoin Protocol does not, and cannot, provide any assurance that<b=
r>the first version of an unconfirmed transaction seen by a particular<br>n=
ode will be the version that gets confirmed.=C2=A0 If there are multiple<br=
>versions of the same unconfirmed transaction available, only the miner<br>=
who includes one of those transactions in a block gets to decide which<br>v=
ersion of the transaction gets confirmed.<br><br>Despite this lack of assur=
ance, multiple merchants and services today<br>still make this assumption.<=
br><br>There are several benefits to users from removing this *first-seen*<=
br>simplification.=C2=A0 One key benefit, the ability for the sender of a<b=
r>transaction to replace it with an alternative version paying higher<br>fe=
es, was realized in [Bitcoin Core 0.12.0][] (February 2016) with the<br>int=
roduction of [BIP125][] opt-in Replace By Fee (RBF).<br><br>Since then, the=
re has been discussion about completely removing the<br>first-seen simplifi=
cation and allowing users to replace any of their<br>older unconfirmed tran=
sactions with newer transactions, a feature called<br>*full-RBF*.=C2=A0 Thi=
s release includes a `mempoolfullrbf` configuration<br>option that allows e=
nabling full-RBF, although it defaults to off<br>(allowing only opt-in RBF)=
.<br><br>Several alternative node implementations have already enabled full=
-RBF by<br>default for years, and several contributors to Bitcoin Core are<=
br>advocating for enabling full-RBF by default in a future version of<br>Bi=
tcoin Core.<br><br>As more nodes that participate in relay and mining begin=
 enabling<br>full-RBF, replacement of unconfirmed transactions by ones offe=
ring higher<br>fees may rapidly become more reliable.<br><br>Contributors t=
o this project strongly recommend that merchants and services<br>not accept=
 unconfirmed transactions as final, and if they insist on doing<br>so,<br>t=
o take the appropriate steps to ensure they have some recourse or plan for<=
br>when their assumptions do not hold.<br><br>[Bitcoin Core 0.12.0]:<br><a =
href=3D"https://bitcoincore.org/en/releases/0.12.0/#opt-in-replace-by-fee-t=
ransactions">https://bitcoincore.org/en/releases/0.12.0/#opt-in-replace-by-=
fee-transactions</a><br>[bip125]: <a href=3D"https://github.com/bitcoin/bip=
s/blob/master/bip-0125.mediawiki">https://github.com/bitcoin/bips/blob/mast=
er/bip-0125.mediawiki</a><br><br>Notable changes<br>=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D<br><br>P2P and network changes<br>- - ------------=
-----------<br><br>- - - To address a potential denial-of-service, the logi=
c to download headers<br>from peers<br>=C2=A0 has been reworked.=C2=A0 This=
 is particularly relevant for nodes starting up<br>for the<br>=C2=A0 first =
time (or for nodes which are starting up after being offline for a<br>long =
time).<br><br>=C2=A0 Whenever headers are received from a peer that have a =
total chainwork<br>that is either<br>=C2=A0 less than the node&#39;s `-mini=
mumchainwork` value or is sufficiently below<br>the work at<br>=C2=A0 the n=
ode&#39;s tip, a &quot;presync&quot; phase will begin, in which the node wi=
ll<br>download the<br>=C2=A0 peer&#39;s headers and verify the cumulative w=
ork on the peer&#39;s chain, prior<br>to storing<br>=C2=A0 those headers pe=
rmanently. Once that cumulative work is verified to be<br>sufficiently high=
,<br>=C2=A0 the headers will be redownloaded from that peer and fully valid=
ated and<br>stored.<br><br>=C2=A0 This may result in initial headers sync t=
aking longer for new nodes<br>starting up for<br>=C2=A0 the first time, bot=
h because the headers will be downloaded twice, and<br>because the effect<b=
r>=C2=A0 of a peer disconnecting during the presync phase (or while the nod=
e&#39;s<br>best headers chain has less<br>=C2=A0 than `-minimumchainwork`),=
 will result in the node needing to use the<br>headers presync mechanism<br=
>=C2=A0 with the next peer as well (downloading the headers twice, again).<=
br>(#25717)<br><br>- - - With I2P connections, a new, transient address is =
used for each outbound<br>=C2=A0 connection if `-i2pacceptincoming=3D0`. (#=
25355)<br><br>Updated RPCs<br>- - ------------<br><br>- - - The `-deprecate=
drpc=3Dsoftforks` configuration option has been removed.<br>The<br>=C2=A0 R=
PC `getblockchaininfo` no longer returns the `softforks` field, which was<b=
r>=C2=A0 previously deprecated in 23.0. (#23508) Information on soft fork s=
tatus is<br>=C2=A0 now only available via the `getdeploymentinfo` RPC.<br><=
br>- - - The `deprecatedrpc=3Dexclude_coinbase` configuration option has be=
en<br>removed.<br>=C2=A0 The `receivedby` RPCs (`listreceivedbyaddress`, `l=
istreceivedbylabel`,<br>=C2=A0 `getreceivedbyaddress` and `getreceivedbylab=
el`) now always return results<br>=C2=A0 accounting for received coins from=
 coinbase outputs, without an option to<br>=C2=A0 change that behaviour. Ex=
cluding coinbases was previously deprecated in<br>23.0.<br>=C2=A0 (#25171)<=
br><br>- - - The `deprecatedrpc=3Dfees` configuration option has been remov=
ed. The<br>top-level<br>=C2=A0 fee fields `fee`, `modifiedfee`, `ancestorfe=
es` and `descendantfees` are<br>no<br>=C2=A0 longer returned by RPCs `getme=
mpoolentry`, `getrawmempool(verbose=3Dtrue)`,<br>=C2=A0 `getmempoolancestor=
s(verbose=3Dtrue)` and<br>`getmempooldescendants(verbose=3Dtrue)`.<br>=C2=
=A0 The same fee fields can be accessed through the `fees` object in the<br=
>result.<br>=C2=A0 The top-level fee fields were previously deprecated in 2=
3.0. (#25204)<br><br>- - - The `getpeerinfo` RPC has been updated with a ne=
w `presynced_headers`<br>field,<br>=C2=A0 indicating the progress on the pr=
esync phase mentioned in the<br>=C2=A0 &quot;P2P and network changes&quot; =
section above.<br><br>Changes to wallet related RPCs can be found in the Wa=
llet section below.<br><br>New RPCs<br>- - --------<br><br>- - - The `senda=
ll` RPC spends specific UTXOs to one or more recipients<br>=C2=A0 without c=
reating change. By default, the `sendall` RPC will spend<br>=C2=A0 every UT=
XO in the wallet. `sendall` is useful to empty wallets or to<br>=C2=A0 crea=
te a changeless payment from select UTXOs. When creating a payment<br>=C2=
=A0 from a specific amount for which the recipient incurs the transaction<b=
r>=C2=A0 fee, continue to use the `subtractfeefromamount` option via the<br=
>=C2=A0 `send`, `sendtoaddress`, or `sendmany` RPCs. (#24118)<br><br>- - - =
A new `gettxspendingprevout` RPC has been added, which scans the<br>mempool=
 to find<br>=C2=A0 transactions spending any of the given outpoints. (#2440=
8)<br><br>- - - The `simulaterawtransaction` RPC iterates over the inputs a=
nd outputs<br>of the given<br>=C2=A0 transactions, and tallies up the balan=
ce change for the given wallet.<br>This can be<br>=C2=A0 useful e.g. when v=
erifying that a coin join like transaction doesn&#39;t<br>contain unexpecte=
d<br>=C2=A0 inputs that the wallet will then sign for unintentionally. (#22=
751)<br><br>Updated REST APIs<br>- - -----------------<br><br>- - - The `/h=
eaders/` and `/blockfilterheaders/` endpoints have been updated<br>to use<b=
r>=C2=A0 a query parameter instead of path parameter to specify the result =
count.<br>The<br>=C2=A0 count parameter is now optional, and defaults to 5 =
for both endpoints.<br>The old<br>=C2=A0 endpoints are still functional, an=
d have no documented behaviour change.<br><br>=C2=A0 For `/headers`, use<br=
>=C2=A0 `GET /rest/headers/&lt;BLOCK-HASH&gt;.&lt;bin|hex|json&gt;?count=3D=
&lt;COUNT=3D5&gt;`<br>=C2=A0 instead of<br>=C2=A0 `GET /rest/headers/&lt;CO=
UNT&gt;/&lt;BLOCK-HASH&gt;.&lt;bin|hex|json&gt;` (deprecated)<br><br>=C2=A0=
 For `/blockfilterheaders/`, use<br>=C2=A0 `GET<br>/rest/blockfilterheaders=
/&lt;FILTERTYPE&gt;/&lt;BLOCK-HASH&gt;.&lt;bin|hex|json&gt;?count=3D&lt;COU=
NT=3D5&gt;`<br>=C2=A0 instead of<br>=C2=A0 `GET<br>/rest/blockfilterheaders=
/&lt;FILTERTYPE&gt;/&lt;COUNT&gt;/&lt;BLOCK-HASH&gt;.&lt;bin|hex|json&gt;`<=
br>(deprecated)<br><br>=C2=A0 (#24098)<br><br>Build System<br>- - ---------=
---<br><br>- - - Guix builds are now reproducible across architectures (x86=
_64 &amp;<br>aarch64). (#21194)<br><br>New settings<br>- - ------------<br>=
<br>- - - A new `mempoolfullrbf` option has been added, which enables the m=
empool<br>to<br>=C2=A0 accept transaction replacement without enforcing BIP=
125 replaceability<br>=C2=A0 signaling. (#25353)<br><br>Wallet<br>- - -----=
-<br><br>- - - The `-walletrbf` startup option will now default to `true`. =
The<br>=C2=A0 wallet will now default to opt-in RBF on transactions that it=
 creates.<br>(#25610)<br><br>- - - The `replaceable` option for the `create=
rawtransaction` and<br>=C2=A0 `createpsbt` RPCs will now default to `true`.=
 Transactions created<br>=C2=A0 with these RPCs will default to having opt-=
in RBF enabled. (#25610)<br><br>- - - The `wsh()` output descriptor was ext=
ended with Miniscript support. You<br>can import Miniscript<br>=C2=A0 descr=
iptors for P2WSH in a watchonly wallet to track coins, but you can&#39;t<br=
>spend from them using<br>=C2=A0 the Bitcoin Core wallet yet.<br>=C2=A0 You=
 can find more about Miniscript on the [reference website](<br><a href=3D"h=
ttps://bitcoin.sipa.be/miniscript/">https://bitcoin.sipa.be/miniscript/</a>=
). (#24148)<br><br>- - - The `tr()` output descriptor now supports multisig=
 scripts through the<br>`multi_a()` and<br>=C2=A0 `sortedmulti_a()` functio=
ns. (#24043)<br><br>- - - To help prevent fingerprinting transactions creat=
ed by the Bitcoin Core<br>wallet, change output<br>=C2=A0 amounts are now r=
andomized. (#24494)<br><br>- - - The `listtransactions`, `gettransaction`, =
and `listsinceblock`<br>=C2=A0 RPC methods now include a wtxid field (hash =
of serialized transaction,<br>=C2=A0 including witness data) for each trans=
action. (#24198)<br><br>- - - The `listsinceblock`, `listtransactions` and =
`gettransaction` output<br>now contain a new<br>=C2=A0 `parent_descs` field=
 for every &quot;receive&quot; entry. (#25504)<br><br>- - - A new optional =
`include_change` parameter was added to the<br>`listsinceblock` command.<br=
><br>- - - RPC `getreceivedbylabel` now returns an error, &quot;Label not f=
ound<br>=C2=A0 in wallet&quot; (-4), if the label is not in the address boo=
k. (#25122)<br><br>Migrating Legacy Wallets to Descriptor Wallets<br>- - --=
-------------------------------------------<br><br>An experimental RPC `mig=
ratewallet` has been added to migrate Legacy<br>(non-descriptor) wallets to=
<br>Descriptor wallets. More information about the migration process is<br>=
available in the<br>[documentation](<br><a href=3D"https://github.com/bitco=
in/bitcoin/blob/master/doc/managing-wallets.md#migrating-legacy-wallets-to-=
descriptor-wallets">https://github.com/bitcoin/bitcoin/blob/master/doc/mana=
ging-wallets.md#migrating-legacy-wallets-to-descriptor-wallets</a><br>).<br=
><br>GUI changes<br>- - -----------<br><br>- - - A new menu item to restore=
 a wallet from a backup file has been added<br>(gui#471).<br><br>- - - Conf=
iguration changes made in the bitcoin GUI (such as the pruning<br>setting,<=
br>proxy settings, UPNP preferences) are now saved to `&lt;datadir&gt;/sett=
ings.json`<br>file rather than to the Qt settings backend (windows registry=
 or unix<br>desktop<br>config files), so these settings will now apply to b=
itcoind, instead of<br>being<br>ignored. (#15936, gui#602)<br><br>- - - Als=
o, the interaction between GUI settings and `bitcoin.conf` settings<br>is<b=
r>simplified. Settings from `bitcoin.conf` are now displayed normally in th=
e<br>GUI<br>settings dialog, instead of in a separate warning message (&quo=
t;Options set in<br>this<br>dialog are overridden by the configuration file=
: -setting=3Dvalue&quot;). And these<br>settings can now be edited because =
`settings.json` values take precedence<br>over<br>`bitcoin.conf` values. (#=
15936)<br><br>Low-level changes<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D<br><br>RPC<br>- - ---<br><br>- - - The `deriveaddresses`, `get=
descriptorinfo`, `importdescriptors` and<br>`scantxoutset` commands now<br>=
=C2=A0 accept Miniscript expression within a `wsh()` descriptor. (#24148)<b=
r><br>- - - The `getaddressinfo`, `decodescript`, `listdescriptors` and<br>=
`listunspent` commands may now output<br>=C2=A0 a Miniscript descriptor ins=
ide a `wsh()` where a `wsh(raw())` descriptor<br>was previously returned. (=
#24148)<br><br>Credits<br>=3D=3D=3D=3D=3D=3D=3D<br><br>Thanks to everyone w=
ho directly contributed to this release:<br><br>- - - /dev/fd0<br>- - - 0xb=
10c<br>- - - Adam Jonas<br>- - - akankshakashyap<br>- - - Ali Sherief<br>- =
- - amadeuszpawlik<br>- - - Andreas Kouloumos<br>- - - Andrew Chow<br>- - -=
 Anthony Towns<br>- - - Antoine Poinsot<br>- - - Antoine Riard<br>- - - Aur=
=C3=A8le Oul=C3=A8s<br>- - - avirgovi<br>- - - Ayush Sharma<br>- - - Baas<b=
r>- - - Ben Woosley<br>- - - BrokenProgrammer<br>- - - brunoerg<br>- - - br=
ydinh<br>- - - Bushstar<br>- - - Calvin Kim<br>- - - CAnon<br>- - - Carl Do=
ng<br>- - - chinggg<br>- - - Cory Fields<br>- - - Daniel Kraft<br>- - - Dan=
iela Brozzoni<br>- - - darosior<br>- - - Dave Scotese<br>- - - David Bakin<=
br>- - - dergoegge<br>- - - dhruv<br>- - - Dimitri<br>- - - dontbyte<br>- -=
 - Duncan Dean<br>- - - eugene<br>- - - Eunoia<br>- - - Fabian Jahr<br>- - =
- furszy<br>- - - Gleb Naumenko<br>- - - glozow<br>- - - Greg Weber<br>- - =
- Gregory Sanders<br>- - - gruve-p<br>- - - Hennadii Stepanov<br>- - - hiag=
o<br>- - - Igor Bubelov<br>- - - ishaanam<br>- - - Jacob P.<br>- - - Jadi<b=
r>- - - James O&#39;Beirne<br>- - - Janna<br>- - - Jarol Rodriguez<br>- - -=
 Jeremy Rand<br>- - - Jeremy Rubin<br>- - - jessebarton<br>- - - Jo=C3=A3o =
Barbosa<br>- - - John Newbery<br>- - - Jon Atack<br>- - - Josiah Baker<br>-=
 - - Karl-Johan Alm<br>- - - KevinMusgrave<br>- - - Kiminuo<br>- - - klemen=
ttan<br>- - - Kolby Moroz<br>- - - kouloumos<br>- - - Kristaps Kaupe<br>- -=
 - Larry Ruane<br>- - - Luke Dashjr<br>- - - MarcoFalke<br>- - - Marnix<br>=
- - - Martin Leitner-Ankerl<br>- - - Martin Zumsande<br>- - - Michael Dietz=
<br>- - - Michael Folkson<br>- - - Michael Ford<br>- - - Murch<br>- - - mut=
atrum<br>- - - muxator<br>- - - Oskar Mendel<br>- - - Pablo Greco<br>- - - =
pasta<br>- - - Patrick Strateman<br>- - - Pavol Rusnak<br>- - - Peter Bushn=
ell<br>- - - phyBrackets<br>- - - Pieter Wuille<br>- - - practicalswift<br>=
- - - randymcmillan<br>- - - Robert Spigler<br>- - - Russell Yanofsky<br>- =
- - S3RK<br>- - - Samer Afach<br>- - - Sebastian Falbesoner<br>- - - Seibar=
t Nedor<br>- - - Shashwat<br>- - - Sjors Provoost<br>- - - Smlep<br>- - - s=
ogoagain<br>- - - Stacie<br>- - - St=C3=A9phan Vuylsteke<br>- - - Suhail Sa=
qan<br>- - - Suhas Daftuar<br>- - - t-bast<br>- - - TakeshiMusgrave<br>- - =
- Vasil Dimov<br>- - - W. J. van der Laan<br>- - - w0xlt<br>- - - whiteh0rs=
e<br>- - - willcl-ark<br>- - - William Casarin<br>- - - Yancy Ribbens<br><b=
r>As well as to everyone that helped with translations on<br>[Transifex](<a=
 href=3D"https://www.transifex.com/bitcoin/bitcoin/">https://www.transifex.=
com/bitcoin/bitcoin/</a>).<br>-----BEGIN PGP SIGNATURE-----<br><br>iQIzBAEB=
CAAdFiEEz7FuIclQ9n+pXlWPLuufXMCVJsEFAmOYaq4ACgkQLuufXMCV<br>JsH8DQ/+PFPSLM3=
lOL2yZAHMlXuEKbG8at/H+pXDjwDcZsKs+cuF1Z3JfR6VmAX9<br>OB8tOvBbqJklZd6GlCeDs4=
XsBAdXppy50fdZSQ6Dqh7N/+nERUT8GEwTtU11sL7W<br>vAVWhOmUn5fgCqOI/J2r4jjpZYMDy=
s/NaCUYxmUF5Vm4JaJcs1JIfSUyHtQHdS6t<br>VIdqb8D2+9mXM7qXbJ6OzF9KzrKFcujRHGPz=
cTnDvF3kOYKlpjT8w6bfFiBeuSeo<br>G56X5CR61iXNU5W9HmHIKXBZv6Vnblc9cust7/5ESdg=
n6OMEnYghnaFSuMsWWAFd<br>OKAGbuzunh+G9wMl1JWWG4sVVWLDtz6jNwwUu+1a0wrFryYPaP=
nq/JK09VL32xJr<br>WKx6iNYqsEcno6kXfjSxLsQTIKzJw2T7iYaQCe8KTpYkaGitNzYMpEtFD=
68PU/gj<br>0LEf1sV+BgCuBR7hSBv31pse195Fd/wR71Yk4VVYx26u+82fIhK3ssyWxiiL6ycB=
<br>K7FK9Q4QCt0QlO30oD/y/YQMuyVoVCf71qgp5ZB4TehwP+U4qYTp8wiCej7ta0rY<br>vwj=
HbFZCYhzw05pIGE7bkbpGjdrnWK5ulaQztGAH6IXw0IPfsh9UJIr42VuXh1Nt<br>AH6dVC+VwK=
sr/FjPHuFaj7lwyGw831bKiePptaQYPN9MEELqZqI=3D<br>=3D5tAr<br>-----END PGP SIG=
NATURE-----<br></div>

--000000000000ec82dc05efb474bf--