Blockstream, a leading developer in blockchain and financial cryptography announced that the team has released version 0.6 of c-lightning, a Lightning Network implementation in C. The c-lightning implementation is a go-to code and specification for enterprise Lightning Network deployments on Bitcoin and is what powers Blockstream’s Lightning Charge HTTP Rest API.
An important milestone for the project, this release is a complete rewrite of the previous implementation and is the first fully specification-compliant release of c-lightning. It migrates away from the protocol used while designing the specification toward a new architecture that is modular and extensible and better equipped to adapt to developer needs and infrastructure.
The Blockstream c-lightning team remarked that today was a significant day in the growth and development of the Lightning Network: All three of the Lightning implementations (Eclair, lnd, and c-lightning) are now in beta.
Lightning Network Growth
The Lightning Network has grown steadily since the introduction of the Blockstream Store in January. The team says that around the announcement of the Blockstream Store, the Lightning Network had a total of 46 open channels and 0.682 BTC in capacity.
Today, there are roughly 7,800 open channels with 26 BTC of capacity. That is a 16,856% rise in channels and a 4,084% increase in channel capacity in less than 6 months.
Lightning Network Growth, Credit: Blockstream
New features in the c-lightning 0.6 release
- Lightweight nodes: Previous releases required a full
bitcoindnode running alongside c-lightning, to provide access to the Bitcoin network. This release still requires the
bitcoin-cliutility to be present, but it can now talk to remote nodes as well, including some lightweight nodes such as
spruned. This makes it possible to run a c-lightning node on Raspberry Pis as well as other low-powered devices.
- The gossip protocol has been updated to use a more lightweight bandwidth mechanism that asks for specific information, rather than exchanging full network views as the previous release did. This is particularly important for low-powered and mobile devices that would otherwise spend a lot of bandwidth and energy downloading and verifying the information they already have.
- API stability: The c-lightning JSON-RPC interface and supporting libraries have been redesigned in order to minimize changes in future releases. This API stability should make it easy for other projects to build on top of c-lightning because Blockstream will support this version of the API for the foreseeable future, maintaining backward compatibility, should the team introduce any changes.
- Wallet and sync: c-lightning now includes a full-fledged wallet that manages both on-chain and off-chain funds. There is no more raw transaction handling. All funds are automatically tracked and returned to the internal wallet as soon as possible, with no user interaction required. In addition, the blockchain tracking now maintains an internal view of the blockchain, ending long blockchain rescans.
- TOR support: c-lightning now supports connecting to nodes over the TOR network, auto-registering as a hidden service, and accepting incoming connections over TOR.
- The payment logic has undergone a major overhaul to support automatic retries for routing failures, randomization of route selection, and better feedback about the current state of a payment.
- Other performance improvements.
On future plans, the Blockstream team said:
“Our work with c-lightning is far from done; we are constantly working on features and enhancements, as well as improvements to performance, stability, and usability. Didn’t find your favorite feature? Have some feedback that might be helpful? Why not file an issue on Github, drop us a line on the mailing list, or contact us on IRC.”
“In parallel, we are also contributing to the advancement of the Lightning specification itself and are actively researching what the next iteration of the protocol could look like through initiatives like our eltoo proposal and upstream Bitcoin proposals such as
“We’d like to thank the many contributors who have not only contributed code to c-lightning, but also those who were #reckless enough to test and give feedback about what works and what could be improved. And finally, we’d like to thank the other Lightning Network teams, ACINQ and Lightning Labs, as well as all individual contributors that pitched in to make the Lightning Network community such a pleasant, collaborative and open environment!”