Our Lightning Desktop App Is Now on Mainnet!

by Tankred Hase and Valentine Wallace

Today we’re excited to announce the first alpha release of the Lightning App for desktop on Bitcoin mainnet. This is still an early version targeted at testers, but it will give advanced users and developers a chance to start experimenting with a Lightning UX where users control their own funds powered by our Neutrino light client technology.

This desktop release supports macOS, Windows, and Linux. It also represents an important stepping stone towards mobile while we continue to invest in performance and stability. We’re working as quickly as we can to get our mainnet iOS and Android apps out soon.

App Home Screen

Driving this release is a complete commitment to scaling the principles that Bitcoin was built on: privacy, security, and self-determination. For that we need to go beyond custodial solutions and enthusiast guides and deliver a great user experience for everyone. Scaling Bitcoin and Lightning to everyone means not requiring people to follow complex setup processes or hand over control of their funds to trusted counterparties. For everyone to truly explore what is possible with the Lightning Network, we needed to build a wallet that knocks down these barriers-to-entry and demonstrates what is possible when technology fights for the user.

Enter Neutrino

In a previous post we went into detail about Neutrino and the advantages it has for users. We encourage curious readers to dig into the technology behind this emerging standard, but in a nutshell: Neutrino is a light client specification that allows non-custodial Lightning wallets to verify Bitcoin transactions with improved privacy, minimized trust, and without needing to sync the full Bitcoin blockchain (which is about 200 GB). Instead, apps only need to download and verify tens of megabytes worth of filter headers in a matter of minutes. This enables non-custodial solutions on mobile phones as well as other low-powered devices.

New Features

Background Neutrino Sync

We also wanted to give an update on new features in the app that we’ve introduced since our last post on the testnet alpha release. For one, syncing the Neutrino client is now much faster and begins in the background while the user writes down her recovery phrase (a.k.a mnemonic seed). Our goal with this new feature is for lnd to already be fully synced by the time the user has written down and verified their seed.

Background Neutrino Sync

Unified Homescreen Balance

We have also updated the home screen with a unified balance that includes on-chain as well as Lightning funds. The percentage of funds that are allocated to payment channels is displayed as a percentage below.

Unified Home Screen

Clicking on the percentage breakdown now takes users to the “dark mode” channels page with more advanced details.

Channels Screen

Mainnet By Default

By default the app will start in mainnet mode starting with v0.5.0-alpha. If you installed the app prior to v0.5, there is nothing extra you need to do to use mainnet. Just open the current testnet version and install the update when prompted. Mainnet will then be enabled by default after restarting. Users can still opt into testnet using CLI flags, but mainnet will be the default going forward. To prevent confusion the app displays TESTNET at the top of the wallet when the app is started in testnet mode.

Smarter Autopilot

Advanced users can also now disable the Autopilot feature in the app settings and manage their channels manually if they chose to. Since we want to make the technology as accessible as possible, Autopilot will still be enabled by default when user start the application for the first time.

Autopilot Settings

Selecting which node to open a channel to is something we don’t want our users to burden themselves with. This goal led to the development of the “autopilot” technology within lnd. The latest release of lnd v0.6-beta revamped the system internally to leverage a new scoring-based system. This scoring-based system lends well to combining several heuristics into one unified channel selection model. The latest version of autopilot within lnd also allows these scores to be provided externally. Over the past few months, we’ve been running active network level analysis to determine which nodes are acting as effective routing nodes in the network today. The version of autopilot bundled with this application leverages both graph level information from lnd, and active network level information from our system to suggest well connected nodes that actively manage the liquidity of their channels. Selecting a set of initial channels is an important part of bootstrapping new users to the Lightning Network, and with this new system, we’ll ensure that our users’ very first channels act as reliable gateways to the Lightning Network.

A note on receiving payments

This release is primarily targeted at users who want to test spending and sending Lightning payments, as there are still UX challenges to overcome to automatically get inbound capacity for channels. We’re working on integrating our Lightning Loop service to make it easier for users to receive Lightning payments and top off their channels in future releases of the App. In the meantime, users can receive if they have enough inbound capacity e.g. after sending a few payments.

Craefulgang!

We’d like to remind users that this is still very early technology and there’s a risk of losing all of your funds. While testing the current alpha version of the software, we advise users to not put more money in the app than they are willing to lose. There’s also a good amount of work left to be done, which will add to the app’s security in the future. We still have to undergo a security audit and integrate watchtowers, which mitigate potential attacks if the app stays offline for extended periods of time.

Try the alpha release on mainnet today!

  1. Download the latest release for your OS: https://github.com/lightninglabs/lightning-app/releases
  2. Fund your wallet with a small amount of BTC in Sats
  3. Wait a few minutes for the wallet to sync. Once completed, the app will open payment channels automatically. The funding transactions need to confirm just like regular on-chain transactions.
  4. Go to a site that supports Lightning like https://yalls.org, https://pollofeed.com, and https://ln.pizza
  5. That’s it!

Our releases are signed by Lightning Labs and have auto update enabled. Considering that users will likely keep small amounts of pocket money in their wallet, we feel that this solution offers a good compromise between security and convenience while keeping users up to date with the newest security patches. If users don’t feel comfortable with this setup, they can also build the app from the source code (which won’t trigger auto update). Note also that the application code is open source and licensed under GPLv3.

We’re excited to hear your feedback as this release represents an important step in an ongoing conversation with users. You can reach us via Twitter @lightning, via email at [email protected], by opening an issue on GitHub, or our other developer resources. Thanks in advance for your input!

Acknowledgements

This release would not have been possible without the support of the whole team, specifically the lnd developers that have to split their time between maintaining routing network stability and addressing application specific issues. Special thanks to @roasbeef, @bitconner, @johanth, and @millisatoshi for their work on Neutrino.