From ee373546c53ec2e50f026c5f8730ae41cfad3e93 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 25 Mar 2025 15:26:51 +0100 Subject: [PATCH] =?UTF-8?q?Clarify=20what=20=E2=80=9Cpartial=E2=80=9D=20me?= =?UTF-8?q?ans=20for=20follower=20synchronization=20(#1623)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/en/spec/activitypub.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/spec/activitypub.md b/content/en/spec/activitypub.md index c819c9db..a246f697 100644 --- a/content/en/spec/activitypub.md +++ b/content/en/spec/activitypub.md @@ -861,12 +861,12 @@ Secure mode is the foundation upon which "limited federation mode" is built. A M ### Follower synchronization mechanism -Mastodon has a concept of "followers-only" posts, but expanding the followers collection is currently handled at the destination rather than at the origin (i.e., not with explicit addressing). Therefore, a mechanism to detect synchronization issues and correct them is needed. This mechanism must work on partial followers collections, rather than the full collection (which may not be public information). +Mastodon has a concept of "followers-only" posts, but expanding the followers collection is currently handled at the destination rather than at the origin (i.e., not with explicit addressing). Therefore, a mechanism to detect synchronization issues and correct them is needed. This mechanism must work on partial followers collections, rather than the full collection (which may not be public information). This collection is partial in the sense that it only contains the followers from a specific instance, but it MUST contain all of those followers. A follower being omitted from the collection would lead to that follow relationship getting severed. When delivering a message to a remote user, an optional `Collection-Synchronization` HTTP header is attached, following the same syntax as the `Signature` header, with the following attributes: - `collectionId` = MUST be the sender's `followers` collection -- `url` = a URL to a partial collection containing the identifiers of the sender's followers residing on the receiver's instance. MUST reside on the same domain as the actor itself, and SHOULD be only accessible with a signed query from the receiver's instance +- `url` = a URL to a partial collection containing the identifier of every one of the sender's followers residing on the receiver's instance. MUST reside on the same domain as the actor itself, and SHOULD be only accessible with a signed query from the receiver's instance - `digest` = hexadecimal representation of the XORed SHA256 digests of each of the identifiers in the partial collection Example: