Announcing lnd 0.11-beta: Let's Get Ready to Wumbo!
We’ve come a long way since the early #craeful days of the Lightning Network. When building, tinkering, and experimenting, we’ve always encouraged the community to use caution when using the network. To keep your funds safu, Lightning channel sizes were limited to a maximum of 0.1677 BTC. After two years of hard work and extensive testing from the community, we have reached a point where we feel comfortable removing these constraints for those who want larger channels. With this release of
lnd v0.11-beta, we now support Wumbo, channels over the 0.1677 BTC limit! We view shipping Wumbo in
lnd v0.11-beta as a sign that the software has progressed to a point where advanced users, companies, and node operators can opt in to larger channels.
But it doesn’t stop with Wumbo. The
lnd v0.11-beta release includes experimental support for database replication (backups that can resume channel operations in case of hardware, network, or power failures), a number of developer-focused improvements that provide more fine-grained control and reporting from
lnd, and numerous safety and reliability improvements. Alongside other recent releases, such as Multi-Path Payments and Multi-Loop, we hope the new version of
lnd with Wumbo makes it easier to use Lightning and opens up new possibilities on bitcoin!
Keep reading for more on Wumbo and the rest of the
lnd v0.11-beta release features. For additional details check out the
lnd v0.11-beta release notes.
The most readily apparent change in
lnd v0.11-beta is support for the removal of channel size limits. In 2018, when
lnd v0.3-beta was initially released for Mainnet, channel sizes were limited to a maximum of 0.1677 BTC. This was done as a safety precaution to discourage node operators from holding large amounts of BTC in a single channel or on a single node. In the early days, before the Lightning Network had gone live with real funds at stake, the scope of possible attacks was unknown, and how well Lightning node implementations like
lnd would hold up under real-world conditions was uncertain.
Two years later, as the network has grown, matured, and been tested much more extensively, these limits have become less relevant for advanced users. A number of larger routing nodes, merchants, and service providers having already removed them from
lnd by forking the code. For those who’ve been following LN development for a while, channels larger than the 0.1677 BTC limit were dubbed “wumbo” channels, and Wumbology has become a favorite pastime in the dev community. Along with the recently released MPP, larger, wumbo-sized channels make it possible for nodes to service larger transactions and higher transaction volumes while reducing on-chain fees and overhead required to open and manage a larger number of smaller channels.
lnd v0.11-beta, it’s now possible to start
lnd with the
--protocol.wumbo-channels option, which removes enforcement of channel size limits. Note that while
lnd and the Lightning Network have come a long way over the last two years, users should still be aware that Lightning wallets are “hot” wallets and are exposed to a variety of risks inherent in storing funds on internet-connected devices. As such, care should be taken to mitigate these risks when possible. For network participants who are doing larger transaction volumes with larger channels, we recommend reviewing the operational security guide in the
Another security precaution we recommend for publicly advertised nodes is to use the
Channel Acceptor feature in
lnd to implement configurable channel size limits that fit the node operator’s use case and risk profile.
Related to securing nodes that control larger amounts of bitcoin, one of our longstanding goals has been to improve backups in
lnd so that in case of a hardware or network failure, a node with a properly backed up database could continue operating seamlessly. With the existing Static Channel Backup (SCB) data loss protection system, recovering data corruption or loss requires closing existing channels. While this protects funds from being lost, it’s inconvenient, particularly for high-volume nodes operating many channels.
lnd v0.11, we’ve added initial support for database replication via
etcd. This is still an early experimental release of this feature and isn’t recommended for production deployments. However, we would encourage those who are interested to try it out and report any issues or feature requests. In future
lnd versions, we plan to explore other database options such as SQL backends as well.
Another significant reliability improvement in
lnd v0.11 fixes a series of bugs that were causing unintended force closes when channels were restarted. For some larger services and node operators, these erroneous force closes were particularly troublesome and a significant amount of development effort in
lnd v0.11 was spent understanding and resolving these somewhat subtle reliability issues.
lnd v0.11-beta adds support for node operators to advertise their nodes by domain name rather than by IP address only as was the case previously. This is much more convenient for node operators operating with dynamic IP addresses.
lnd v0.11-beta feature targeted at more sophisticated node operators is the addition of payment path constraints. This allows a payment sender to specify a set of channels that should be included when determining a payment’s route. This is particularly useful for channel rebalancing.
lnd v0.11-beta, developers will now have more fine-grained control over transaction creation with the addition of concurrent-safe external support for coin selection. This allows developers to specify UTXOs for use in channel creation or on-chain transactions. Along with the previously added support for transactions that draw funds from multiple sources (Partially Signed Bitcoin Transactions),
lnd will be able to support more complex multi-party protocols in the future.
Developers exploring new Lightning use cases have asked for more granular control over how transactions are processed. This allows them to apply additional custom logic when deciding how and when to handle a particular transaction, rather than simply processing all transactions as immediately as possible. In
lnd v0.11, the HTLC Interception API can support use cases like “notify to pay” which can send notifications to mobile users and wait to forward payments until the user reconnects to the network.
lnd v0.11-beta also adds support for Hodl Keysend Payments which allows payment receivers to add checks (like ensuring a payment amount is correct) before accepting the funds.
In addition to more granular controls, developers have made a number of requests for more detailed information about the state of transactions processed by
lnd. This additional information can be helpful when trying to help customers whose payments haven’t been completed or to help understand why a node or channel may not be behaving as expected. Some of the more detailed APIs include a more comprehensive
CloseChannelSummary that provides additional detail about closed channels and a
ListSweeps API that provides details about the set of transactions that have moved funds from Lightning channels and transactions back to on-chain addresses. Some smaller informational improvements were made as well.
For developers who use
lnd’s REST API, there was a significant improvement, primarily enabling REST of all experimental APIs (subservers), including MPP payments. WebSockets support was also added to provide a better experience for REST developers using
lnd’s streaming RPC calls.
lnd v0.11-beta contains several significant safety improvements. Static Channel Backups (SCB) have been made more robust. The API for PSBT channel funding was improved to make it harder to broadcast an unrecoverable transaction, and channel breach data is now properly cleaned up.
Under the hood
lnd v0.11-beta, there were a number of underlying changes made that will be less visible to users. Indexing by
payment_addr is a necessary change for the development of Atomic Multipath Payments (AMP). The build process was also improved for
lnd’s code contributors, making it easier to test additional operating systems. The modularization and isolation of
lnd packages were also improved.
Shipping Wumbo and
lnd v0.11-beta is a significant milestone for lnd, signaling a major step towards a more mature network. We are committed to building products that make it easier for others to build on Lightning, and we hope lifting payment limits will make the network more flexible and efficent for users, node operators, and businesses.
We’re inspired by the work done by those in the Lightning community, and we featured many of their latest developments in our most recent newsletter. We greatly appreciate those of you who have worked with us on
lnd in any capacity (coding, testing, suggesting, bug reporting, questioning) and also Spongebob Squarepants for his contribution of endless Wumbo memes. If you haven’t already, please join the
lnd Slack, reach out on Twitter, email us, join the lnd mailing list, or subscribe to our newsletter!