Announcing the New Lightning Terminal: From Pleb to Web! 🕸️
Today we're excited to announce that we're bringing Lightning Terminal to the web, providing a simple web UI for node operators to improve the quality and liquidity of their node. The goal of this new release is to make running a Lightning node simpler, easier, and more accessible, lowering the barrier to instant, high volume, low fee bitcoin transactions for all. With this launch, we're taking a major step toward managing a Lightning node in a secure, private, and non-custodial manner by enabling a web-based experience to easily monitor, manage, and measure nodes.
This new release provides node operators with a personalized web-based dashboard, network explorer, and access to our suite of liquidity tools. Beyond this initial version of node management tools, we plan to launch more fee setting, channel opening, and send/receive features within Terminal to meet the needs of Lightning developers. The web version of Lightning Terminal is made possible by a new open source connection protocol called Lightning Node Connect (LNC). Today we're also releasing LNC in beta, which allows for a secure, private connection between a node and browser.
Today's launch is just the beginning and continues our work to lower the barrier to entry for developers and node operators, helping the Lightning Network grow in an efficient and distributed manner.
Lowering the operational barrier for node operators plays a key role in empowering Lightning developers. With easier node operations, more developers can build novel use cases to solve everyday practical problems for users to help deliver bitcoin to billions. Over the past year, there have been many clear examples: from the adoption of Lightning to power bitcoin as a monetary network in El Salvador to cross-border payments with Lightning to streaming sats for content creators to Twitter integrating tips with Lightning. Furthermore, we've seen explosive growth of Lightning nodes driven by a combination of new technologies, new use cases, and new communities. The ability to set up and run a Lightning node has been democratized by user-friendly products like Umbrel, Raspiblitz, and MyNode along with the guidance from platforms like Voltage and Amboss, tools like RTL and ThunderHub, and communities like Plebnet and LNPlus. In the past few months alone, Plebnet, a community of plebs running and teaching others to run Lightning nodes, has grown to thousands of active community members.
At Lightning Labs, we believe the Lightning Network enables internet-native digital money with bitcoin. Lightning Labs is focused on building the most developer-friendly infrastructure and tools to support the incredible developers, entrepreneurs, and node operators building on Lightning. This release is another step forward on our mission to bring bitcoin to billions.
Connecting your Node
In order to use the new node management features, users will need to first connect their node to Terminal. This is enabled by Lightning Node Connect (LNC), which allows for a secure and private connection between a browser and your node. Initially, to connect to a node, users will need to be running the self-hosted Lightning Terminal daemon, which is made easily available through app stores on node interfaces such as Umbrel, Raspiblitz, and MyNode. For more information on how to get up and running with any LND node configuration, check out our Builder's Guide post on connecting your node.
A Dashboard Personalized for You
Once connected, users are guided through the process of onboarding and running a Lightning node with a personalized dashboard. From the beginning stages of setting up a node, users will be shown their Health Check status, which gives an indication of the node's ability to route payments on the Lightning Network. In this onboarding state, the focus of the dashboard is on setting up channels to improve the quality of their node. Node operators can open a channel through the open channel button or through the recommended channels provided in their dashboard.
Once a node passes all health checks, the dashboard evolves to emphasize node rank, an empirical measure of node quality, and key routing information such as number of transactions routed and fees earned. Using Lightning Terminal, node operators can see their rank, centrality on the network, and health check status. Users will be able to easily view the number of payments forwarded over certain time periods and monitor channel balances, open channels, and see recent transaction activity.
Terminal also serves as an interface for our two liquidity services, Loop and Pool, to make it easier for developers, companies, and node operators to send and receive transactions on Lightning through the efficient allocation of capital. Loop helps users manage liquidity on the network by providing an on- and off-ramp for funds, and Pool is a marketplace for those running nodes to buy and sell access to channel liquidity on the network.
How Lightning Node Connect Works
Lightning Node Connect (LNC) is a novel way to create an end-to-end encrypted connection between a Lightning Network node (initially on LND, but it could extend to other implementations) and a web browser. It exposes no credentials or private information (such as HTLCs) to the proxy in the middle. It uses modern end-to-end cryptography and WASM (Web Assembly) to make it more flexible for further expansion. It's also based on a custom gRPC transport (using the Noise Protocol Framework), which solves the issue of being able to easily connect to a node without needing a TLS (Transport Layer Security) certificate or macaroon.
The connection to the node consists of three separate parts:
Lightning Node Connect, which is running as part of Lightning Terminal daemon (litd), connected to the Lightning node and typically runs on the same machine or network as the node. This is where macaroons, Lightning-native authorization credentials, are created, requests and data are forwarded between node and user, and where the connection to the proxy server is made.
A proxy, also called Traversal Using Relays around NAT (TURN), establishes two semi-synchronous pipes through which the user and their node can communicate. This proxy service improves the user experience for nodes set up behind a NAT or firewall.
The application, for instance this version of Lightning Terminal, is delivered by a web server and runs in the user's browser. It is also conceivable for this application to run as a standalone application, for example on a smartphone.
Furthermore, Lightning Node Connect is an open source tool that developers will be able to use to build apps connecting nodes to the web in a private, secure manner. We're excited to see what the developer community makes with it!
Privacy and Security
With Terminal and Lightning Node Connect, node operators can securely connect their browser to their node with an end-to-end encrypted connection made via a proxy. As a result, Lightning Labs can only see encrypted packets along the route. Node data, such as channel and on-chain balances, remains private. We maintain aggregate usage statistics about how many nodes are actively connected to Lightning Terminal.
For more detailed information on LNC, see the open source code.
Future Work
At Lightning Labs, we're creating the technology to make it as easy as possible to build on bitcoin with Lightning. With the new Lightning Terminal, we're providing a simple, web-based UI to make the process of running a Lightning node as seamless as possible. We plan to add features to meet the needs of a variety of different users including improved recommendations, liquidity automation, and better fee management tools.
Further, our new Lightning Node Connect protocol enables nodes to be securely connected to any Lightning app from the browser. We can envision all sorts of new use cases that this will unlock with Lightning.
Finally, we want to thank all of those who helped test and provide feedback to make this release possible (special shout out to the plebs!) And as always, we love to hear from our community, so reach out on Twitter or join our developer Slack to let us know what you think, get help, or ask questions about Terminal or LNC. To a pleb-powered future!🔮