Skip to content

Commit 99d67c6

Browse files
ProofOfKeagsrustyrussell
authored andcommitted
require quiescence sessions to be single-use
1 parent 5dd9d9c commit 99d67c6

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

02-peer-protocol.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1468,6 +1468,11 @@ The receiver of `stfu`:
14681468
Upon disconnection:
14691469
- the channel is no longer considered quiescent.
14701470

1471+
Dependent Protocols:
1472+
- MUST specify all states that terminate quiescence.
1473+
- NOTE: this prevents batching executions of protocols that depend on
1474+
quiescence.
1475+
14711476
### Rationale
14721477

14731478
The normal use would be to cease sending updates, then wait for all
@@ -1481,6 +1486,14 @@ considered to be the channel funder (the sender of `open_channel`).
14811486
The quiescence effect is exactly the same as if one had replied to the
14821487
other.
14831488

1489+
Dependent protocols have to specify termination conditions to prevent the need
1490+
for disconnection to resume channel traffic. An explicit resume message was
1491+
[considered but rejected](https://github.com/rustyrussell/lightning-rfc/pull/14)
1492+
since it introduces a number of edge cases that make bilateral consensus of
1493+
channel state significantly more complex to maintain. This introduces the
1494+
derivative property that it is impossible to batch multiple downstream protocols
1495+
in the same quiescence session.
1496+
14841497
## Channel Close
14851498

14861499
Nodes can negotiate a mutual close of the connection, which unlike a

0 commit comments

Comments
 (0)