improve g tag and add language for IP data usage

This commit is contained in:
dskvr 2023-04-12 15:53:46 +02:00
parent 6c6251cfb2
commit 29a8acb69a

22
66.md
View File

@ -22,17 +22,20 @@ The tags should be used to represent the Relay's abilities and meta at a point i
```json ```json
["d", "wss://history.nostr.watch/"] //tagId[] ["d", "wss://history.nostr.watch/"] //tagId[]
``` ```
2. `"expiration" == tagExpiration[0]` [NIP-40]. The `tagExpiration[]` tag **must** be included in the `event.tags[]` array. `tagExpiration[1]` **should** be set to a future timestamp that correlates with the publisher's intended update frequency. 2. `"expiration" == tagExpiration[0]` [NIP-40]. The `tagExpiration[]` tag **must** be included in the `event.tags[]` array. `tagExpiration[1]` **should** be set to a future timestamp (seconds) that correlates with the publisher's intended update frequency.
```json ```json
["expiration", "1600000000"] //tagExpiration[] ["expiration", "1600000000"] //tagExpiration[]
``` ```
3. `"t" == tagTopic[0]` Topics relevant to the relay. `tagTopic[]` **may** be included in the `event.tags[]` array. `tagTopic[1]` **should** be string. There **should** be no more than **twenty (20)** `tagTopic[]` arrays. 3. `"t" == tagTopic[0]` Topics relevant to the relay. `tagTopic[]` **may** be included in the `event.tags[]` array. `tagTopic[1]` **should** be a string. There **should** be no more than **fifty (50)** `tagTopic[]` arrays.
```json ```json
["t", "bitcoin"] //tagTopic[] ["t", "bitcoin"] //tagTopic[]
``` ```
4. `"g" == tagGeo[0]` Relay Geo Data. `tagGeo[]` **may** be included in the `event.tags[]` array. `tagGeo[1]` **must** be string and **should** be a geohash. There **may** be strings defined in the key range `2+` (`tagGeo[2...]`) and they **must** be strings if set. `tagGeo[]` items **should** be descending by precision. There **should** be no more than **one (1)** `tagGeo[]` per event. 4. `"g" == tagGeo[0]` Relay Geo Data. `tagGeo[]` **may** be included in the `event.tags[]` array. `tagGeo[1]` **must** be string. `tagGeo[2]` **must** be a string and **should** be a label that describes `tagGeo[1]`. There **may** be more than **one (1)** `tagGeo[]` per event.
```json ```json
["g", "ww8p1r4t8", "Amsterdam", "NL", "EU", "Earth", "Sol", "Milky Way"] //tagGeo[] ["g","ww8p1r4t8","geohash"],
["g","NL","countryCode"],
["g","EU","continent"],
["g","Earth","planet"]
``` ```
5. `"read" == tagRead[0]` Was able to read from the relay. `tagRead[]` **may** be included in the `event.tags[]` array. `tagRead[1]` **must** be type string as exactly `true` or `false` 5. `"read" == tagRead[0]` Was able to read from the relay. `tagRead[]` **may** be included in the `event.tags[]` array. `tagRead[1]` **must** be type string as exactly `true` or `false`
```json ```json
@ -46,7 +49,7 @@ The tags should be used to represent the Relay's abilities and meta at a point i
```json ```json
["ssl", "true"] //tagSsl[] ["ssl", "true"] //tagSsl[]
``` ```
8. `"ip" == tagIp[0]` Relay IP. `tagIp[]` **may** be included in the `event.tags[]` array. `tagIp[1]` **must** be string. There **may** be more than one (1) `tagIp[]` 8. `"ip" == tagIp[0]` Relay IP. `tagIp[]` **may** be included in the `event.tags[]` array. `tagIp[1]` **must** be string. There **may** be more than one (1) `tagIp[]`.
```json ```json
["ip", "1.1.1.1"], //tagIp[] ["ip", "1.1.1.1"], //tagIp[]
["ip", "2001:db8:3333:4444:5555:6666:7777:8888"] //tagIp[] ["ip", "2001:db8:3333:4444:5555:6666:7777:8888"] //tagIp[]
@ -89,7 +92,10 @@ Example with all Tags, "Relay is online and here's some data"
["expiration", "1600000000"], ["expiration", "1600000000"],
["t","nostrica"], ["t","nostrica"],
["t","bitcoin"], ["t","bitcoin"],
["g","ww8p1r4t8","Amsterdam","NL","EU","Earth"], ["g","ww8p1r4t8","geohash"],
["g","NL","countryCode"],
["g","EU","continent"],
["g","Earth","planet"],
["ip","1.1.1.1"], ["ip","1.1.1.1"],
["ip","2001:db8:3333:4444:5555:6666:7777:8888"], ["ip","2001:db8:3333:4444:5555:6666:7777:8888"],
["read","true"], ["read","true"],
@ -108,10 +114,10 @@ The `.content` of these events **may** be empty. `.content` **may** contain stri
The testing criteria to determine conditions defined in event's tags **may** be subjective and **may** vary between publishers. The testing criteria to determine conditions defined in event's tags **may** be subjective and **may** vary between publishers.
## Consumption ## Consumption
The data in `30303` **may** be erroneous, intentionally or otherwise. Where accuracy is required, the data in `30303` events **should** be subscribed to by populating the `authors` filter array with the pubkeys of trusted **publishers** The data in `30303` **may** be erroneous, intentionally or otherwise. Where accuracy is required, the data in `30303` events **should** be subscribed to by populating the `authors` filter array with the pubkeys of trusted **publishers**. **IP** data is for informational purposes only.
## Use Cases ## Use Cases
- Aggregate relays quickly. - Aggregate relays quickly using an implementation pattern native to nostr.
- A lite social client identifies relays that were recently reported to be online without client-side tests - A lite social client identifies relays that were recently reported to be online without client-side tests
- A social client may find relays where a particular topic is popular. - A social client may find relays where a particular topic is popular.
- A social client may find relays based on their geographic proximity - A social client may find relays based on their geographic proximity