Skip to content

Commit 2f579bd

Browse files
authored
Merge pull request #10 from dunxen/2204-notes
Add notes for PR2204
2 parents 3cb8cd4 + f7aec11 commit 2f579bd

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

_posts/2023-04-27-#2204.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,22 @@ status: upcoming
1010
commit:
1111
---
1212

13-
_Notes and questions to follow soon!_
14-
15-
<!-- TODO: Before meeting, add notes and questions
1613
## Notes
14+
* There are various locations in LN structures where support for certain functionality is advertised and made possible, as enumerated in [bLIP-0002](https://github.com/lightning/blips/blob/master/blip-0002.md):
15+
* [Feature bits](https://github.com/lightning/bolts/blob/master/09-features.md) allows a node to publically advertise support for or requirement of a specific feature. Bits within the range `0-255` are reserved for BOLTs and so can not be used for custom features.
16+
* These feature bits can appear in the following contexts
17+
* `init` message (minimally sized `feature` field bitmask)
18+
* `node_announcement` message (minimally sized `feature` field bitmask)
19+
* `channel_announcement` message (minimally sized `feature` field bitmask)
20+
* BOLT 11 invoices (bLIPs only in range `256-5114` clarified by [bLIPs#24](https://github.com/lightning/blips/pull/24)
21+
* `allowed_features` field of a blinded path
22+
* LN message format: new message types can be used for custom features. Message types within the range `0-32767` are reserved for BOLTs. Custom features (bLIPs) must use types in the range `32768-65535`.
23+
* TLV fields in BOLT messages: included in the trailing TLV stream of a BOLT message. bLIPs must use types greater than `65536`.
24+
* PR2204 adds the methods `provided_node_festures()` and `provided_init_features()` to the `CustomMessageHandler` trait. Implementers are then able to set and provide their own features.
25+
* The PR also adds functionality for setting feature bits that are unknown to LDK with `Features::set_custom_bit()`, but the bit must be in the custom range defined by bLIP 2 of course.
1726

1827
## Questions
19-
1. Did you review the PR? [Concept ACK, approach ACK, tested ACK, or NACK](https://github.com/lightningdevkit/rust-lightning/blob/master/CONTRIBUTING.md#peer-review)?
20-
-->
21-
22-
23-
-->
28+
1. Did you review the PR? Concept ACK, approach ACK, tested ACK, or NACK?
29+
1. What is the `CustomMessageHandler` trait and where do we delegate message handling to an implementer of this trait?
30+
1. Why are custom feature bits in the invoice (I) context limited to the range `256-5114`? Why don't other feature contexts, such as `init`, `node_announcement`, etc, have this specific restriction.
31+
1. Other than specified in the notes, there is another restriction that applies to `Features::set_custom_bit()` for bits in the custom range. What is it and how is it identified?

0 commit comments

Comments
 (0)