Compare commits

...

3 Commits

Author SHA1 Message Date
arthurfranca
340acfa4f2
Merge 448203f14e into a1ca7a194b 2024-12-11 09:28:51 -03:00
Jon Staab
a1ca7a194b Change strategy for naming groups 2024-12-10 19:25:28 -03:00
arthurfranca
448203f14e Add kind:20070 2024-12-09 10:16:36 -03:00
3 changed files with 24 additions and 4 deletions

4
29.md
View File

@ -30,8 +30,6 @@ When encountering just the `<host>` without the `'<group-id>`, clients MAY infer
Events sent by users to groups (chat messages, text notes, moderation events etc) MUST have an `h` tag with the value set to the group _id_.
`h` tags MAY include the group's name as the second argument. This allows `unmanaged` groups to be assigned human-readable names without relay support.
## Timeline references
In order to not be used out of context, events sent to these groups may contain references to previous events seen from the same relay in the `previous` tag. The choice of which previous events to pick belongs to the clients. The references are to be made using the first 8 characters (4 bytes) of any event in the last 50 events seen by the user in the relay, excluding events by themselves. There can be any number of references (including zero), but it's recommended that clients include at least 3 and that relays enforce this.
@ -242,3 +240,5 @@ A definition for `kind:10009` was included in [NIP-51](51.md) that allows client
### Using `unmanaged` relays
To prevent event leakage, when using `unmanaged` relays, clients should include the [NIP-70](70.md) `-` tag, as just the `previous` tag won't be checked by other `unmanaged` relays.
Groups MAY be named without relay support by adding a `name` to the corresponding tag in a user's `kind 10009` group list.

2
51.md
View File

@ -29,7 +29,7 @@ For example, _mute list_ can contain the public keys of spammers and bad actors
| Public chats | 10005 | [NIP-28](28.md) chat channels the user is in | `"e"` (kind:40 channel definitions) |
| Blocked relays | 10006 | relays clients should never connect to | `"relay"` (relay URLs) |
| Search relays | 10007 | relays clients should use when performing search queries | `"relay"` (relay URLs) |
| Simple groups | 10009 | [NIP-29](29.md) groups the user is in | `"group"` ([NIP-29](29.md) group id + relay URL), `"r"` for each relay in use |
| Simple groups | 10009 | [NIP-29](29.md) groups the user is in | `"group"` ([NIP-29](29.md) group id + relay URL + optional group name), `"r"` for each relay in use |
| Interests | 10015 | topics a user may be interested in and pointers | `"t"` (hashtags) and `"a"` (kind:30015 interest set) |
| Emojis | 10030 | user preferred emojis and pointers to emoji sets | `"emoji"` (see [NIP-30](30.md)) and `"a"` (kind:30030 emoji set) |
| DM relays | 10050 | Where to receive [NIP-17](17.md) direct messages | `"relay"` (see [NIP-17](17.md)) |

22
70.md
View File

@ -16,7 +16,7 @@ Relays that want to accept such events MUST first require that the client perfor
## The tag
The tag is a simple tag with a single item: `["-"]`. It may be added to any event.
The tag is a simple tag with a single item: `["-"]`. It may be added to any event. It should be added to replaceable and addressable events, except for the `kind:10002` one.
## Example flow
@ -43,3 +43,23 @@ It's also possible to create closed access feeds with this when the publisher ha
Even though it's ultimately impossible to restrict the spread of information on the internet (for example, one of the members of the closed group may want to take an event intended to be restricted and republish it to other relays), most relays would be happy to not facilitate the acts of these so-called "pirates", in respect to the original decision of the author and therefore gladly reject these republish acts if given the means to.
This NIP gives these authors and relays the means to clearly signal when a given event is not intended to be republished by third parties.
## Clearing Protected Events
The `kind:20070` ephemeral event asks the tagged relay to delete all of the author's protected events.
Relays MUST require authentication to fulfill the clearing request. Too old `kind:20070` events MUST be ignored.
The event is useful to prevent replaceable and addressable events from becoming outdated after an user edits their [NIP-65](65.md) write relays.
Example:
```jsonc
{
kind: 20070,
tags: [
["relays", "wss://relay1.example", "wss://relay2.example"]
],
// ...other fields
}
```