-
Notifications
You must be signed in to change notification settings - Fork 491
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
Fee requirement for closing_signed is unclear #499
Comments
See lightning/bolts#499 for a bit more about the ambiguity we're addressing here. Also drop holding cell update_fee the same way we drop holding cell update_add_htlcs when sending shutdown, resolving a bug.
See lightning/bolts#499 for a bit more about the ambiguity we're addressing here. Also drop holding cell update_fee the same way we drop holding cell update_add_htlcs when sending shutdown, resolving a bug.
See lightning/bolts#499 for a bit more about the ambiguity we're addressing here. Also drop holding cell update_fee the same way we drop holding cell update_add_htlcs when sending shutdown, resolving a bug.
See lightning/bolts#499 for a bit more about the ambiguity we're addressing here. Also drop holding cell update_fee the same way we drop holding cell update_add_htlcs when sending shutdown, resolving a bug.
I agree to try to strict the conditions. I think that closing_signed should be sent in the following state.
|
Same but concise expression
|
This is the case pointed out by nayuta-gondo at lightning/bolts#499 (comment) though this doesn't actually solve the issue of ensuring we have a consistent fee view when we start shutdown processing. There isn't a clear solution to that however without adding additional state tracking in Channel. This also removes an associated test that tests for the correct behavior (but didn't consider the bug) as we no longer behave correctly. This should be fine as we'll be removing all the update_fee garbage with option_simplified_commitment anyway.
This is the case pointed out by nayuta-gondo at lightning/bolts#499 (comment) though this doesn't actually solve the issue of ensuring we have a consistent fee view when we start shutdown processing. There isn't a clear solution to that however without adding additional state tracking in Channel. This also removes an associated test that tests for the correct behavior (but didn't consider the bug) as we no longer behave correctly. This should be fine as we'll be removing all the update_fee garbage with option_simplified_commitment anyway.
This is the case pointed out by nayuta-gondo at lightning/bolts#499 (comment) though this doesn't actually solve the issue of ensuring we have a consistent fee view when we start shutdown processing. There isn't a clear solution to that however without adding additional state tracking in Channel. This also removes an associated test that tests for the correct behavior (but didn't consider the bug) as we no longer behave correctly. This should be fine as we'll be removing all the update_fee garbage with option_simplified_commitment anyway.
I am a bit curious if anybody knows if there is any programmatic/tool-based way to write a protocol spec to avoid issues like this? |
Hopefully this becomes much better with #1096. |
closing_signed only requires that no HTLCs remain in either commitment transaction, but then goes on to say that fee_satoshis must be less than or equal to the base fee of the "final commitment transaction". It is, however, not clear which commitment transaction it references especially if you have in-flight update_fee updates waiting on the full commitment dance. eg in case of async message delivery:
SHOULD A now have to send its closing_signed? It has no HTLCs in either commitment transaction, but has different commitment transactions here. And if it should, which fee does it have to meet?
I guess there are two obvious solutions, change the closing_signed SHOULD timing to say that the two commitment transactions have to be the same tx number (which seems way simpler), or clarify which fee needs to be met.
The text was updated successfully, but these errors were encountered: