Add feature support signaling

This commit is contained in:
Jon Staab 2024-02-14 08:18:45 -08:00
parent b5dc891973
commit 1ad35f6173

30
89.md
View File

@ -129,3 +129,33 @@ Alternatively, users might choose to query directly for `kind:31990` for an even
```json
["REQ", <id>, '[{ "kinds": [31990], "#k": [<desired-event-kind>], 'authors': [...] }]']
```
## Feature Support Signaling
In order to facilitate deprecations of protocol features on nostr, a consensus must be reached _before_ support
for old features is removed. New features might also benefit from a voting mechanism.
Applications may signal their support of a protocol update using a `kind 36341` event with a `d` tag pointing
to a url detailing the change, an `a` tag pointing to a `kind 31990` handler, and a `fork` tag. `content` MAY
be an explanation of the deprecation support.
Valid `fork` values are:
- `hard` - the application fully supports all relevant new features, and has dropped support for deprecated features.
- `soft` - the application fully supports all relevant new features, but has not dropped support for deprecations.
- `none` - the application does not support new features, or relies on deprecated features.
- `never` - the application does not intend to adopt the new standard.
In order to be valid, this event MUST be published by the same key that published the referenced handler.
```json
{
"kind": 36341,
"content": "I read and write relays to both kind 3 and kind 10002.",
"tags": [
["d", "https://github.com/nostrability/nostrability/issues/10"],
["a", "31990:1743058db7078661b94aaf4286429d97ee5257d14a86d6bfa54cb0482b876fb0:abcd", "<relay-url>"],
["fork", "soft"]
],
}
```