Skip to content

Commit 1b49f48

Browse files
Gustavojfebitschmidty
authored andcommitted
News317: add notable code changes
1 parent d916899 commit 1b49f48

4 files changed

Lines changed: 97 additions & 20 deletions

File tree

_posts/en/newsletters/2024-08-23-newsletter.md

Lines changed: 88 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -141,30 +141,91 @@ Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo],
141141
[Lightning BLIPs][blips repo], [Bitcoin Inquisition][bitcoin inquisition
142142
repo], and [BINANAs][binana repo]._
143143

144-
- [Bitcoin Core #28553][] validation: assumeutxo params mainnet
145-
146-
- [Bitcoin Core #30246][] contrib: asmap-tool - Compare ASMaps with respect to specific addresses
147-
148-
- [Bitcoin Core GUI #824][] Migrate legacy wallets that are not loaded
149-
150-
- [Core Lightning #7540][] renepay: add const probability cost
151-
152-
- [Core Lightning #7403][] renepay: add a channel filtering paymod
153-
154-
- [LND #8943][] Roasbeef/alloy-linear-fee-model <!-- mainly looking for a mention of Alloy and how it could be useful to other Bitcoin projects; probably only need a short mention of the fee function bug fix -->
155-
156-
- [BDK #1478][] Allow opting out of getting `LocalChain` updates with `FullScanRequest`/`SyncRequest` structures
157-
158-
- [BDK #1533][] Enable support for single descriptor wallets
159-
160-
- [BOLTs #1182][] BOLT 4: clarify blinded path requirements.
161-
162-
- [BLIPs #39][] blip-0039: BOLT 11 Invoice Blinded Path Tagged Field
144+
- [Bitcoin Core #28553][] adds [assumeUTXO][topic assumeutxo] snapshot
145+
parameters for mainnet block 840,000: its block hash, the number of
146+
transactions up to that block, and the SHA256 hash of the serialized UTXO set
147+
up to that block. This follows tests by multiple contributors that they can
148+
reproduce the same [snapshot file][] with the expected SHA256 checksum, and that
149+
the snapshot works well when loaded.
150+
151+
- [Bitcoin Core #30246][] introduces a `diff_addrs` subcommand to the
152+
`asmap-tool` utility to allow users to compare two maps of [Autonomous
153+
Systems][auto sys] (ASMaps) and compute statistics on how many node network
154+
addresses have been reassigned to a different Autonomous System Number (ASN).
155+
This functionality quantifies the degradation of an ASMap over time, which is
156+
an important step towards eventually shipping precomputed ASMaps in Bitcoin
157+
Core releases, and further increase Bitcoin Core’s resistance to [eclipse
158+
attacks][topic eclipse attacks]. See Newsletter [#290][news290 asmap].
159+
160+
- [Bitcoin Core GUI #824][] changes the `Migrate Wallet` menu item from a single
161+
action to a menu list, allowing users to migrate any legacy wallet in the
162+
wallet directory, including unloadable wallets. This change prepares for a
163+
possible future where legacy wallets may no longer be loadable in Bitcoin
164+
Core, with [descriptor][topic descriptors] wallets becoming the default. When
165+
selecting a wallet to migrate, the GUI will prompt the user to enter the
166+
wallet’s passphrase, if it has one.
167+
168+
- [Core Lightning #7540][] improves the formula that calculates the probability
169+
of a successful routing through a channel in the `renepay` plugin (see
170+
Newsletter [#263][news263 renepay]) by adding a constant multiplier that
171+
represents the probability that a randomly chosen channel in the network is
172+
able to forward at least 1 msat. The default value is set to 0.98, but this
173+
may be changed in the future after further testing.
174+
175+
- [Core Lightning #7403][] adds a channel filtering payment modifier to the
176+
`renepay` plugin which disables channels with a very low `max_htlc`. This can
177+
be extended in the future to filter out channels that are undesirable for
178+
other reasons: high base fee, low capacity, and high latency. In addition, a new
179+
`exclude` command line option has been added to manually disable nodes or channels.
180+
181+
- [LND #8943][] introduces [Alloy][alloy model] models to the codebase, starting
182+
with an initial Alloy model for the [Linear Fee Function][lnd linear] fee
183+
bumping mechanism, inspired by a bugfix [LND #8751][]. Alloy provides a
184+
lightweight formal method for verifying the correctness of system components
185+
to make it easier to find bugs during the initial implementation. Rather than
186+
trying to prove that a model is always correct, as full-blown formal methods
187+
do, Alloy instead operates on an input of a set of bounded parameters and
188+
iterations and tries to find counterexamples to a given assertion, accompanied
189+
by a nice visualizer. Models can also be used to specify protocols in P2P
190+
systems, so it's particularly well suited to the Lightning Network.
191+
192+
- [BDK #1478][] makes several changes to the `FullScanRequest` and `SyncRequest`
193+
request structures of the `bdk_chain` crate: use a builder pattern that
194+
separates request construction and consumption, make the `chain_tip` parameter
195+
optional to allow users to opt out of `LocalChain` updates (useful for those
196+
using `bdk_esplora` without a `LocalChain`), and improve the ergonomics of
197+
checking synchronization progress. In addition, the `bdk_esplora` crate is
198+
optimized by always adding previous transaction outputs to the `TxGraph`
199+
update and reducing the number of API calls by using the `/tx/:txid` endpoint.
200+
201+
- [BDK #1533][] enables support for single [descriptor][topic descriptors]
202+
wallets by adding the `Wallet::create_single` method, reverting a previous
203+
update that had made the `Wallet` structure require an internal (change)
204+
descriptor. The reason for the previous change was to protect the privacy of
205+
users' change addresses when relying on public Electrum or Esplora servers,
206+
but this is being reverted to be inclusive of all use cases.
207+
208+
- [BOLTs #1182][] improves the clarity and completeness of the [route
209+
blinding][topic rv routing] and [onion messages][topic onion messages]
210+
sections of the [BOLT4][] specification with the following changes: moves the
211+
route blinding section up one level to emphasize its applicability to payments
212+
(and not just onion messages), provides more concrete details on the
213+
`blinded_path` type and its requirements, expands the description of the
214+
writer's responsibilities, splits the reader section into separate parts for
215+
the `blinded_path` and `encrypted_recipient_data`, improves the explanation of
216+
the `blinded_path` concept, adds a recommendation to use a dummy hop, renames
217+
`onionmsg_hop` to `blinded_path_hop`, and makes other clarifying changes.
218+
219+
- [BLIPs #39][] adds [BLIP39][] for an optional field `b` in [BOLT11][] invoices to
220+
communicate a [blinded path][topic rv routing] for paying the receiver’s node.
221+
This is implemented in LND (see Newsletter [#315][news315 blinded]) and is
222+
intended to be used until the [offers][topic offers] protocol is widely
223+
deployed in the network.
163224

164225
{% assign four_days_after_posting = page.date | date: "%s" | plus: 345600 | date: "%Y-%m-%d 14:30" %}
165226
{% include snippets/recap-ad.md when=four_days_after_posting %}
166227
{% include references.md %}
167-
{% include linkers/issues.md v=2 issues="28553,30246,824,7540,7403,8943,1478,1533,1182,39" %}
228+
{% include linkers/issues.md v=2 issues="28553,30246,824,7540,7403,8943,1478,1533,1182,39,8751" %}
168229
[Core Lightning 24.08rc2]: https://github.com/ElementsProject/lightning/releases/tag/v24.08rc2
169230
[LND v0.18.3-beta.rc1]: https://github.com/lightningnetwork/lnd/releases/tag/v0.18.3-beta.rc1
170231
[moonsettler exfil1]: https://delvingbitcoin.org/t/non-interactive-anti-exfil-airgap-compatible/1081
@@ -189,3 +250,10 @@ repo], and [BINANAs][binana repo]._
189250
[seedsigner 0.8.0]: https://github.com/SeedSigner/seedsigner/releases/tag/0.8.0
190251
[floresta 0.6.0]: https://github.com/vinteumorg/Floresta/releases/tag/0.6.0
191252
[floresta blog]: https://medium.com/vinteum-org/floresta-update-simplifying-bitcoin-node-integration-for-wallets-6886ea7c975c
253+
[auto sys]: https://en.wikipedia.org/wiki/Autonomous_system_(Internet)
254+
[news290 asmap]: /en/newsletters/2024/02/21/#improved-reproducible-asmap-creation-process
255+
[news263 renepay]: /en/newsletters/2023/08/09/#core-lightning-6376
256+
[alloy model]: https://alloytools.org/about.html
257+
[lnd linear]: https://github.com/lightningnetwork/lnd/blob/b7c59b36a74975c4e710a02ea42959053735402e/sweep/fee_function.go#L66-L109
258+
[news315 blinded]: /en/newsletters/2024/08/09/#lnd-8735
259+
[snapshot file]: magnet:?xt=urn:btih:596c26cc709e213fdfec997183ff67067241440c&dn=utxo-840000.dat&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969

_topics/en/assumeutxo.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ optech_mentions:
6767
- title: "Bitcoin Core #30598 removes block height from the assumeUTXO snapshot file metadata"
6868
url: /en/newsletters/2024/08/16/#bitcoin-core-30598
6969

70+
- title: "Bitcoin Core #28553 adds assumeUTXO snapshot parameters for mainnet block 840,000"
71+
url: /en/newsletters/2024/08/23/#bitcoin-core-28553
72+
7073
## Optional. Same format as "primary_sources" above
7174
see_also:
7275
- title: "Bitcoin Core issue #15605: AssumeUTXO discussion"

_topics/en/pay-to-contract-outputs.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ optech_mentions:
3939
- title: "PSBT extension for pay-to-contract fields"
4040
url: /en/newsletters/2022/01/26/#psbt-extension-for-p2c-fields
4141

42+
- title: "BIPs #1293 adds BIP372 Pay-to-contract tweak fields for PSBT"
43+
url: /en/newsletters/2022/10/05/#bips-1293
44+
4245
## Optional. Same format as "primary_sources" above
4346
see_also:
4447
- title: Proof of payment

_topics/en/rendez-vous-routing.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ optech_mentions:
9898
- title: "LND #8735 and #8764 improve LND's support for blinded paths, including for multipath"
9999
url: /en/newsletters/2024/08/09/#lnd-8735
100100

101+
- title: "BLIPs #39 adds BLIP39 for an optional field b in BOLT11 invoices to communicate a blinded path"
102+
url: /en/newsletters/2024/08/23/#blips-39
103+
101104
## Optional. Same format as "primary_sources" above
102105
see_also:
103106
- title: Unannounced channels

0 commit comments

Comments
 (0)