Blinded paths with unannounced introduction nodes#3132
Merged
tnull merged 8 commits intolightningdevkit:mainfrom Jun 19, 2024
Merged
Blinded paths with unannounced introduction nodes#3132tnull merged 8 commits intolightningdevkit:mainfrom
tnull merged 8 commits intolightningdevkit:mainfrom
Conversation
When creating blinded paths for receiving onion messages, allow using the recipient's only peer as the introduction node when the recipient is unannounced. This allows for sending messages without going through an intermediary, which is useful for testing or when only connected to an LSP with an empty NetworkGraph.
When creating blinded paths for receiving onion payments, allow using the recipient's only peer as the introduction node when the recipient is unannounced. This allows for sending payments without going through an intermediary, which is useful for testing or when only connected to an LSP with an empty NetworkGraph.
When using advance_path_by_one when we are the introduction node, any error will result having the first hop of the input blinded path removed. Instead, only remove the first hop on success. Otherwise, the path will be invalid.
Similar to blinded paths for onion messages, if given a blinded payment path where we are the introduction node, the path must be advanced by one in order to use it.
DefaultRouter will ignore blinded paths where the sender is the introduction node. Similar to message paths, advance such paths by one so that payments may be sent to them.
When creating blinded paths, introduction nodes are limited to peers with at least three channels to prevent easily guessing the recipient. Relax this check when the recipient is unannounced since they won't be in the NetworkGraph.
2046b4a to
c1eda4b
Compare
TheBlueMatt
approved these changes
Jun 18, 2024
| .map(|details| details.counterparty.node_id) | ||
| .map(|node_id| first_hops | ||
| .iter() | ||
| .skip(1) |
Collaborator
There was a problem hiding this comment.
nit: you dont need to skip this its always equal :)
Contributor
Author
There was a problem hiding this comment.
That's why I'm skipping it :)
This was referenced Jun 21, 2024
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.
When creating blinded paths for receiving onion messages or payments, allow using the recipient's only peer as the introduction node when the recipient is unannounced. This allows for sending messages or payments without going through an intermediary, which is useful for testing or when only connected to an LSP with an empty
NetworkGraph.Also add support for paying through a
BlindedPathwhere we are the introduction node.Fixes #2952.