diff --git a/docs/xor.md b/docs/xor.md index 08477f3..51fa97a 100644 --- a/docs/xor.md +++ b/docs/xor.md @@ -9,13 +9,13 @@ If both sides of the sync have common events, then this protocol will use less b We'll call the two sides engaged in the sync the client and the relay (even though the initiating party may be another relay, not a regular client). 1. Client selects the parameters of a reconcilliation query and sends it to the relay: - * A subscription ID that will be used by each side to identify which query a message refers to - * A nostr filter, as described in [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md), or an event ID whose `content` contains the JSON-encoded filter - * The truncation byte size for IDs, called `idSize. An integer between 8 and 32, inclusive. -2. Both sides collect all the events they have stored/cached that match this filter. -3. Each side sorts the events by their `created_at` timestamp. If the timestamps are equivalent, events are sorted lexically by their `id` (the canonicalised hash of the event). -4. Client creates an initial reconcilliation message and sends it to relay. -5. Each side processes an incoming message and replies with its own outgoing message, along with a list of "have IDs" and "need IDs", stopping when one party receives an empty message. + * A subscription ID that will be used by each side to identify which query a message refers to + * A nostr filter, as described in [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md), or an event ID whose `content` contains the JSON-encoded filter + * The truncation byte size for IDs, called `idSize. An integer between 8 and 32, inclusive. +1. Both sides collect all the events they have stored/cached that match this filter. +1. Each side sorts the events by their `created_at` timestamp. If the timestamps are equivalent, events are sorted lexically by their `id` (the canonicalised hash of the event). +1. Client creates an initial reconcilliation message and sends it to relay. +1. Each side processes an incoming message and replies with its own outgoing message, along with a list of "have IDs" and "need IDs", stopping when one party receives an empty message. ## Nostr Protocol