From 5fc7441d533632e563a93b219b81da42e1e38a97 Mon Sep 17 00:00:00 2001 From: Diogo Peralta Cordeiro Date: Tue, 18 Jan 2022 15:19:59 +0000 Subject: [PATCH] Add FEP-2100. --- feps/assets/fep-2100/linksCollection.png | Bin 0 -> 56038 bytes feps/fep-2100.md | 130 +++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 feps/assets/fep-2100/linksCollection.png create mode 100644 feps/fep-2100.md diff --git a/feps/assets/fep-2100/linksCollection.png b/feps/assets/fep-2100/linksCollection.png new file mode 100644 index 0000000000000000000000000000000000000000..267f07ee831a7b490386b4fcb55da33bcea7ce25 GIT binary patch literal 56038 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 DRaNvK literal 0 HcmV?d00001 diff --git a/feps/fep-2100.md b/feps/fep-2100.md new file mode 100644 index 0000000..fd075b6 --- /dev/null +++ b/feps/fep-2100.md @@ -0,0 +1,130 @@ +--- +authors: Diogo Peralta Cordeiro +status: DRAFT +dateReceived: 2022-03-31 +--- +# FEP-2100: Unbound Group and Organization + +This FEP wasn't a result of my individual work but rather of the joint effort in this [SocialHub discussion](https://socialhub.activitypub.rocks/t/decentralised-group/2200) and, prior to that, the discussion in GNU social's IRC/XMPP with rozzin (Joshua Judson Rosen) and someonewithpc (Hugo Sales). + + +## Summary + +Historically, after the sudden death of a popular instance, one could neither target groups hosted at it anymore nor contact the whole followers collection to let them know of the new instance housing a certain group. If we always have absolute knowledge of the complete followers collection (or good enough), we can automate based on which instance has more local followers which server would become the new house. Another alternative would be to automatically archive the old group and start again from scratch. + +This FEP, on the other hand, discusses something very different of automatically moving an actor from one server to a different one. It is about collaboration between different group or organization actors to promote an unified experience between the participants of the linked group actors. We think this may be easier, more flexible, and promote a better UX than only notifying the actor that the house of a certain group has moved, but both solutions would probably achieve similar results in the above use case. + +This proposal introduces an interpretation of a Group following another Group and the `gs:unbound` attribute. This allow two groups (or organization) to "act as one" (not exactly, but elaborated afterwards). + +This primarily aims at effectively removing a central point of authority for groups, but offers more than that. With this, `@alice@undefinedhackers.net` can mention a group named hackers (!hackers) or even address an activity To `!hackers@instance.gnusocial.test` (C2S) and let her instance's !hackers announce to other instances' !hackers. + +Finally, this proposal is general enough to allow a server to simultaneously have `!lug@server` (without links), `!lug-unbound@server` (with the greatest links collection it can grow), and `!lug-with-some-links@server` (with only some links). It doesn't require linked groups to have the same `preferredUsername`. + + +## Notation and Definitions + +To keep things simple, sometimes you will see things formatted like `Activity{Object}`. For example, `Create{Note}` would be a `Create` activity containing a `Note` in the object field. +Also, we will focus in Actor of type `Group`, but nothing should stop from using this for `Organization`. + +* `@nickname@server` will be used to refer Actors of type Person or Application. +* `!nickname@server` will be used to refer Actors of type Group or Organization. +* `@#!group@server#collection` will be used to refer collection `collection` of `!group@server`. + +The key words MAY, MUST, MUST NOT, SHOULD, and SHOULD NOT are to be interpreted as described in [RFC2119]. + + +### Links between Groups terminology + +![Links terminology explained schematically](assets/fep-2100/linksCollection.png) + + +## ActivityStreams 2.0 requirements for this mechanism + + +### Example Group Actor in this FEP + +```json +{ + "type": "Group", + "streams": [], + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "gs": "https://www.gnu.org/software/social/ns#" + }, + { + "unbound": { + "@id": "gs:unbound", + "@type": "@id" + } + } + ], + "id": "https://instance.gnusocial.test/group/hackers", + "unbound": true, + "preferredUsername": "hackers", + "endpoints": { + "sharedInbox": "https://instance.gnusocial.test/inbox.json" + }, + "inbox": "https://instance.gnusocial.test/group/hackers/inbox.json", + "outbox": "https://instance.gnusocial.test/group/hackers/outbox.json", + "following": "https://instance.gnusocial.test/group/hackers/subscriptions", + "followers": "https://instance.gnusocial.test/group/hackers/subscribers", +} +``` + + +## Creating a link between two group actors + +Creating a directed link between two group actors is just a regular Follow request between any two actors. + +Assume that `!hackers@instance.gnusocial.test` sends a Follow request to `!lug@gnusocial.net`. + +If `gs:unbound: false` or not present, then if `!lug@gnusocial.net` accepts the Follow request, it will Announce{*} entering its inbox to `!hackers@instance.gnusocial.test`. + +If `gs:unbound: true`, then `!lug@gnusocial.net` will both accept the Follow request and submit a Follow request of its own to `!hackers@instance.gnusocial.test`. + +If both `!hackers@instance.gnusocial.test` and `!lug@gnusocial.net` have added each other to their linksTo, they will act as if they were the same group. If they have equivalent `groupLinks` collections, then they are essentially fully mirrored groups. + +_Note_ that the "Link negotiation" happens between two Group actors (S2S). + + +### Some scenarios + + +#### 1. Group A follows Group B which has `gs:unbound = false` + +- A SHOULD NOT attempt to Follow B; +- If B receives a Follow from A, it SHOULD reject. + + +#### 2. Group A follows Group B which has `gs:unbound = true` + +- A SHOULD send a Follow to B; +- B SHOULD Accept; +- B SHOULD Follow A, if A has `gs:unbound = true`. + + +#### 3. Group A follows Group B which has no `gs:unbound` attribute + +- A SHOULD send a Follow to B; +- B MAY Accept. + + +#### 4. Forwarding from Inbox + +- `!hackers@`**C**: Announce{Note} _TO_ `!hackers@`**[B]** (S2S) +- **B** MUST NOT forward this to other groups. If other groups expect to receive this activity, then they must follow `!hackers@`**C** as well. + + +## References + +- [ActivityPub] Christopher Lemmer Webber, Jessica Tallon, [ActivityPub](https://www.w3.org/TR/activitypub/), 2018 +- [ActivityStreams Vocabulary] James M Snell, Evan Prodromou, [ActivityStreams Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/#h-modeling-friend-requests), 2017 +- [RFC-2119] S. Bradner, [Key words for use in RFCs to Indicate Requirement Levels](https://tools.ietf.org/html/rfc2119.html), 1997 + + +## Copyright + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication + +To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.