Announcing lnd v0.6-beta!

Neutrino
Today, we’re excited to announce the latest release of lnd, v0.6-beta! Many items in this release were developed in response to the community feedback we’ve gotten since v0.5-beta and also in response to what we’ve learned as we’ve observed the tremendous growth in the Lightning Network over the last several months.

One of the primary additions to v0.6-beta is improved data backups. Prior to v0.6-beta, cases of data corruption could result in a loss of funds, but the “static channel backups” introduced in v0.6-beta provide for much improved safety in these cases. Another major area of improvement as we move toward the release of our Desktop and Mobile mainnet apps are a series of improvements in usability, routing and performance that will significantly improve the Lightning experience for end users. As usual, we’re always making improvements in compatibility and reliability, and a significant amount of engineering effort went into those areas for this release as well. Finally, we’ve made some behind the scenes architectural improvements that will give lnd developers more flexibility in how they interact with lnd in the future. A description of some the highlights is below, and for the full details, please see the release notes.

Safety


The safety of user funds is always a top priority in lnd and a major new feature in lnd v0.6-beta is the ability to backup user databases to protect funds in cases of data corruption or device loss. With a user’s seed and this new backup scheme, called Static Channel Backups (SCB), lnd now has a standard way to ensure both on-chain and off-chain (in Lightning channels) funds can be backed up and recovered. With “static” channel backups, the backup file only needs to be updated after new channels are created, as opposed to every time funds are sent or received. This is more convenient and simpler for users than “dynamic” backups that update with every transaction, but with the downside that SCB requires that channels be closed in data loss recovery scenarios.

Usability


To make Lightning as accessible as possible to non-technical users, we’re working to automate the process of channel creation and management with the development of lnd’s Autopilot system. In lnd v0.6-beta, we’ve revamped the autopilot architecture to provide for the inclusion of more sophisticated channel management heuristics, particularly node scoring, which will provide external hooks to identify routing nodes that have a history of reliability and good connectivity.

For light client users, we’ve also made a few Neutrino enhancements. Stay tuned for more Neutrino-related improvements slated for lnd v0.7-beta as well. lnd v0.6-beta also includes a few changes to make lnd more reliable for both CLI and app users, and there are also several performance memory usage, and chain efficiency improvements that we hope will contribute to Lightning usability as well.

Routing


As we’ve watched the Lightning Network grow, we’ve identified a series of routing tweaks and optimizations that will make routing faster and more reliable. We’ve also added a new tools to give developers more control over routing.

Another set of changes in lnd v0.6-beta that affect routing are a series of improvements that make channel graph sync more efficient and better able to exclude unnecessary data. This will be even more relevant as we move toward optimizing lnd for mobile devices and other devices with limited bandwidth and connectivity.

Compatibility


As an open-source project and implementation of the open Lightning Network protocol, a number of changes to lnd were made in v0.6-beta to improve interoperability and compatibility.

Developer friendliness


We’ve been excited to see the activity around the creation of Lightning applications based on lnd as well as merchant services and Lightning wallets that use lnd. Through the experience of working with the Lightning developer community as well as through the process of developing our own applications and services, we’ve received a lot of feedback about lnd and about how we can make things better for Lightning developers. lnd v0.6-beta includes a number of changes to the RPC interface that are designed to make lnd easier for developers to work with.

Behind the scenes, we’re always working on improvements that will make lnd more extensible and more flexible for developers. In lnd v0.6-beta, we’ve introduced the concept of “Sub-Servers”, which will allow lnd’s gRPC API to evolve in a more flexible way and expose lower level functionality sush as transactions signing to developers. Sub-Servers are still in development and aren’t yet the default, but this will change as we develop the various Sub-Server APIs over time. Another behind the scenes change that’s in the works is a move to making lnd more modular and making some packages more easily available for use by external projects.

Bug fixes


As with every lnd release, v0.6-beta comes with a number of bug fixes to areas like HTLC handling, channel closes, the gRPC interface, autopilot, Tor support, wallet sync and efficiency, channel updates and accounting.

Summary


As always, we’re incredibly grateful to our users, testers, and contributors for all of the feedback, questions, experiments, and ideas that are helping us to improve lnd and Lightning every day. This release in particular incorporates a lot of learnings from the community as we’ve seen real-world usage grow at an incredible pace that would have been hard to imagine just a short time ago. Please continue to work with us via IRC, Slack, Github or in person via meetups or other venues.