diff --git a/0A.md b/0A.md index b14422ac..92702f0e 100644 --- a/0A.md +++ b/0A.md @@ -1,10 +1,10 @@ NIP-0A ====== -Synchronized Contact List -------------------------- +Synchronized Follow List +------------------------ -An addressable event with kind `33000` means "follow list" which communicates the set of profiles (represented by public keys) that the author is currently following. +An addressable event with kind `33000` means "synchronized follow list" which communicates the set of profiles (represented by public keys) that the author is currently following. The term "following" is left undefined, see ["Uses"](#uses). @@ -12,7 +12,7 @@ The public keys followed are specified in "p" tags. Additional "np" tags are present only to help with synchronization as described below. -A "d" tag is specified to indicate the client (or possibly client installation) that created the event. This helps prevent cross-client clobbers. +A "d" tag is specified to indicate the client (or possibly client installation) that created the event. The `.content` is not used. @@ -135,6 +135,6 @@ When the user sees `f57f54057d2a7af0efecc8b0b66f5708` the client can show _frank ## Rationale -This functionally implements a Last-Write-Wins Element Set, which is a conflict-free replicated data set with eventual consistency. +This functionally implements a Last-Write-Wins Element Set, which is a [conflict-free replicated data set](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) with eventual consistency. -We use replaceable events so that superceded events can be erased by relays. This brings back a per-relay clobbering issue, and so we use addressable events to limit such clobbering. +We use replaceable events so that superceded events can be erased by relays. This brings back a per-relay clobbering issue, and so we use addressable events to prevent cross-client clobbering. We still need the CRDT functionality to resolve forks (usually occuring across different relays).