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

Define a mechanism for looking up an offer from a user/domain pair #1136

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Commits on Aug 11, 2023

  1. BOLT 1: add bip340sig type.

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    f0e4fc7 View commit details
    Browse the repository at this point in the history
  2. BOLT 1: Add utf8 type.

    It's far easier to validate these on parsing than to hand-validate them
    elsewhere.
    
    I didn't turn `alias` or `error` into this, though they're similar
    (`alias` can have a nul terminator).
    
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    21cc0ba View commit details
    Browse the repository at this point in the history
  3. tools/spellcheck.sh: more generally ignore things inside ``.

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    5bd55f2 View commit details
    Browse the repository at this point in the history
  4. BOLT 12: offers, sixth draft

    A BOLT11 "invoice" has proven too low-level for human use in many
    scenarios.  Efforts like lnurl have covered the gap, but integrating
    some of such higher layers into the lightning protocol itself has many
    advantages.
    
    This draft defines three new things:
    
    1. A new invoice format.  I know, this is painful, but it maps almost
       1:1 to the current format (though signatures are very different),
       is easier to implement, and easier to send via the lightning
       network itself.
    
    2. Formats for an "offer", which for all intents and purposes serves
       as the new, persistent invoice for users.
    
    3. Format for an "invoice_request": this is a message sent via the
       lightning network itself to receive the real invoice, or can
       be used directly in a send-money scenario (e.g. ATM).
    
    The offer (for accepting payments) or invoice_request (for sending
    payments) are usually presented via a QR code or similar, the replies
    are sent using onion messages.  Each copies fields from the prior so
    it stands alone, to allow statelessness.
    
    Features which have been deliberately omitted for the initial version:
    - Recurrence.
    - Invoice replacement ("don't accept that old payment!")
    - Payer proof for refunds.
    
    I need to thank everyone who gave detailed feedback, particularly:
    
    1. Thomas H of ACINQ (https://github.com/thomash-acinq)
    2. Joost Jager (https://github.com/joostjager)
    3. Aditya Sharma (https://github.com/adi2011)
    4. Rene Pickhardt (https://github.com/renepickhardt)
    5. Bastien Teinturier (https://github.com/t-bast)
    6. Valentine Wallace of LDK (https://github.com/valentinewallace)
    7. Matt Corallo of LDK (https://github.com/BlueMatt)
    8. Jeffrey Czyz of Square Crypto (https://github.com/jkczyz)
    
    Also @bjarnemagnussen, @ellemouton, @animatedbarber, @617a7a,
    @instagibbs, and @eupn.
    
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    fdc8f23 View commit details
    Browse the repository at this point in the history
  5. BOLT 4: add bolt12 payloads to onion message payloads.

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    92deb12 View commit details
    Browse the repository at this point in the history
  6. fixup! BOLT 12: offers, sixth draft

    Regenerated bolt12/signature-test.json; for some reason jq reordered a
    few fields, but it now shows the complete signature.
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    e2c3a85 View commit details
    Browse the repository at this point in the history
  7. fixup! BOLT 12: offers, sixth draft

    bolt12/format-string-test.json is now a valid offer.
    rustyrussell committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    0be484d View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2023

  1. bolt12: add test vectors for offers.

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    rustyrussell committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    fe6c2c6 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2023

  1. Allow using short_channel_id in onion messages

    Offers may contain blinded paths to allow for greater recipient privacy.
    However, they come at a cost of increased QR code size as each hop
    requires a 33-byte `point` for the `next_node_id`. Allow using
    `short_channel_id` instead, which only requires 8 bytes.
    
    Still allow for use of `next_node_id` for cases where the blinded path
    may not involve channel counterparties or for long-lived offers, which
    may outlive the given channels.
    jkczyz authored and rustyrussell committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    ba2b95a View commit details
    Browse the repository at this point in the history
  2. Add a sciddir_or_pubkey fundamental type

    Offers may contain blinded paths to allow for greater recipient privacy.
    However, they come at a cost of increased QR code size as the
    introduction node requires a 33-byte `point`.
    
    Define a new `sciddir_or_pubkey` fundamental type such that either a point or a
    reference to one in a `channel_announcement` can be used. This is
    backwards compatible with `point`.
    
    Use this new type for the `blinded_path` subtype's `first_node_id`.
    jkczyz authored and rustyrussell committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    3db064e View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. Configuration menu
    Copy the full SHA
    9118a8f View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2024

  1. Configuration menu
    Copy the full SHA
    a3f3815 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5809dfd View commit details
    Browse the repository at this point in the history