Skip to content

Sync Fork#10

Merged
amackillop merged 261 commits into
amackillop/probingfrom
amackillop/2025-10-15/sync-fork
Oct 15, 2025
Merged

Sync Fork#10
amackillop merged 261 commits into
amackillop/probingfrom
amackillop/2025-10-15/sync-fork

Conversation

@amackillop

Copy link
Copy Markdown

Syncing the probing fork to be up to date with upstream main

tnull and others added 30 commits March 4, 2025 09:54
.. and forward it to our `LiquditySource`.
.. to align with other event handling variants: First log, then act,
then emit event if everything went okay.
.. so far we just silently fail if something goes wrong, eventually
we'll need to implement retrying channel opens to honor buy requests
that didn't succeed on the first attempt.
…ervice-support

Add bLIP-52 / LSPS2 service-side support
General improvements:
- Add TestConfig wrapper around Config to allow per-test
log field overrides while preserving the general test setup.

- Test facade logger.

- Add logging module and validate log entries.

- Improve UniFFI logging adding UniFFI flag for relevant
log objects.

- Remove facade level, because the concrete `Log` impl
controls max log level.
Historically, we aligned `uniffi` and non-`uniffi` APIs as much as
possible (mostly because there are no rendered docs available for the
latter). As the APIs have diverged a bit by now anyways, we here have
`Builder::set_entropy_seed_bytes` take a `[u8; 64]`, which makes for a
better API in Rust.
…by-array

Have `Builder::set_entropy_seed_bytes` take `[u8; 64]` for non-`uniffi`
…-failures

Handle remaining panic on persistence failure
Return specific error if the node is restarted with a different network
from the one it was first created with. This will be caught when trying
to load the `BDK` wallet.
Sets up a local environment for LND integration testing in CI

Closes 505
.. we add a field describing exactly how much the LSP withheld.
Implements BackgroundSyncConfig to control background wallet synchronization behavior.

- Allows users to explicitly disable background wallet synchronization
- Sets intervals to minimum threshold if specified value is below it

Context:
Some users have setups where they need to rely exclusively on manual syncing.
Previously, they had to set intervals to u64::MAX as a workaround to effectively
disable background syncing. This implementation provides a cleaner, explicit
approach for controlling sync behavior when manual syncing via sync_wallets()
is preferred.

Breaking change: Existing implementations may need updates to accommodate
the new configuration structure.

Closes lightningdevkit#310
…ails-nits

Add `counterparty_skimmed_fee_msat` field to `PaymentKind::Bolt11Jit`
…l-wallet-sync

Allow disabling wallet background syncing
In certain node configurations a user might want or need to
announce different addresses to the network than the ones they
bind their tcp listeners to.
This error type can provide more context to callers about why
the node configuration does not support channel announcements.
A new integration test that configures nodes using the new
announcement addresses configuration.  Ensures that both nodes
receive the correct alias and address for nodes using and not
using this new feature.
…ddresses

Support separate node announcement addresses
Previously, we'd always disallow forwarding to unannounced channels.
However, if we're acting as an LSP, we *should* allow forwarding to
unannounced channels.
…annel-forward-if-lsp

Allow forwarding to unannounced channels if LSP service is enabled
Adds tests to:
- Open a payment channel with LND.
- Request and pay an invoice, verifying receipt.
- Generate an invoice for LND to pay, verifying receipt.
Uses lnd_grpc_rust for gRPC communication.

Closes lightningdevkit#505
Configures CI to run LND tests using the Docker Compose environment.

Closes lightningdevkit#505
- Add timeout, max retries, and error handling to wait_for_block and wait_for_tx functions in Python tests
- Catch and log connection errors instead of failing immediately
- Use shorter sleep interval (0.5s) to match Kotlin implementation
- Add error messages during retries

This addresses the "Connection reset by peer" errors in CI by making the Python tests more resilient to temporary network issues when connecting to the Esplora API.
tnull added 26 commits October 7, 2025 10:49
.. to be easier reusable via `KVStore` also
.. where the former holds the latter in an `Arc` that can be used in
async/`Future` contexts more easily.
.. to be easier reusable via `KVStore` also
.. where the former holds the latter in an `Arc` that can be used in
async/`Future` contexts more easily.
As an intermediary step, we require any store to implement both
`KVStore` and `KVStoreSync`, allowing us to switch over step-by-step.

We already switch to the fully-async background processor variant here.
The `bdk_wallet` release 2.2 deprecated BDK's signer API in favor of
using `bitcoin::psbt::sign`. As the best approach for switching to that
API is currently not entirely clear, we intermittently allow for the use
of the deprecated APIs to silence the warnings and unbreak our CI.
…tore

Require both `KVStore` and `KVStoreSync` implementations, switch BP to be fully-async
…-2.2

Bump BDK to 2.2, rust-bitcoin to 0.32.7
We recently implemented persistence for the `lightning-liquidity` service
state. Here we make corresponding changes in LDK Node to have our
service state persisted.
…ence

Account for `LiquidityManager` persistence
…move

Account for `Arc`s and `lazy` being dropped
- We fix an oversight introduced in 9977903
  where we switched `Cargo.toml` to use local dependencies instead of
  pointing to an appropriate upstream commit
- We account for Splicing-related events
- We account for `KeysManager` taking a new flag for v2-payment-key
  derivation.
…est-LDK-splicing

Bump to latest LDK `main`
We update our LDK dependency to the just-released v0.2.0-beta1.
Since we just deprecated the Java version of the VSS server, we here
switch our CI over to use the Rust version.
…ust-vss-server

Switch to use Rust VSS server in CI
@amackillop amackillop force-pushed the amackillop/2025-10-15/sync-fork branch from 5a6ec24 to d401979 Compare October 15, 2025 19:31
…15/sync-fork

* upstream/main: (177 commits)
  Switch to use Rust VSS server in CI
  Bump LDK to v0.2.0-beta1
  Bump to latest LDK `main`
  Account for `OutputSweeper::read` being dropped
  Account for `LiquidityManager` taking a broadcaster
  Account for lifetime change in `get_change_destination_script`
  Account for `lazy` being dropped from `KVStore::remove`
  Account for dropped `Arc` for `DefaultTimeProvider`
  Account for `LiquidityManager` persistence
  Use `#[allow(deprecated)]` to silence new deprecation warnings
  Require both types of `KVStore`
  Implement `KVStore` for `TestSyncStore`
  Split `TestSyncStore` into `TestSyncStore` and `TestSyncStoreInner`
  Move `TestStoreSync` logic to `_internal` methods
  Implement `KVStore` for `SqliteStore`
  Bump BDK to 2.2, rust-bitcoin to 0.32.7
  Split `SqliteStore` into `SqliteStore` and `SqliteStoreInner`
  Move `SqliteStore` logic to `_internal` methods
  f No need to use `RwLock` if we ever only `write` it
  Implement `KVStore` for `VssStore`
  ...
@amackillop amackillop force-pushed the amackillop/2025-10-15/sync-fork branch from d401979 to a263427 Compare October 15, 2025 19:57
@amackillop amackillop merged commit f96d6ff into amackillop/probing Oct 15, 2025
0 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.