A diversity of implementations solves Hyrum's law, in which implementation details are transformed implicitly into interface guarantees. Nostr has some gross conventions (like error: prefixes on OK messages), but the compensation is that every implementation chooses different wording, and so clients have to be pretty ambivalent about relying on how messages are parsed. This reduces reliability, but improves compatibility.

Replies (2)

I like that there are so many implementations on Nostr. Because I can rip the de-facto standards out of the code rather than read nips.
Jay's avatar Jay
I've been generating some AI slop. https://nostrhub.io/npub10mtatsat7ph6rsq0w8u8npt8d86x4jfr2nqjnvld2439q6f8ugqq0x27hf For example, here is some slop that takes around 8 nostr codebases and extracts the de facto specification for follow lists, mute lists (as they relate to muting users), and named follow sets: https://nostrhub.io/naddr1qvzqqqrcvypzqlkh6hp6hur058qq7u0c0xzkw605dtyjx4xp9xe764tz2p5j0csqqyghwumn8ghj7mn0wd68ytnhd9hx2tcqrp6hxetj94kxjum5wvkhxur9vd5kv6trv96xjmmwc4dgpl I find this kind of slop much more useful than NIP documents because they reflect the rules that are actually being executed on the network, showing what is actually being agreed on and what is under contention. @npub1manl...n9tn
View quoted note →