You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2023-04-27-#2204.md
+16-8Lines changed: 16 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,14 +10,22 @@ status: upcoming
10
10
commit:
11
11
---
12
12
13
-
_Notes and questions to follow soon!_
14
-
15
-
<!-- TODO: Before meeting, add notes and questions
16
13
## 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.
17
26
18
27
## 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