Skip to content

Commit

Permalink
bol09: Specify behavior when a node specifies both optional and requi…
Browse files Browse the repository at this point in the history
…red features

While reviewing a patch on lnprototest, I encountered a scenario
where the BOLT 9 specification needed to provide clear guidance.

As a result, this commit adds specific requirements to
determine the appropriate behaviour when a node specifies
both optional and required features.

Additionally, if this situation appears to be an
implementation bug, it will be taken care of accordingly.

Reported-by: lnprototest
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
  • Loading branch information
vincenzopalazzo committed Aug 14, 2023
1 parent e0995c9 commit ec59f7c
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions 09-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,14 @@ The origin node:
unless indicated that it must set the odd feature bit instead.
* MUST NOT set feature bits it does not support.
* MUST NOT set feature bits in fields not specified by the table above.
* MUST NOT set both the optional and mandatory bits.
* MUST set all transitive feature dependencies.
* MUST support:
* `var_onion_optin`

The origin node MUST support:
* `var_onion_optin`
The receiving node:
* if both the optional and the mandatory feature bits in a pair are set,
the feature should be treated as mandatory.

The requirements for receiving specific bits are defined in the linked sections in the table above.
The requirements for feature bits that are not defined
Expand Down

0 comments on commit ec59f7c

Please sign in to comment.