-
Notifications
You must be signed in to change notification settings - Fork 564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify nip 29 even further #1495
base: master
Are you sure you want to change the base?
Conversation
49a9b95
to
b471201
Compare
|
||
Membership lists can contain two types of tags: relay memberships (indicated by `r`), and room memberships (indicated by `h`, and including the relay url): | ||
Group IDs are identified by `group`, with each value being the relay url and the group id joined by a `'`. Group id MAY be omitted if bare relay membership is desired. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not just another argument?
[ "group", "group-id", "relay" ]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the note below, that would be my preference.
|
||
Rooms are defined by an arbitrary string containing any text. Names SHOULD be human-readable, and less than 30 characters. | ||
If a group needs to be moved from one relay to another, this can be done by publishing a `kind 9009`, with the following tags: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what's the goal of this? to indicate to clients that the old relay is going offline?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this is an escape hatch for:
- Rogue admins
- Admins who disappear
- Deplatforming
- Group forks
|
||
By default, the same group id on different relays does not mean that the same content will exist in both places. However, relays MAY choose to actively federate with others by aggressively replicating content between the two, or cooperating in some other way. | ||
|
||
If a group is federated, this should be indicated on the `kind:39000` group metadata event using one or more `peer` tags indicating another relay url. The peer SHOULD NOT be considered valid unless the designation is mutual. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe a non-moderator user might want to announce their federating fork/replica, which perhaps clients can display to users "user X is replicating this group to relay B, <event-content-explaining-the-fork/replica>, do you want to also join that relay?"
Because of this, I think this should be a specific event published to the group relay or other relays.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would use a migration for that. If it's not mutual, it should be considered hostile, or at least non-consensual.
|
||
If a group is federated, this should be indicated on the `kind:39000` group metadata event using one or more `peer` tags indicating another relay url. The peer SHOULD NOT be considered valid unless the designation is mutual. | ||
|
||
Clients should take care when supporting simultaneous relay use, since missing context is possible if the federation is not implemented correctly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe explicit mention relay hints for this particular situations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I address this a bit more at the very end of the document. Relay hints are ok for bringing in note parents, but that's only one kind of context. Stuff like chat rooms has implicit context that would be hard to directly link, even if we used the previous
tag
Ok, I took another pass at this after @fiatjaf suggested that passive support was possible. I was skeptical at first, but I actually think I got it to work. This version is compatible with the current version, with the following exceptions:
I've also left some Friendly view here |
The goal here is to establish conventions for using standard relays as lightweight "groups", rather than creating highly stateful group protocol objects which require relay support to work.
Summary of changes (obsolete, see comment below on new revision):
ACCESS
command (which should probably be moved to NIP 42).-
tags is encouraged to support a weak form of privacy.h
tags on a relay. This underscores the fact that they are only for convenience, and shouldn't be relied upon — this allows interoperability with standard relays, because relays aren't expected or required to do anything special.This PR is just an RFC for now, not necessarily a serious PR. It could replace NIP 29, which doesn't have any mature implementations yet, or it could be a separate standard.
Friendly view here.