Replying to Avatar hodlbod

Take the NINO quiz! Here's how flotilla fares:

- [ ] There's no NIP for your data format

- [ ] There's a NIP, but no one knows about it

- [ ] Your NIP imposes an incompatible/centralized/legacy web paradigm onto nostr

- [x] Your NIP relies on trusted third parties

- [ ] There's only one implementation of your NIP

- [ ] Your core value proposition doesn't depend on relays, events, or nostr identities

- [x] One or more relay urls are hard-coded into the source code

- [ ] Your app depends on a specific relay implementation to work

- [ ] You don't validate event signatures

- [ ] You don't publish events to relays you don't control

- [ ] You don't read events from relays you don't control

- [ ] You use legacy web services to solve problems, rather than nostr-native solutions

- [ ] You use nostr-native solutions, but you've hardcoded their pubkeys or URLs into your app

- [x] You don't use NIP 89 to discover clients and services

- [ ] You haven't published a NIP 89 listing for your app

- [ ] You don't leverage your users' web of trust for filtering out spam

- [ ] You don't respect your users' mute lists

- [ ] You try to "own" your users' data

That's a 3 on the NINO scale. The "trusted third parties" thing is debatable; in this case I'm counting relay operators, most of which are nip29 multi-tenant relays and relay.tools currently, but ideally that will improve as people run their own infrastructure.

How does your app fare?

nostr:nevent1qvzqqqr4gupzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcpr3mhxue69uhksmmyd33x7epwvdhhyctrd3jjuar0dak8xtcqyqzeszjv7rh8fflpeua9q644a32usvwd0cu7cze9lxy4grjy2y7rwtcw9gv

I hate the fact that in gossip:

[x] One or more relay urls are hard-coded into the source code

But I will at least be open about this fact and explain why.

1) Several relays require an Origin header or they won't work with gossip. Gossip isn't a web application, so it fakes this header but only for relays that are known to have this requirement. Perhaps it should instead always write this header.

2) We suggest relays to new people. For every major release I do extensive testing of popular and open relays and we hardcode the top 20 based on a somewhat complex scoring algorithm that was not gamed. Often relays in that list I have never heard of, but they go in there based on the rules.

Reply to this note

Please Login to reply.

Discussion

There's also the bootstrapping problem, which is unavoidable