feat: add ldk-server lightning provider#672
Open
benthecarman wants to merge 1 commit into
Open
Conversation
Owner
|
IMO the rabbitmq events are nice but I would keep this PR simpler and have that be a future change |
Author
We are likely changing out rabbitmq with SSE, would that be better? |
Integrate ldk-server as a ThunderHub lightning provider using its gRPC API. The provider supports core wallet, channel, payment, invoice, peer, forward, graph, and event flows while documenting the remaining gaps. Keep ldk-server connections resilient to gRPC session errors and avoid sending explicit amounts for fixed-amount BOLT11 invoices.
Author
|
@apotdevin sorry for delay but ldk-server has stablized a lot more now, updated the PR accordingly if you want to review :) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds ldk-server as a Lightning provider, enabling ThunderHub to manage LDK-based Lightning nodes alongside LND. The provider communicates with ldk-server over HTTP using protobuf serialization and HMAC-SHA256 authentication.
Supports node info, channels (open/close/config), on-chain wallet, payments (bolt11/keysend), invoices, peers, forwards, message signing, network graph queries, routing fee configuration, and invoice decoding. Real-time event notifications (invoice paid, payment sent, forwards) are available via optional RabbitMQ integration.
Account configuration uses the existing YAML config with
type: ldk-server,serverUrl, andauthToken(hex-encoded API key). Optional fields includetlsCertPathfor TLS certificate verification andrabbitmqUrl/rabbitmqExchangeNamefor real-time events.See
docs/LDK_SERVER_SETUP.mdfor the full setup guide anddocs/LDK_SERVER_GAPS.mdfor a detailed breakdown of features that ldk-server doesn't yet support (closed channel history, chain transactions, UTXOs, payment destinations, backups).I tested basically everything I could, seems like it all works besides what is highlighted in the gaps file.
Draft as we still iron out some ldk-server things