nips/0A.md

30 lines
975 B
Markdown
Raw Normal View History

2024-12-06 17:44:28 -05:00
NIP-0A
======
Contact List v2
---------------
This is an early draft, I'll flesh out details after discussion.
Event tags would look like this:
```
["contact", "<pubkey1>", "in", "<timestamp1>"]
["contact", "<pubkey2>", "out", "<timestamp2>"]
```
Note that they are not 'p' tags, they don't need delivery to the person's INBOX.
But maybe they should be searchable to people can count their "followers".
When you add a person, you find their entry and change the last two fields to "in" and the current timestamp.
When you remove a person, you find their entry and change the last two fields to "out" and the current timestamp.
When merging two events, you accept the entry with the largest timestamp.
Note that we have to keep the "out" entries in case we later get an "in" entry dated earlier, we can
ignore such an add.
This is functionally implements a Last-Write-Wins Element Set, which is a conflict-free replicated data set
with eventual consistency.