This is actually another potentially subtle but huge problem with the protocol that is not what people think the standard issue is.

When you get to around 1400 follows you will start to hit relay note size limits for your contact list. This means only a few relays with larger contact size limits will accept your new follows.

This may lead to the perception that follows are dropped, but what is probably happening is that most relays are not getting your new contact list after a follow.

I am updating damus to use a local relay list in nostrdb so this alleviate the issue, but its still a big issue since your contact list will stop syncing eventually.

nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn has a completely new way to do follows with individual events, but it would be a huge hardfork on the protocol.

Reply to this note

Please Login to reply.

Discussion

Ok stupid question from a non-nostr dev, why didn’t the protocol have individual events for your contact list? That seems really obvious when you’re designing stuff like this

I would not say that it’s obvious, kind3 was simple and it has worked for years. There werent even 1400 people on the network when it first came out. If we over complicated the protocol on day 1 by trying to plan for every future scenario it might not have taken off.

Event sourcing contact list events *is* more complicated. It takes more storage space, and hits relay return limits (500) if you’re trying to pull the full list, which forces you to do multiple paginated queries to sync your list. It’s doable, just a bit annoying.

Sinplicity is nice, when you're starting off, and they probably didn't anticipate it exploding this quickly.

You can see the same issue with the kind and NIP-numbering. Probably didn't realize how many variations this would balloon to, so they didn't plan for a modular or hierarchical structure.

99 probably seemed like a pretty big number. 😂

And now it's like

This explains a lot.

Thank you Will for staying on top of the game and keeping Damus the best iOS client. Preciate you man.