Release Notes - July 2024
Another month, more new features and improvements. We’ve been working on a number of platform enhancements and wanted to highlight two user-facing enhancements: Force Closure Recovery and LDK Async Signing.
Force Closure Recovery enables integrators with Remote Key nodes to recover funds from a channel force closure easily.
LDK Async signing is an enhancement to LDK to enable asynchronous signatures for transactions and updates.
Force Closure Recovery
Remote Key Nodes can initiate a forced closure of a channel if the remote signer is unavailable or returns malformed responses. This action triggers an automatic transfer of channel funds to an L1 P2WSH address generated from the associated extended public key. Recovering these funds requires manually constructing and signing a Bitcoin transaction.
To simplify this process, we’ve launched Force Closure Recovery. Force Closure Recovery allows integrators to automate recovering funds from a force-closed channel by specifying an L1 address to which the funds should automatically be sent.
You can configure Force Closure Recovery by adding the L1 address in the Withdrawal Allowlist on the Account settings page.
When an address is added, in addition to enforcing an L1 withdrawal allowlist, Lightspark will automatically generate the recovery transaction on your behalf and send it to your remote signer if it’s accessible. Once signed, Lightspark can help you broadcast your transaction to recover your channel funds.
If your signer is inaccessible for an extended period of time, you can also manually trigger recovery transaction generation. Under the transactions view, select Forced Closures. Select the Forced Closure you want to attempt to recover and the recovery transaction. Click Attempt To Recover Funds to initiate the recovery flow on the Recovery Transaction Details view.
LDK Async Signing
Lightspark is built upon the Lightning node open source ecosystem. We use both LND and LDK for different purposes in our infrastructure. We’ve made enhancements to LDK to enable our Remote Keys signing flow where we send signing requests to our integrators who hold the Bitcoin private keys in their infrastructure. Our integrators need to sign and return the signatures back to Lightspark to complete the transaction or channel update.
To enable the Remote Keys flow, we enhanced LDK to support asynchronous API requests. We updated several ChannelSigner methods such as get_per_commitment_point, release_commitment_secret and have updated commitment signatures logic so they can return an Err result indicating that the requested value is not immediately available. Channel operation can then be resumed by invoking signer_unblocked.
We’re finishing the process of upstreaming our LDK enhancements so the Lightning ecosystem can leverage LDK asynchronous signing. With LDK asynchronous signing, you have more flexibility in how you manage your keys. For example, you could update your service to sign from secure enclaves.
Below are some of the PRs we’re in the process of reviewing with the LDK team. We hope to make this available soon following a thorough review.
- https://github.com/lightningdevkit/rust-lightning/pull/3151
- https://github.com/lightningdevkit/rust-lightning/pull/3149
- https://github.com/lightningdevkit/rust-lightning/pull/3150
- https://github.com/lightningdevkit/rust-lightning/pull/3152
- https://github.com/lightningdevkit/rust-lightning/pull/3153
Thanks for taking the time to learn more about the Lightspark platform. As always, you can reach us at support@lightspark.com if you have any additional questions or clarifications.