-
Notifications
You must be signed in to change notification settings - Fork 493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make invoice's s
flag mandatory ?
#809
Comments
While technically not possible without breaking backward compatibility (recipient has no idea whether the sender supports it) I think at this point it's unlikely to be a major issue, since all implementations support this feature by now. |
We could test the current network for nodes that don't advertise |
I've run this against our current network DB. |
Well the only nodes that matter are those sending nodes. Which are usually mobile phones, so they aren't counted in the public node feature bit count. Tentatively, |
It's a good point, |
IIRC the rationale behind invoice features was to skirt this issue so that it's now a soft error (feature bit incompatibility) rather finding out after making a payment attempt. As long as senders support invoice features they will at least be given a feature bit error rather than an ambiguous payment error after making an attempt. I'd be very surprised to find folks running economically-relevant nodes that do not have sender-side payment secret support. Even if there are a few, I can't imagine a better use case for flipping a feature to required (slightly) prematurely than for a security-critical feature that prevents loss of funds in transit. I personally wouldn't lose any sleep over choosing to protect all economically-active receivers at the expense of a handful of senders that haven't done a software update in over a year. After all, it's the receiver's money that continues to be at stake if we continue to delay for stragglers that otherwise have no real incentive to upgrade.
Any updates on this? :) |
One question that came up while implementing this is what error to return when a legacy payment hits an invoice requiring payment secrets. My first thought was to continue overloading incorrect-payment-details, maybe there's a better approach? |
That's what we do as well. As you stated before, it would only happen for very old senders who don't even understand the required feature bit in the invoice, so I think it's an ok behavior.
I completely agree, I would also be in favor of setting this to required.
It looks like Breez and BLW correctly support |
BlueWallet and WoS both use |
Most implementations have made this mandatory in their latest releases, so I think we can (finally) close this issue! 🎉 |
Don't you think having most nodes on the network advertise it as required is enough? It will prevent nodes that don't support it from even connecting to the network. But we can also add it to the spec, maybe bundle it with this change #887 that updates the Bolt 11 test vectors to contain a |
@TheBlueMatt done in ec1d4dc, let me know if that sounds good |
See CVE 2020-26896 for context.
The text was updated successfully, but these errors were encountered: