Blockstream / greenlight

Build apps using self-custodial lightning nodes in the cloud
https://blockstream.github.io/greenlight/getting-started/
MIT License
106 stars 28 forks source link

track: commitment transaction desync VLS <> CLN #431

Open cdecker opened 2 months ago

cdecker commented 2 months ago

This is a tracking issue for the root cause of a number of issues, listed at the bottom. The issue at hand is that up until #7027 we had an issue that could result in the signer state being updated, but the CLN state not reflecting that change. With #7027 this issue has been resolved, however nodes that were in this situation cannot back out of it, as that would equate to a replay of an old state, and the validation is there to explicitly prevent that.

If VLS were to implement a mode (as a SimpleValidatorFactory argument?) that tells VLS to temporarily opt out of the enforcement of this policy, we could use that to get the nodes unstuck, close the channel, and get back to a situation where the VLS and the CLN state match up again.

Discussing this with @ksedgwic, the signer will always sign based on its local state, and so the options are two:

The VLS team will likely know which variant (a) fits better with their general architecture, and (b) cause the least amount of disturbance for what is after all a relatively rare occasion (that could manifest in different ways in the future, so a clean architecture and extensibility is desirable here to get users unstuck).

Related issues