Hello all,

Recently I have implemented BOLT11 in node JS. You can find it on github at
bitcoinjs/bolt11 (check the wip branch, I am still working on tests and
looking at maybe splitting encode up into two functions, encode and sign,
if anyone wants to help)

Here are some comments:

1. There should be a tags_length integer before the first tag. This will
get rid of the awkward dance of parsing from the front and end at the same
time and make it easier to detect poorly encoded data quickly.
2. Why is a description or description commit hash a MUST include tag... it
should be SHOULD.
3. Descriptions say they can encode ASCII only. Sorry, but this is
nonsense. Full unicode support via UTF8 should be supported.
4. There should be a maximum length (in bytes) for description. (Otherwise
why have a commit hash tag at all?)
5. There should be a recommendation for ways for the parsing client to
fetch the commited purpose description data. (Maybe encode a URL after the
32 byte commit hash?)
6. Lightning payment requests can get pretty long, but perhaps there should
be a limit. Apparently bech32 with the given parameters can only handle one
error correction once it is longer than 1023 words.


Now for some things on the BOLT document itself:

1. I made a pull request for adding signature preimage hex data etc. to the
examples to help people writing decoders. Some of the language was unclear
to me and lead to some goof ups.
2. Would be nice to have a fuller set of test cases on the RFC. I will work
on some cases to increase coverage on the bitcoinjs repo. Would be happy
for any help.
-- 
-----------------
Jonathan Underwood
ビットバンク社 技術顧問
-----------------

暗号化したメッセージをお送りの方は下記の公開鍵をご利用下さい。

-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=c+/G
-----END PGP PUBLIC KEY BLOCK-----
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to