Skip to content
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

[feature]: Implement Quiescence #8260

Open
ProofOfKeags opened this issue Dec 7, 2023 · 2 comments
Open

[feature]: Implement Quiescence #8260

ProofOfKeags opened this issue Dec 7, 2023 · 2 comments
Assignees
Labels
dynamic commitments enhancement Improvements to existing features / behaviour spec splicing

Comments

@ProofOfKeags
Copy link
Collaborator

ProofOfKeags commented Dec 7, 2023

This issue tracks implementing Quiescence (stfu).

We need to implement this as a prerequisite for Dynamic Commitments (#7878). This issue will track the design approach.

@ProofOfKeags ProofOfKeags added enhancement Improvements to existing features / behaviour spec dynamic commitments splicing labels Dec 7, 2023
@ProofOfKeags ProofOfKeags self-assigned this Dec 7, 2023
@ProofOfKeags
Copy link
Collaborator Author

ProofOfKeags commented Dec 8, 2023

Here's a proposed plan of action (seeking approach ACK):

  • Implement the wire message
  • Implement a very simple state machine to handle the exchange of stfu messages
  • Put the state machine inside the channelLink
  • Make link ineligible for forwards when quiescent
  • Fail downstream packet adds when quiescent
  • Reset the state machine when the peer disconnects
  • Handle invalid upstream adds/fulfills/fails by recycling the connection
  • Add feature bits

@Roasbeef
Copy link
Member

Roasbeef commented Dec 8, 2023

Reset the state machine when the peer disconnects

As is, I think you'll sorta get this "for free", as if it lives as a sub-component of the link, then it'll be torn down and re-created once the connection is re-established.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dynamic commitments enhancement Improvements to existing features / behaviour spec splicing
Projects
None yet
Development

No branches or pull requests

2 participants