Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# LDK-Server

**LDK-Server** is a fully-functional Lightning node in daemon form, built on top of
[LDK-Node](https://github.com/lightningdevkit/ldk-node), which itself provides a powerful abstraction over the
[Lightning Development Kit (LDK)](https://github.com/lightningdevkit/rust-lightning) and uses an in-built
[Bitcoin Development Kit (BDK)](https://bitcoindevkit.org/) wallet.

The primary goal of **LDK-Server** is to provide an efficient, stable, and API-first solution for deploying and managing
a Lightning Network node. With its streamlined setup, **LDK-Server** enables users to easily set up, configure, and run
a Lightning node while exposing a robust, language-agnostic API via [Protocol Buffers (Protobuf)](https://protobuf.dev/).

### Features

- **Out-of-the-Box Lightning Node**:
- Deploy a Lightning Network node with minimal configuration, no coding required.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if it should be mentioned here or elsewhere, but might be worth stating what can be configured somewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is mentioned in "Configuration" section right before ## building

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean at a more high-level like you can provide your own KvStore, etc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine to leave out now if we don't have a way of configuring that, of course.

Copy link
Contributor Author

@G8XSU G8XSU Dec 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't configure kvstore right now without forking


- **API-First Design**:
- Exposes a well-defined API using Protobuf, allowing seamless integration with HTTP-clients or applications.

- **Powered by LDK**:
- Built on top of LDK-Node, leveraging the modular, reliable, and high-performance architecture of LDK.

- **Effortless Integration**:
- Ideal for embedding Lightning functionality into payment processors, self-hosted nodes, custodial wallets, or other Lightning-enabled
applications.

### Project Status

🚧 **Work in Progress**:
- **APIs Under Development**: Expect breaking changes as the project evolves.
- **Potential Bugs and Inconsistencies**: While progress is being made toward stability, unexpected behavior may occur.
- **Improved Logging and Error Handling Coming Soon**: Current error handling is rudimentary(specially for CLI), and usability improvements are actively being worked on.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we already speak about more of the planned features, e.g., LSP service integration? Or rather not to not spill the beans just yet?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine to include that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are many features planned or upcoming. I didn't mention those because it wouldn't be exhaustive.
This list only includes stability/critical list for general readiness. 😅
As in what is required to get out of "wip" status.

- **Pending Testing**: Not tested, hence don't use it for production!

We welcome your feedback and contributions to help shape the future of LDK-Server!


### Configuration
Refer `./ldk-server/ldk-server.config to see available configuration options.

### Building
```
git clone https://github.com/lightningdevkit/ldk-server.git
cargo build
```

### Running
```
cargo run --bin ldk-server ./ldk-server/ldk-server.config
```

Interact with the node using CLI:
```
./target/debug/ldk-server-cli -b localhost:3002 onchain-receive # To generate onchain-receive address.
./target/debug/ldk-server-cli -b localhost:3002 help # To print help/available commands.
```