Eclair v0.10.0: Dual Funding, Latest Bolt 12, Fully Working Splicing Prototype

Eclair is a Scala implementation of the Lightning Network.

Eclair v0.10.0: Dual Funding, Latest Bolt 12, Fully Working Splicing Prototype
  • "This release adds official support for the dual-funding feature, an up-to-date implementation of Bolt 12 offers, and a fully working splicing prototype."
"We're waiting for the specification work to be finalized for some of those features, and other implementations to be ready for cross-compatibility tests. You should only activate them if you know what you're doing, and are ready to handle backwards-incompatible changes!"
  • "This release also contains various on-chain fee improvements, more configuration options, performance enhancements and various minor bug fixes."

What's new

  • Dual funding. "This release of eclair activates dual funding, and it will automatically be used with cln nodes. When opening channels to nodes that don't support dual funding, the older funding protocol will be used automatically. One of the immediate benefits of dual funding is that the funding transaction can now be RBF-ed, using the rbfopen RPC."
    • "There is currently no way to automatically add funds to channels that are being opened to your node, as deciding whether to do so or not really depends on each node operator's peering strategy. We have however created a sample plugin that node operators can fork to implement their own strategy for contributing to inbound channels."
  • Update minimal version of Bitcoin Core. "With this release, eclair requires using Bitcoin Core 24.1. Newer versions of Bitcoin Core may be used, but haven't been extensively tested."
  • Bolt12. "Eclair supports the latest state of the Bolt 12 specification. The specification may still change at that point, so support is experimental, but you may try it using: 1) the payoffer RPC to pay a Bolt 12 offer; 2) the tip jar plugin to generate Bolt 12 offers."
  • Use priority instead of block target for feerates. "Eclair now uses a slow/medium/fast notation for feerates (in the style of, instead of block targets. Note that even in a force close scenario, when an output is only spendable by eclair, then the normal closing priority is used."
  • Add configurable maximum anchor fee. "We introduced a new parameter to control the maximum fee that will be paid during fee-bumping, that node operators may configure."
  • Managing Bitcoin Core wallet keys. "You can now use Eclair to manage the private keys for on-chain funds monitored by a Bitcoin Core watch-only wallet."
  • Advertise low balance with htlc_maximum_msat. "We now only disable channels when our peer is offline and signal that a channel has very low balance by setting htlc_maximum_msat to a low value."
  • API changes.
    • bumpforceclose can be used to make a force-close confirm faster, by spending the anchor output (#2743)
    • open now takes an optional parameter --fundingFeeBudgetSatoshis to define the maximum acceptable value for the mining fee of the funding transaction. This mining fee can sometimes be unexpectedly high depending on available UTXOs in the wallet. Default value is 0.1% of the funding amount (#2808)
    • rbfopen now takes a mandatory parameter --fundingFeeBudgetSatoshis, with the same semantics as for open (#2808)
  • Use v2. "Eclair uses as one of its sources of blockchain data to detect when our node is being eclipsed. The format of this service is changing, and the older format will be deprecated soon. We thus encourage eclair nodes to update to ensure that they still have access to this blockchain watchdog."
  • Force-closing anchor channels fee management. "Various improvements have been made to force-closing channels that need fees to be attached using CPFP or RBF. Those changes ensure that eclair nodes don't end up paying unnecessarily high fees to force-close channels, even when the mempool is full."
  • Improve DB usage when closing channels. "When channels that have relayed a lot of HTLCs are closed, we can forget the revocation data for all of those HTLCs and free up space in our DB. We previously did that synchronously, which meant deleting potentially millions of rows synchronously. This isn't a high priority task, so we're now asynchronously deleting that data in smaller batches."
  • Correctly unlock wallet inputs during transaction eviction. "When the mempool is full and transactions are evicted, and potentially double-spent, the Bitcoin Core wallet cannot always safely unlock inputs. Eclair is now automatically detecting such cases and telling Bitcoin Core to unlock inputs that are safe to use. This ensures that node operators don't end up with unavailable liquidity."

GitHub Repo