What is Nostr?
mikedilger /
npub1acg…p35c
2024-05-30 21:09:01

mikedilger on Nostr: a Relay Test Suite is in the works... I've already got ideas for 94 tests and as I ...

a Relay Test Suite is in the works...

I've already got ideas for 94 tests and as I write these tests they expand out into even more tests.

I hoping that exposing relay behavior will drive relay software towards consistently supporting the same way of doing certain things, and that this will help nostr compatibility.

Tests include things like:
* Can the public write events?
* Can an authenticated person write somebody else's events?
* Does the relay respond to minimally constrained filters?
* Does limit 0 give an EOSE?
* When you write an event and get OK-true, can you read it directly back?
* Does limit behave properly when a filter has multiple pubkeys and multiple kinds?
* Does it require AUTH to read DMs and giftwraps?
* When submitting a replaceable event, are the prior events replaced?
* When submitting a replaceable event with newer ones already present, is it rejected or ignored?
* Does deletion of a replaceable event preserve the events that are newer than the deletion event?
* Does it prompt for auth initially?
* How large of an event can it handle?
* Does it verify signatures?
* How does it react to invalid UTF8?
* Does it handle all JSON escape codes? What about surrogate pairs?
* Does it preserve field order in events?
* Does it preserve fields in events not defined by the nostr spec?
* How many subscriptions does it allow simultaneously?
* Do events with negative created_at values work? What about exponential notation? What about numbers that won't fit in a u64?

... that kind of thing.

If you want to help contribute, even if you just have an idea of what to test, come on over to https://github.com/mikedilger/relay-tester and give feedback, open an issue, or better yet submit a PR.

What about the other things I'm working on?

* Gossip is on pause while we wait for the UI developer to handle some personal affairs, then we will have annotations and NIP-17 DMs.
* Chorus is stable and upgraded to use Pocket
* Pocket has been completed and is stable too, but I haven't tried to make it useful outside of the scope of a relay yet.
Author Public Key
npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c