Blockstream just announced the release of the beta for c-lightning. The 0.6 release of c-lightning, which is one of the three available Lightning Network implementations, is described as “an important milestone” for the project, and it includes a complete rewrite of the previous implementation.
This version of c-lightning is the first fully specification-compliant release of the implementation. It migrates away from the protocol used while designing the specification, moving towards a new architecture that is modular and extensible.
As part of today’s announcement, Blockstreamalso released growth statistics for its other Lightning Network products. Blockstream claims Lightning Network adoption “has grown tremendously” since the company launched the Blockstream Store in January.
c-lightning, along with Eclair and Ind, is one of three implementations of the Lightning Network.
When the Blockstream Store was launched in January 2018, there were a total of 46 open Lightning Network channels with 0.685 BTC in collective capacity. Today, there are roughly 7,800 open channels with 26 BTC in capacity – an increase of 16,856% in channels and 4,084% in channel capacity.
What’s New in the C-Lightning Beta?
The beta launch of c-lightning is a significant upgrade over previous builds. As mentioned above, Blockstream claims they completely rewrote the previous implementation to create a fully specification-compliant release of c-lightning. The end result is a platform that’s more modular and extensible and better able to adapt to the needs and infrastructure of users.
Some of the new features in the c-lightning beta 0.6 include:
Previous releases of c-lightning required a full bitcoind node running alongside the implementation to provide access to the bitcoin network. The beta release of c-lightning still requires the bitcoin-cli utility to be present, but the utility can now talk to remote nodes as well, including lightweight nodes like spruned. This would make it possible to run a c-lightning node on a Raspberry Pi and any other low-powered device.
The beta release of c-lightning 0.6 has an updated gossip protocol. The gossip protocol now uses a more lightweight bandwidth mechanisms that asks for specific information instead of exchanging full network views like the previous release. This is another important improvement for low-powered devices and mobile devices. Under previous implementations, such devices would spend a lot of bandwidth and energy downloading and verifying information they already have.
The c-lightning JSON-RPC interface and supporting libraries have been redesigned in order to minimize changes in future releases. The API stability is designed to make it easier for other projects to build on top of c-lightning. Blockstream claims they “will support this version of the API for the foreseeable future.”
Wallet and Sync:
C-lightning now comes with a full-featured wallet managing both on-chain and off-chain funds. That means an end to raw transaction handling. All funds are automatically tracked and returned to the internal wallet as soon as possible. No user interaction is required.
No More Long Blockchain Rescans:
Because c-lighnting now has a wallet, the blockchain tracking on that wallet maintains an interval view of the blockchain, which means no more long blockchain rescans.
The c-lightning 0.6 beta now supports TOR. With c-lightning’s beta, you can connect to nodes over the TOR network, auto-register as a hidden service, and accept incoming connections over TOR.
New Payment Logic:
Blockstream has overhauled payment logic on the 0.6 beta release of c-lightning. The platform now supports automatic retries for routing failures, randomization of route selection, and better feedback about the current state of a payment.
Blockstream claims to have implemented a number of major performance improvements into the beta release of c-lightning.
Overall, Blockstream claims there are “far too many features in the 0.6 release to list”. The features above are the most important changes mentioned in today’s Blockstream blog post.
C-Lightning’s Beta is Now More Modular And Flexible
Blockstream’s c-lightning implementation is designed to be more modular and flexible. To make the beta more flexible, Blockstream introduced a number of independent communication processes, each with its own responsibilities. This allows better integration into a user’s infrastructure and needs.
Gossipd and hsmd, for example, are particularly noteworthy for their modular design.
Gossipd manages a local view of the network and is responsible for finding a path from the source of a payment to its destination.
Hsmd, on the other hand, manages all operations that touch cryptographic materials and controls the funds in the channel.
By separating c-lightning’s core functions into multiple daemons, Blockstream has boosted the flexibility of the platform while also improving node security. Attackers can’t directly interface with anything that touches private keys, and each subsystem independently verifies the consistency of the internal state. If an inconsistency is detected, the peer is disconnected.
What’s Next for C-Lightning?
What does Blockstream have planned for c-lightning and the Lightning Network next?
Blockstream, like most tech companies, seeks to constantly add “features and enhancements, as well as improvements to performance, stability, and usability” to their implementation. They’re encouraging users to file an issue on Github if they have helpful feedback.