Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2/3]: Support Forwarding of Blinded Payments #8160

Merged
merged 16 commits into from
Apr 3, 2024

Commits on Apr 2, 2024

  1. Configuration menu
    Copy the full SHA
    7fd9c2a View commit details
    Browse the repository at this point in the history
  2. hop: add function for calculating forwarding amount

    Co-authored-by: Calvin Zachman <calvin.zachman@protonmail.com>
    carlaKC and calvinrzachman committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    019b8fa View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2024

  1. multi: add option to disable route blinding, rejecting at link

    Add an option to disable route blinding, failing back any HTLC with
    a blinding point set when we haven't got the feature enabled.
    
    Note that this commit only handles the case where we're chosen as the
    relaying node (where the blinding point is in update_add_htlc), we'll
    add handling for the introduction node case once we get to handling of
    blinded payloads).
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    040fcb0 View commit details
    Browse the repository at this point in the history
  2. htlcswitch: add blinding kit to handle encrypted data in blinded routes

    This commit introduces a blinding kits which abstracts over the
    operations required to decrypt, deserialize and reconstruct forwarding
    data from an encrypted blob of data included for nodes in blinded
    routes.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    03f6c5c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ca6d414 View commit details
    Browse the repository at this point in the history
  4. htlcswitch: add NextBlinding to ForwardingInfo and set in UpdateAddHtlc

    When we have a HTLC that is part of a blinded route, we need to include
    the next ephemeral blinding point in UpdateAddHtlc for the next hop. The
    way that we handle the addition of this key is the same for introduction
    nodes and relaying nodes within the route.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    da76d05 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1e6fae3 View commit details
    Browse the repository at this point in the history
  6. multi: return parsed types from payload

    To separate blinded route parsing from payload parsing, we need to
    return the parsed types map so that we can properly validate blinded
    data payloads against what we saw in the onion.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    2029a06 View commit details
    Browse the repository at this point in the history
  7. htlcswitch: set forwarding information from encrypted data

    If we received a payload with a encrypted data point set, our forwarding
    information should be set from the information in our encrypted blob.
    This behavior is the same for introduction and relying nodes in a
    blinded route.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    6d41037 View commit details
    Browse the repository at this point in the history
  8. htlcswitch: reject HTLCs that use use as introduction if disabled

    Reject any HTLCs that use us as an introduction point in a blinded
    route if we have disabled route blinding. We have to do this after
    we've processed the payload, because we only know we're an introduction
    point once we've processed the payload itself.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    7e4f3d3 View commit details
    Browse the repository at this point in the history
  9. lntest: add setup for blinded route forwarding itest

    Note: the itest is broken up into multiple commits to make it
    more readable, they can be squashed post-review.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    a72aaa3 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    58dda83 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    69e1162 View commit details
    Browse the repository at this point in the history
  12. lntest: dispatch and intercept payment to blinded route

    We don't support receiving blinded in this PR - just intercept and
    settle instead. The HTLC's arrival on the interceptor indicates that
    it was successfully forwarded on a blinded hop.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    0d9a184 View commit details
    Browse the repository at this point in the history
  13. lncfg: disable allowing blinded routes in daemon but not itests

    This commit turns off route blinding for the daemon while we're waiting
    on full handling for blinded errors. The feature remains on for itests
    so that tests covering blinding can run as usual.
    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    6e5eead View commit details
    Browse the repository at this point in the history
  14. docs: release notes 18.0

    carlaKC committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    2188dd9 View commit details
    Browse the repository at this point in the history