Lightning Implementation Feature Matrix

The Lightning Implementation Feature Matrix lists support information for features of various Lightning Network implementations. It supports developers, startup founders, product managers and Lightning enthusiasts in gathering information for technical evaluations.

Status

The matrix aims to be a dynamic documentation of support information about implementation specific features. Contributions are highly appreciated. Read the contribution guide to learn how and where to contribute. Please use the full screen view to avoid a scrollbar.

⚡ Feature Matrix ⚡

Features Description c-lightning Eclair lnd Rust-
Lightning/
LDK
Electrum LNP Node
Dev.
status
Degree of maturity Mainnet Mainnet Mainnet Testnet Mainnet (beta) Testnet
Platform
support
Support of different computing platforms - Desktop: Linux & other BSD derivatives, macOS, Windows with Cygwin or WSL2
- Mobile: Android
- Web browser: Plugin
- Runs on a POSIX compliant OS in general
- Desktop: Linux, Windows, macOS - as an executable JAR package
- Mobile: native Android, native iOS
- Web browser: Plugin
- IoT platforms: only if they have a JVM
- Desktop: Linux, Windows, macOS
- Mobile SDK for Android and iOS
- Web browser: no, in progress
- IoT platforms with ARM
- Desktop: Ubuntu, Windows, macOS
- Mobile: Android, iOS
- Browser: Chrome with WASM
- IoT/embedded platforms with malloc/free
Desktop: Linux, Windows, macOS
- Mobile: Android
- Desktop: Linux, macOS
- Windows not yet tested
- Mobile: iOS; Android
- Web browser: Not yet; WASM version is planned
- IoT platforms: Raspberry Pi; any ARM, x64 or x86 processor
Bitcoin
client
support
Support of Bitcoin protocol implementations bitcoind 0.16 or above; btcd bitcoind 0.18.1, 0.19.1 or 0.20.1; Electrum Server bitcoind; btcd bitcoind, Electrum Server planned, any blockchain API Electrum server (e.g. bitcoind) Bitcoin Core via Electrum Server
Bitcoin
light client
support
Support of Bitcoin light clients (e.g. BIP 157/158, "Neutrino") Yes, over a pluggable Bitcoin backend to swap out a locally or remotely running bitcoind for an Electrum server Yes, for mobile via Electrum server; No, for Eclair server (requires bitcoind) Neutrino support Sample BIP157 implementation planned; API supports Electrum or BIP 157 filtering Electrum protocol and SPV Electrum Server
Multi-part
payments
LN payments split into two or more parts and sent using a different path for each part Yes, sending and receiving (plus experimenting with matching common payment sizes and adaptive splitting) Yes, sending and receiving Yes, sending and receiving Yes, sending and receiving (routing soon) Implemented already, planned for release 4.1 No, not completed
Dual-funded
channels
A channel opened by a funding transaction containing inputs from both peers No, in the process of being merged No, not supported No, but lnd allows multiple channels between two nodes No No Yes
Multi-funded
channel
Open multiple channels with a single funding transaction Yes No, not supported Yes, through PSBT Yes, with the funding transaction builder (outside of library scope) No No, not completed
PSBT
support
Support of the PSBT address format Yes No, open issue (in-progress) Yes No, outside of library scope, can be built with the rust-bitcoin library Yes Yes
Keysend Send BTC to other nodes without paying an invoice Yes, receiving Yes, sending and receiving Yes, sending and receiving No No Yes
Watch-
tower
support
Service that allows clients to go offline without having to worry about their funds being stolen by a counterparty Yes No Yes No, still R&D for full-spec watchtower, goal for 2021 Yes No, will be using external service
Swaps Service to swap on-chain to off-chain BTC (and vice versa) Plug-in service for non-custodial swaps Custodial swaps for Phoenix Own (non-custodial) service No, a custom application possible over the API Yes, submarine swaps using the Boltz protocol No, not completed
Autopilot Service for opening and managing channels with peers Yes No Yes No, goal for 2021 No No, to be done by external devs via extension
Anchor
outputs
Allows the transaction to be fee bumped Experimental support Experimental support Experimental support (will be turned on by default in a future release) No, see note #642, still not finalized at the spec level No No, in progress
Database
backends
Support for database backends Yes, with PostgreSQL support optionally Sqlite or PostgreSQL Experimental support of etcd Yes - all objects are passed to users via a generic K-V-like API, users can store objects in any method they wish SQLite for the network graph In progress; will support SQLite & PostgreSQL
Channel
backup
Built-in mechanisms for recovering funds Full synchronous backup (plugin) Mobile: Channel backup including states Server: sqlite DB is automatically backed up, PostgreSQL can be configured for automatic replication Static channel backup at channel creation All disk writes are via a generic API, and users can do live or async backups (current work) Static channel backups at channel creation No, external to the node itself
More
features
Collection of further features Available plugins for c-lightning - Experimental support for trampoline payments
- Cluster deployment for horizontal scaling
- Plugin system
- Built-in mechanism for authent. and author. of provided APIs through macaroons
- Reprod. release binaries with upcoming release (with the exception of MacOS
- Abstract key interface for HW support - Trampoline payments in development
- Hardware wallets
- RGB assets, multi-asset channels
- WIP on channel factories, DLCs, DEX

Contributing

Contributions are always welcome. Please read the Contribution Guide.