diff --git a/docs/protocol/channels-protocol.html b/docs/protocol/channels-protocol.html index f900f7c593..492f6dc573 100644 --- a/docs/protocol/channels-protocol.html +++ b/docs/protocol/channels-protocol.html @@ -796,6 +796,7 @@ window.addEventListener('click',(e)=>{
TODO: Periodic monitoring where the relay retrieves channel link data to verify its relay link is still listed is planned but not yet implemented.
+When the owner adds a relay to an existing channel:
+Acceptance. The new relay accepts the invitation following the Relay acceptance flow. The owner promotes the relay to active when the channel link's updated relay list is confirmed.
+Announce. If the channel has at least one subscriber, the owner sends x.grp.relay.new (carrying the new relay's short link) to every other currently-connected relay of the channel.
Forward. Each relay forwards x.grp.relay.new to its subscribers. The relay does not create a member record for the announced relay — relays do not connect to other relays of the same channel.
Connect. On receipt, the subscriber resolves the announced short link and connects to the new relay asynchronously.
+The announce is an optimisation. When it does not reach a subscriber — because the channel had no subscribers at announce time, because an older client or relay sits in the path, or because of a transient network failure — the subscriber reaches the same end state on the next channel open via its relay sync against the channel's link data.
A subscriber joins a channel through the following flow:
x.grp.relay.newx.grp.leave