Skip to content

Conversation

@ekzyis
Copy link
Owner

@ekzyis ekzyis commented Dec 18, 2025

No description provided.

@ekzyis
Copy link
Owner Author

ekzyis commented Dec 18, 2025

image

@ekzyis ekzyis force-pushed the bolt11 branch 7 times, most recently from 7903a50 to 5fba195 Compare December 24, 2025 15:04
@ekzyis
Copy link
Owner Author

ekzyis commented Jan 2, 2026

What I learned, in no specific order, without any judgement:

  1. There's no test for valid invoices with n (public key of payee node) as a tagged field1
  2. payment_secret is important. Without it, all forwarding nodes could steal overpaid amount by probing the destination first with less.
  3. You need to partially implement bolt09 to implement bolt11
  4. Links between BOLTs can be confusing because of inconsistencies, historical artifacts, spec vs real-life etc.
  5. The spec is not as clear as I expected it to be, but I also don't have a lot of experience with implementing network protocol spec, only with two cipher specs (ChaCha20 and NIP-44). I was quite surprised by how "patched together" it read.
  6. high-S vs low-S signatures
  7. public key recovery
  8. bech32 encoding
  9. LND's bolt11 implementation

Footnotes

  1. I'm considering to contribute one

@ekzyis ekzyis force-pushed the bolt11 branch 2 times, most recently from 0143982 to 3418dc4 Compare January 3, 2026 13:20
@ekzyis ekzyis force-pushed the develop branch 2 times, most recently from d179799 to dcd5853 Compare January 3, 2026 13:31
@ekzyis ekzyis merged commit fe43916 into develop Jan 3, 2026
@ekzyis ekzyis deleted the bolt11 branch January 3, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants