Closed fiatjaf closed 4 years ago
This is normal and happens when a node announces custom or experimental features, which uses higher position bits and this expands the featurebits vector to those dimensions.
In this case it seems like the nodes are signalling feature 103 which I could not find documentation about anywhere.
This happens to be a node I manage, and I run current rc1 without fancy feature-registering plugins (wild guess: maybe keysend ?)
EDIT: They are all running C-lightning and surely rc1 (mine and Rusty's for sure the others don't advertise it), so this must be something we introduced.
Interesting, I didn't know plugins could change the advertised featureset of the node. Saw it now.
@fiatjaf why did you close this ? I don't think we should advertise feature bit 103 (and not 55, the keysend one)
I don't know, I thought it was something a rogue plugin could do and it ended there. I also thought I was running rc1 but it seems that for some reason I'm not. Let me see what happens when I upgrade.
Yeah, I actually was on master
, but for some reason getinfo
keeps saying I'm on 0.8.0: v0.8.0-504-g10f47b4
. And I have nothing like that on my features string.
How did you check it ? listnodes <yourid>
?
Interesting, I dismissed this initially because I couldn't find the number 103 in the codebase, but it seems I was misusing the feature_bit
API. Digging now.
Ok, after checking further I found a real bug in the way the keysend
plugin (based on libplugin
) registers its features. Turns out I was adding a dict-key called featurebits
in libplugin
. This matches what the docs said, but not what I implemented.
lightningd
looks for a key called featurebits
and, not finding it, it was just discarding whatever libplugin
was telling it.
I fixed that in #3673
After further inspection I also finally found the origin of feature bit 103 being set:
This is the new blinded path messaging framework implemented by @rustyrussell in #3623. These features are defined in their mandatory form (102) and then added to the featurebit vector depending on the copy-mode, which for this one is to make it options (103). So the mystery is finally solved, and we even fixed something along the way :-)
Issue and Steps to Reproduce
This one, for example, is it because the node is advertising a very unusual featureset or is it some bug in the parsing code?
Apparently it happens only with these four nodes: