Eclair v0.9.0: Dual Funding, Splicing Prototype, Bolt 12 & More
Eclair (French for Lightning) is a Scala implementation of the Lightning Network.
- "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
auditnow accepts--countand--skipparameters to limit the number of retrieved items (#2474, #2487)sendtorouteremoves the--trampolineNodesargument and implicitly uses a single trampoline hop (#2480)sendtoroutenow accept--maxFeeMsatto specify an upper bound of fees (#2626)payinvoicealways returns the payment result when used with--blocking, even when using MPP (#2525)nodereturns high-level information about a remote node (#2568)channel-createdis a new websocket event that is published when a channel's funding transaction has been broadcast (#2567)channel-openedwebsocket event was updated to contain the finalchannel_idand be published when a channel is ready to process payments (#2567)getsentinfocan now be used with--offerto list payments sent to a specific offer.listreceivedpaymentslists payments received by your node (#2607)closedchannelslists closed channels. It accepts--countand--skipparameters to limit the number of retrieved items as well (#2642)cpfpbumpfeescan 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.confto 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.confto 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-satoshisconfiguration field."