Thread

Zero-JS Hypermedia Browser

Relays: 5
Replies: 15
Generated: 14:33:56
What even is the gossip model in a NIP-29 context? Is it important? It seems like idea of a user-defined relay list is somewhat moot. The group needs to more or less say "we're using this relays" and unless you want to migrate or fork the group you maybe only need to read from one and publish to all of them? Have you thought about this yet? nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn nostr:npub1lunaq893u4hmtpvqxpk8hfmtkqmm7ggutdtnc4hyuux2skr4ttcqr827lj nostr:npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr
2025-02-13 18:34:50 from 1 relay(s) 2 replies ↓
Login to reply

Replies (15)

It's a lot simpler than in a twitter context. Since the relay + identifier is the full id of the group, forking happens explicitly by copying data and using a new qualified id. The outbox model in the narrow sense is irrelevant, and in a broader sense it's barely visible (unless nostr:nprofile1qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309ac8junpd45kgtnxd9shg6npvchxxmmd9uqs6amnwvaz7tmxxaazu6t09uq32amnwvaz7tmpv4nkjueww468smewdahx2tcqyrafsj7hmweg9ur7zmn6apajdg48hxuskujx53rhrux0ttjcqx84y4vxupk starts building multi-relay groups, then all bets are off).
2025-02-13 18:37:08 from 1 relay(s) ↑ Parent 2 replies ↓ Reply
I guess I thought NIP-29 left the door open to multi-relay groups, but rereading it I see that it doesn’t really. It says “fork the group so it exists in different forms -- still using the same id -- across different relays”. Still I think having backup relays or something seems necessary to deliver on the Nostr promise of being able to take your people and data and go to another server.
2025-02-13 18:59:26 from 1 relay(s) ↑ Parent 2 replies ↓ Reply
Backup relays are something I've thought about some. I even had them in some revisions of my relay-based groups: https://github.com/coracle-social/nips/blob/379b69c42b9db641e0c8383d5bfbd891ef4abaf4/29.md#federation https://github.com/coracle-social/nips/blob/60179dfba2a51479c569c9192290bb4cefc660a8/xx.md#federation But in most cases, the backups don't even need to be specified, since anyone with access to the main relay can sync events to their backup. Then, when the original relay goes away you just manually move to the new one.
2025-02-13 19:56:19 from 1 relay(s) ↑ Parent 1 replies ↓ Reply
I think we need to find a solution to automatically move, at least once, if a group gets banned from a relay. Based on the user interviews we have been doing this is a huge concern for stewards of Facebook groups and other big tech platform. Many of them have had their groups shut down before with no explanation and no recourse. Being able to give them an answer like “on Nostr the relay can boot you off but generally all your groups members will move over to your back just fine” would be a big sell. Having a backup relay that you hit when the main relay is down or your group data disappears doesn’t seem like it’s too much to ask. Like on app launch if you can’t refresh data from the main relay grab the kind 39000 from the backup relay, see if it still has the main relay listed as the main relay. If it does, great, it must just be an outage. But if an admin has updated the metadata to indicate a new main relay you can just update your local group state to point to the new relay. The user doesn’t necessarily even need to know it has happened.
2025-02-13 20:21:13 from 1 relay(s) ↑ Parent 2 replies ↓ Reply
I think it's important for the user to know since now they have to trust a new server. And the group may have forked while moving (it may have moved to two different conflicting places, for example). I also think in many cases the migration will happen manually and integrants will rearrange by word-of-mouth. Maybe we can define a kind:29 event that any group member can publish signaling where is (are) the canonical location(s) of the group "xyhdffqa". If before it existed on groups.telegram.org and now it exists on groups.discord.com. Then clients may try to fetch these events from outbox relays of previous members when they can't connect to a specific relay or when a group is behaving weird for any reason?
2025-02-13 21:09:20 from 1 relay(s) ↑ Parent 2 replies ↓ Reply
That kind:29 would be published to the outbox relay of each person manually. I think that's better than requiring group managers to agree on a fallback relay before being banned, because 1) they may not do it because everybody is lazy; 2) the fallback relay may pre-ban them; 3) they may choose it at the time they're creating the group and then years will pass and the fallback relay will be offline at the time they're banned from the primary relay.
2025-02-13 21:12:19 from 1 relay(s) ↑ Parent Reply
This is why I built flotilla the way I did — encouraging "relays as groups" rather than "relay-based groups" means a thinner distribution of groups across hosts. In other words, admins are encouraged to self-host, which converts deplatforming (a bug) into banning (a feature). I strongly disagree with the approach most NIP 29 groups take of many groups, one relay.
2025-02-13 21:14:50 from 1 relay(s) ↑ Parent 2 replies ↓ Reply
Maybe the group tag in 10009 should be indexable so you could look up which relay the people you are interested in are using; yes, the random id can have conflicts but who cares; you can pull the 39000 and show it and the user can decide which one they meant
2025-02-14 11:58:20 from 1 relay(s) ↑ Parent 1 replies ↓ Reply
Agree. My preference is going towards Communities as Keys, not Relays. A Community can then publish: - their main relay - their back up relays - their blossom set up - their price lists, guidelines, roles for people, ...
2025-02-14 12:06:22 from 1 relay(s) ↑ Parent Reply