Eclair v0.9.0: Dual Funding, Splicing Prototype, Bolt 12 & More

Eclair (French for Lightning) is a Scala implementation of the Lightning Network.

Eclair v0.9.0: Dual Funding, Splicing Prototype, Bolt 12 & More
  • "This release contains a lot of preparatory work for important (and complex) lightning features: dual-funding, splicing and Bolt 12 offers."
  • "These features are now fully implemented in eclair, but we're waiting for the specification work to be finalized 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 potential backwards-incompatible changes!"
  • "We also make plugins more powerful, introduce mitigations against various types of DoS, and improve performance in many areas of the codebase."

What's new

  • Dual funding. "Eclair is now up-to-date with the latest state of the dual funding specification. This feature is disabled by default, because the specification may not be final yet."
  • Splicing prototype. "Eclair now supports a custom prototype for splicing. This prototype differs from the current proposal: we've found multiple improvements that will be added to the specification. We are actively working with other implementations to be able to release this important feature in a future version of eclair."
  • Data model. "The database model has been completely reworked to handle splices. Mainly, a channel can have several commitments in parallel."
  • Offers. "We continued working on Bolt 12 support, and made a lot of updates to this experimental feature."

API Changes

  • audit now accepts --count and --skip parameters to limit the number of retrieved items (#2474, #2487)
  • sendtoroute removes the --trampolineNodes argument and implicitly uses a single trampoline hop (#2480)
  • sendtoroute now accept --maxFeeMsat to specify an upper bound of fees (#2626)
  • payinvoice always returns the payment result when used with --blocking, even when using MPP (#2525)
  • node returns high-level information about a remote node (#2568)
  • channel-created is a new websocket event that is published when a channel's funding transaction has been broadcast (#2567)
  • channel-opened websocket event was updated to contain the final channel_id and be published when a channel is ready to process payments (#2567)
  • getsentinfo can now be used with --offer to list payments sent to a specific offer.
  • listreceivedpayments lists payments received by your node (#2607)
  • closedchannels lists closed channels. It accepts --count and --skip parameters to limit the number of retrieved items as well (#2642)
  • cpfpbumpfees can be used to unblock chains of unconfirmed transactions by creating a child transaction that pays a high fee (#1783)

Misc improvements and bug fixes

  • Strategies to handle locked utxos at start-up. Eclair offers three strategies to handle locked utxos that won't be used to fund future transactions.
  • Add plugin support for channel open interception. "Eclair now supports plugins that intercept channel open requests and decide whether to accept or reject them. This is useful for example to enforce custom policies on who can open channels with you."
  • Configurable channel open rate limits. "We have added parameters to eclair.conf to allow nodes to manage the number of channel open requests from peers that are pending on-chain confirmation."
  • Configurable limit on incoming connections. "We have added a parameter to eclair.conf to allow nodes to track the number of incoming connections they maintain from peers they do not have existing channels with. Once the limit is reached, Eclair will disconnect from the oldest tracked peers first."
  • Removed funding limits when Wumbo is enabled. "We removed the eclair.channel.max-funding-satoshis configuration field."

GitHub Repo
Full Release Notes