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.
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.
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 |
Contributions are always welcome. Please read the Contribution Guide.