mirror of
https://github.com/nostr-protocol/nips.git
synced 2025-12-10 09:08:50 +00:00
Compare commits
2 Commits
wiki-relay
...
inbox-mode
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae825539c6 | ||
|
|
b2d6af6fe5 |
1
51.md
1
51.md
@@ -29,7 +29,6 @@ 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) |
|
||||
| Wiki relays | 10008 | relays clients should use to read/write wiki entries | `"relay"` (relay URLs) |
|
||||
| Simple groups | 10009 | [NIP-29](29.md) groups the user is in | `"group"` ([NIP-29](29.md) group ids + mandatory relay URL) |
|
||||
| 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) |
|
||||
|
||||
55
64.md
Normal file
55
64.md
Normal file
@@ -0,0 +1,55 @@
|
||||
NIP-64
|
||||
======
|
||||
|
||||
Inbox model
|
||||
-----------
|
||||
|
||||
`draft` `optional`
|
||||
|
||||
Suppose **Sarah** wants to subscribe to the notes **Walter** writes.
|
||||
|
||||
She must let Walter know she is following him. The first step is to find Walter's _inbox list_:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"kind": 10064,
|
||||
"pubkey": "<walter>",
|
||||
"tags": [
|
||||
["relay", "wss://walter.inbox"]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Now Sarah can publish a `kind:6401` _follow intent_ to `wss://walter.inbox` tagging Walter:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"kind": 6401,
|
||||
"pubkey": "<sarah>"
|
||||
"tags": [
|
||||
["p", "<walter>"],
|
||||
["relay", "wss://sarah.inbox"],
|
||||
["relay", "wss://other.inbox"]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Sarah also publishes these to her own inbox relays (`wss://sarah.inbox` and `wss://other.inbox`) so they are aware.
|
||||
|
||||
From the Walter side, whenever he is about to publish a note, he downloads all the `kind:6401` events from his inbox relays and sends his note to all the relays he finds in these.
|
||||
|
||||
Whenever Sarah's inbox relay receive a note from Walter, they will know that Sarah is following him, so they index that note in a way that it is associated with Sarah. If the relays receive a note from someone else they can simply reject the note.
|
||||
|
||||
When Sarah turns on her client she will connect to her inbox relay, perform [NIP-42](42.md) `AUTH` and create a subscription that doesn't specify `"authors"` (for example, `["REQ", "_", {}]`). The relays, aware of who she is and who she is following, can deliver to her just Walter's notes.
|
||||
|
||||
If Sarah ever decides to stop following Walter, she just sends a `kind:5` _deletion_ to both Walter's relay and hers.
|
||||
|
||||
---
|
||||
|
||||
The approach described in this NIP doesn't replace any of the other models for following people that are already in use in Nostr, and doesn't claim to be strictly superior to the Outbox Model, but just provides an alternative way to do things.
|
||||
|
||||
In reality, clients should implement both approaches and can never assume others will implement this.
|
||||
|
||||
For example, if Sarah wanted to follow Wesley and he didn't have a `kind:10064` she would have to do the normal "outbox" approach of subscribing to his relays and fetching his notes from there.
|
||||
|
||||
In the same vein, if for any reason Sarah noticed that she had stopped receiving notes from Walter for a long time (~7 days) it would make sense for her to go to his relays (obtained from [NIP-65](65.md), [NIP-05](05.md), relay hints or other means) and check if he is publishing to these. In the affirmative case, she would turn Walter into an "outbox follow" instead of an "inbox follow".
|
||||
9
96.md
9
96.md
@@ -82,7 +82,14 @@ it must use the "api_url" field instead.
|
||||
|
||||
### List of Supporting File Storage Servers
|
||||
|
||||
See https://github.com/aljazceru/awesome-nostr#nip-96-file-storage-servers.
|
||||
| Name | Domain |
|
||||
| ------------- | ------------------------- |
|
||||
| nostrcheck.me | https://nostrcheck.me |
|
||||
| nostrage | https://nostrage.com |
|
||||
| sove | https://sove.rent |
|
||||
| nostr.build | https://nostr.build |
|
||||
| sovbit | https://files.sovbit.host |
|
||||
| void.cat | https://void.cat |
|
||||
|
||||
## Upload
|
||||
|
||||
|
||||
Reference in New Issue
Block a user