Update 4354-sticky-events.md

kegan/persist-edu
Kegan Dougal 2 months ago committed by GitHub
parent 8f0e3ceb78
commit 3c26e3b2ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -139,6 +139,9 @@ Sticky messages MAY be sent in the timeline section of the `/sync` response, reg
or not they exceed the timeline limit[^ordering]. If a sticky event is in the timeline, it MAY be or not they exceed the timeline limit[^ordering]. If a sticky event is in the timeline, it MAY be
omitted from the `sticky.events` section. This ensures we minimise duplication in the `/sync` response JSON. omitted from the `sticky.events` section. This ensures we minimise duplication in the `/sync` response JSON.
When sending sticky events down `/sync`, the `unsigned` section SHOULD have a `sticky_duration_ttl_ms` to indicate
how many milliseconds until the sticky event expires. This provides a way to reduce clock skew between a local homeserver
and their connected clients. Clients SHOULD use this value to determine when the sticky event expires.
Over Simplified Sliding Sync, Sticky Events have their own extension `sticky_events`, which has the following response shape: Over Simplified Sliding Sync, Sticky Events have their own extension `sticky_events`, which has the following response shape:
@ -312,6 +315,12 @@ to their own clients to produce the same outcome. Federation equivocation is mit
persisted in the DAG, as servers can talk to each other to fetch all events. There is no way to protect against persisted in the DAG, as servers can talk to each other to fetch all events. There is no way to protect against
dropped updates for the latter scenario. dropped updates for the latter scenario.
Servers may lie to their own clients about the `unsigned.sticky_duration_ttl_ms` value, with the aim of making
certain sticky events last longer or shorter than intended. Servers can already maliciously drop sticky events
to lose updates, and the lack of any verification of the event hash means servers can also maliciously alter the
`origin_server_ts`. Therefore, adding `unsigned.sticky_duration_ttl_ms` doesn't materially make the situation worse.
In the common case, it provides protection against clock skew when clients have the wrong time.
## Unstable Prefix ## Unstable Prefix
- The `stick_duration_ms` query param is `msc4354_stick_duration_ms`. - The `stick_duration_ms` query param is `msc4354_stick_duration_ms`.
@ -319,6 +328,7 @@ dropped updates for the latter scenario.
- The `/sync` response section is `msc4354_sticky`. - The `/sync` response section is `msc4354_sticky`.
- The sticky key in the `content` of the PDU is `msc4354_sticky_key`. - The sticky key in the `content` of the PDU is `msc4354_sticky_key`.
- To enable this in SSS, the extension name is `org.matrix.msc4354.sticky_events`. - To enable this in SSS, the extension name is `org.matrix.msc4354.sticky_events`.
- The `unsigned.sticky_duration_ttl_ms` field is `unsigned.msc4354_sticky_duration_ttl_ms`
## Addendum ## Addendum

Loading…
Cancel
Save