Building out a payments infrastructure that doesn’t rely on the centralised banking system, can be used anywhere in the world, added to any internet-connected device is a hard problem to fix. No single company has been able to succeed, and it doesn’t look like it ever will. Instead, we would need a reliable network that can process all payments, a network that has no downtime, a network that is resistant to attack, and a network that is digitally native and open to everyone.
We now have that network in bitcoin, but getting users to interact with it, is a step further.
Bitcoin is built on open-source technology, which means anyone who wants to build on it can do it, but that’s easier said than done. Many entrepreneurs and app developers don’t want to deal with the nitty-gritty of bitcoin; they’re focused on creating polished products with a satisfying customer experience.
So they choose to avoid bitcoin because of these pain points and reduce bitcoins reach.
If bitcoin and its various protocols could become an easy plug-and-play service for app developers, if businesses and websites can slap on a wallet module and get it to talk to the bitcoin network, in theory, we should see more adoption.
And this adoption hurdle looks to be tackled by the Lightning Developer kit.
After much hush and research, Spiral, a subsidiary of Square (Block Inc), had enough information on bitcoin and the Lightning Network to feel confident enough to release its Lightning Development Kit – (LDK).
LDK aims to help developers integrate Lightning with their bitcoin wallet applications. As such, the kit contains a treasure trove of valuable information. This info includes data such as API, language bindings, and demo apps. Consequently, the tools make integrating bitcoin and lightning into your app or platform easier, safer, and more customisable.
What is LDK?
Lightning Development Kit (LDK) is a library that allows you to build a lightning node without worrying about implementing low-level lightning logic correctly. Based on Rust-Lightning, a full-featured but also incredibly flexible lightning implementation allows developers and entrepreneurs to decide how to use it.
Lightning Development Kit (LDK) is a full and completely standalone Lightning implementation with supporting modules enabling greater flexibility. You can leverage LKD to build a Lightning node without needing to worry about getting all of the Lightning state machine, routing, and on-chain punishment code (and other chain interactions) exactly correct. LDK tends to be suitable for use cases where a degree of customisation is desired, e.g. your own chain sync, your own key management and/or your own storage/backup logic.
🔨 Contributing to the ecosystem
The LDK team maintains Rust-Lightning, which they rely on to build and run LDK, while also maintaining several other open source projects like:
- LDK C Bindings – Main LDK C bindings on which other bindings are built
- LDK Garbage Collected – LDK bindings for garbage-collected languages e.g. Java
- LDK Swift – LDK Swift bindings for iOS
- LDK Sample – Sample node implementation using LDK
- LDK Documentation – Our open-source documentation
Why use LDK?
The LDK abstracts low-level Lightning logic away, removing barriers to implementing the Lightning Network and allowing developers to focus on their applications’ inner workings. Programmers can then seamlessly leverage a flexible implementation of Bitcoin’s layer-2 protocol to plug into the scaling network.
Once implemented, LDK enables instant bitcoin payments on games, apps, and any other application that would benefit from having a bitcoin wallet.
Multi-language support
LDK supports native API’s including Rust, C, Swift, Java & Kotlin, so you can build Lightning applications in your preferred programming language.
Custom persistent storage
LDK API’s let you choose how to backup channel state. This gives you multi-wallet device access and lets you save state locally, to the cloud or to an alternative backup scheme.
Custom block data sources
Use a local full node, an SPV node, or your own Electrum server with API access to source data about the blockchain and feed it to LDK for decision-making about whether to sign a state update.
Single wallet
No need to create separate bitcoin & Lightning wallets, forcing users to back up an additional recovery phrase. Instead, LDK lets you define your own wallet and create one unified experience.
Use cases for LDK?
The standard Lightning use case runs a standalone node on one’s laptop. Here are some other use cases that LDK supports.
Mobile devices
Mobile devices with Lightning have unique requirements often not well served by today’s Lightning ecosystem. Not only do they need to operate with minimal footprint, they also have intermittent data access and cannot shut down safely. More importantly, many existing wallets already have business logic to handle blockchain data, keys, and storage and do not wish to duplicate much of that logic to integrate Lightning (at worst, fetching the blockchain twice).
LDK offers a flexible API to allow users to integrate Lightning with their own keys, blockchain data, and storage. To allow full flexibility in footprint, the API supports routing data being fetched via the Lightning P2P protocol, an external service, or routes that can be calculated off-device. It also provides cross-platform compatibility for free, allowing synchronization of Lightning state across devices and, as long as there is protection from simultaneous updates, users to access their wallet on any device.
HSMs (Hardware Security Modules)
LDK Supports various HSM configurations. In conjunction with the Lightning Signer project (opens new window), an external HSM can be used to verify most protocol details about states before signing, ensuring host compromise cannot steal funds by broadcasting revoked states.
For nodes seeking a higher level of assurance, the entire LDK channel state machine can be run on an offline device, communicating with the outside world via a proxy host which maintains TCP connections with peers. Such a configuration ensures all details of the Lightning protocol are enforced without consideration of host compromise.
Production lightning nodes
Many large Bitcoin transactors have large amounts of custom-built infrastructure for interacting with the Bitcoin blockchain. Such tight integration with business logic may be difficult with existing Lightning implementations focusing on standalone operations.
For such transactors, LDK offers the possibility of integrating a library in their native runtime, storing and handling Lightning data and events like they do blockchain events.
Get the app
If you’ve been curious about LDK and want to give them a try, then check out their site and GitHub, where they open-source the code so bitcoin app developers can review and start to integrate these services into their products.
If you have an application idea or a platform you think could benefit from adding bitcoin and Lightning support, then you should check out LDK or chat with the team directly to see how they can help you support bitcoin in your service.
Sources:
If you want to learn more about Lightning Developer Kit and dive down the rabbit hole, we recommend checking out the following resources.
Are you a bitcoin and Lightning fan?
Have you been using bitcoin, the lightning network and other protocols built on the network? Would you like to see bitcoin integrated into your web experience, or do you think it’s only for holding?
Let us know in the comments down below.