mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-22 16:35:52 -05:00
Adds more examples.
This commit is contained in:
parent
80a2d8e55c
commit
d3cf4399c9
38
97.md
38
97.md
|
@ -8,20 +8,19 @@ Nostr Name System (NNS)
|
||||||
|
|
||||||
Event `30053` defines a DNS record for Nostr. `ip4` and `ip6` tags represent DNS's `A` records.
|
Event `30053` defines a DNS record for Nostr. `ip4` and `ip6` tags represent DNS's `A` records.
|
||||||
|
|
||||||
```jsonc
|
```js
|
||||||
{
|
{
|
||||||
"created_at": <Unix timestamp in seconds>,
|
|
||||||
"kind": 30053,
|
"kind": 30053,
|
||||||
"tags": [
|
"tags": [
|
||||||
["d", "<subdomain-like-name or empty for root>"],
|
["d", "<subdomain-like-name or empty for root>"],
|
||||||
// relays used by the community (w/optional marker)
|
|
||||||
["ip4", "230.22.120.232"],
|
["ip4", "230.22.120.232"],
|
||||||
["ip4", "230.22.120.233"], // mirrored servers / client-based load balancing
|
["ip4", "230.22.120.233"], // mirrored servers / client-based load balancing
|
||||||
["ip4", "230.22.120.234"], // mirrored servers / client-based load balancing
|
["ip4", "230.22.120.234"], // mirrored servers / client-based load balancing
|
||||||
|
|
||||||
["ip6", "FE80:0000:0000:0000:0202:B3FF:FE1E:8329"] // same content as ipv4
|
["ip6", "FE80:0000:0000:0000:0202:B3FF:FE1E:8329"] // same content as ipv4
|
||||||
],
|
],
|
||||||
...
|
// ...
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -44,26 +43,49 @@ The `naddr1`'s `relay` field SHOULD have the IP-based URI to the relay (e.g.: `w
|
||||||
Clients SHOULD intercept the DNS resolution of any `naddr1` domain name and resolve to IP using the latest version of the NNS replaceable event.
|
Clients SHOULD intercept the DNS resolution of any `naddr1` domain name and resolve to IP using the latest version of the NNS replaceable event.
|
||||||
|
|
||||||
If the NNS event cannot be found locally, Clients SHOULD in parallel:
|
If the NNS event cannot be found locally, Clients SHOULD in parallel:
|
||||||
1. Connect to the IP in the `relay` field of the `naddr1` do download a potentially outdated version of the NNS record.
|
1. Connect to the IP in the `relay` field of the `naddr1` to download a potentially outdated version of the NNS record.
|
||||||
2. Retrieve the latest version of this replaceable from the (NIP-65)[65.md] WRITE relays of the `naddr1`'s pubkey.
|
2. Retrieve the latest version of this replaceable from the (NIP-65)[65.md] WRITE relays of the `naddr1`'s pubkey.
|
||||||
|
|
||||||
# HTTP URLs (Media Servers)
|
# HTTP URLs (Media Servers)
|
||||||
|
|
||||||
Clients SHOULD use the NNS address (e.g. `http://naddr1...ccpzu/<rest of the url>`), if available, instead of the regular domain name in all URLs, both in tags and in the content of events.
|
Clients SHOULD use the NNS address (e.g. `http://naddr1...ccpzu/<rest of the url>`), if available, instead of the regular domain name in all URLs, both in tags and in the content of events.
|
||||||
|
|
||||||
|
For example, this loads an image without a domain name:
|
||||||
|
|
||||||
|
```js
|
||||||
|
"kind": 1,
|
||||||
|
"tags": [],
|
||||||
|
"content": "NNS is amazing: http://naddr1...ccpzu/image.jpg",
|
||||||
|
// ...other fields
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
# Relay Hints
|
# Relay Hints
|
||||||
|
|
||||||
Clients SHOULD use the NNS record (e.g. `wss://naddr1...ccpzu`), if available, instead of the regular domain name in all relay hints.
|
Clients SHOULD use the NNS record (e.g. `wss://naddr1...ccpzu`), if available, instead of the regular domain name in all relay hints.
|
||||||
|
|
||||||
|
For example, this is a reply using an NNS relay hint
|
||||||
|
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
"kind": 1,
|
||||||
|
"tags": [
|
||||||
|
["e", "<event id>", "<wss://naddr1...ccpzu>", "root"],
|
||||||
|
],
|
||||||
|
"content": "",
|
||||||
|
// ...other fields
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
# Relay Lists
|
# Relay Lists
|
||||||
|
|
||||||
Clients SHOULD use the NNS record (e.g. `wss://naddr1...ccpzu`), if available, instead of the DNS in all relay lists.
|
Clients SHOULD use the NNS record (e.g. `wss://naddr1...ccpzu`), if available, instead of the DNS in all relay lists.
|
||||||
|
|
||||||
The NNS events to resolve those addresses MUST be broadcasted to the same relays as their kind `10002`
|
The NNS events to resolve those addresses MUST be broadcasted to the same relays as their kind `10002`
|
||||||
|
|
||||||
For example:
|
For example, this is a relay list using NNS addresses
|
||||||
|
|
||||||
```json
|
```js
|
||||||
{
|
{
|
||||||
"kind": 10002,
|
"kind": 10002,
|
||||||
"tags": [
|
"tags": [
|
||||||
|
@ -72,6 +94,6 @@ For example:
|
||||||
["r", "wss://naddr1...um5wg", "read"]
|
["r", "wss://naddr1...um5wg", "read"]
|
||||||
],
|
],
|
||||||
"content": "",
|
"content": "",
|
||||||
...other fields
|
// ...other fields
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue
Block a user