diff options
| -rw-r--r-- | 22.md | 31 |
1 files changed, 31 insertions, 0 deletions
| @@ -0,0 +1,31 @@ | |||
| 1 | NIP-22 | ||
| 2 | ====== | ||
| 3 | |||
| 4 | Unacceptable Event `created_at` time | ||
| 5 | --------------------------- | ||
| 6 | |||
| 7 | `draft` `optional` `author:jeffthibault` | ||
| 8 | |||
| 9 | Relays may support notifying clients that the event they published has an unacceptable `created_at` time. A relay will consider the `created_at` time unacceptable if the `created_at` time is more than **[limit]** before the event was received by the relay (in the past) OR if the `created_at` time is later than the time the event was received by the relay (in the future). | ||
| 10 | |||
| 11 | If a relay supports this NIP, the relay SHOULD send the client a `NOTICE` message saying the event was not stored because the `created_at` time was unacceptable. | ||
| 12 | |||
| 13 | Client Behavior | ||
| 14 | --------------- | ||
| 15 | |||
| 16 | Clients SHOULD use the `supported_nips` field to learn if a relay supports event `created_at` time checks. | ||
| 17 | |||
| 18 | Motivation | ||
| 19 | ---------- | ||
| 20 | |||
| 21 | The motivation for this NIP is to prevent clients from saying they published an event *significantly* earlier than they actually did or saying they published an event in the future. | ||
| 22 | |||
| 23 | The event `created_at` field is just a unix timestamp (integer) so one could set it to a time in the past or future. For example, the `created_at` field could be set to a time 10 years ago even though it was created today and it could still be a valid event. One could also set the `created_at` field to a time 10 years in the future and it could still be a valid event. This NIP aims to set a maximum amount of time elapsed between when an event was created and when it was *actually* published and prevent events from being from the future. | ||
| 24 | |||
| 25 | Relay Logic | ||
| 26 | ----------- | ||
| 27 | |||
| 28 | ``` | ||
| 29 | if time.now - event.created_at > limit OR event.created_at > time.now: | ||
| 30 | send NOTICE | ||
| 31 | ``` | ||