upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiatjaf <fiatjaf@gmail.com>2023-09-29 15:47:04 -0300
committerfiatjaf_ <fiatjaf@gmail.com>2023-09-29 16:49:55 -0300
commitb33409c099b4d08278c95beda0f42ba76f55c32c (patch)
tree36204f5a399a367bcf1e264550047ea021f1d6a0
parent7dc6385f1b9f185601c50f84df2e7e06933a71ce (diff)
make it clear that relays can keep multiple replaceable event versions.
-rw-r--r--01.md6
1 files changed, 4 insertions, 2 deletions
diff --git a/01.md b/01.md
index d822bfb..2b28f23 100644
--- a/01.md
+++ b/01.md
@@ -82,12 +82,14 @@ Kinds specify how clients should interpret the meaning of each event and the oth
82And also a convention for kind ranges that allow for easier experimentation and flexibility of relay implementation: 82And also a convention for kind ranges that allow for easier experimentation and flexibility of relay implementation:
83 83
84- for kind `n` such that `1000 <= n < 10000`, events are **regular**, which means they're all expected to be stored by relays. 84- for kind `n` such that `1000 <= n < 10000`, events are **regular**, which means they're all expected to be stored by relays.
85- for kind `n` such that `10000 <= n < 20000 || n == 0 || n == 3`, events are **replaceable**, which means that, for each combination of `pubkey` and `kind`, only the latest event is expected to (SHOULD) be stored by relays, older versions are expected to be discarded. 85- for kind `n` such that `10000 <= n < 20000 || n == 0 || n == 3`, events are **replaceable**, which means that, for each combination of `pubkey` and `kind`, only the latest event MUST be stored by relays, older versions MAY be discarded.
86- for kind `n` such that `20000 <= n < 30000`, events are **ephemeral**, which means they are not expected to be stored by relays. 86- for kind `n` such that `20000 <= n < 30000`, events are **ephemeral**, which means they are not expected to be stored by relays.
87- for kind `n` such that `30000 <= n < 40000`, events are **parameterized replaceable**, which means that, for each combination of `pubkey`, `kind` and the `d` tag's first value, only the latest event is expected to be stored by relays, older versions are expected to be discarded. 87- for kind `n` such that `30000 <= n < 40000`, events are **parameterized replaceable**, which means that, for each combination of `pubkey`, `kind` and the `d` tag's first value, only the latest event MUST be stored by relays, older versions MAY be discarded.
88 88
89In case of replaceable events with the same timestamp, the event with the lowest id (first in lexical order) should be retained, and the other discarded. 89In case of replaceable events with the same timestamp, the event with the lowest id (first in lexical order) should be retained, and the other discarded.
90 90
91When answering to `REQ` messages for replaceable events such as `{"kinds":[0],"authors":[<hex-key>]}`, even if the relay has more than one version stored, it SHOULD return just the latest one.
92
91These are just conventions and relay implementations may differ. 93These are just conventions and relay implementations may differ.
92 94
93## Communication between clients and relays 95## Communication between clients and relays