Replies (42)
Pull your follows and relay sets from the top 10 biggest relays + specialized indexer relays - then as you use the app and we discover more relays we cache them and pull from there
Still centralized then, at least in spirit
Regardless of the technical solution, I always found that funny about the outbox model.
Few
I think itβs more of a βfeel goodβ model, not truly decentralized
Nah, its just for an initial seed. If we don't find your sets on the first pass, we find it in the second, third or via relay hints.
I get, I am just saying the mechanism is vulnerable
How so? Walk me through how it can be exploited or lead to censorship and I will patch it
Itβs because every now and we fall back to the bitcoin architecture where we think everyone needs to have the full nostr snapshot.
If we really really care about that, just make relays push notes to each other.
But we also donβt like that.
Where do you tell the app to get the initial seed? In the code? Hard coded?
Yep it's hard coded, I've added a few and removed a few since launch
Relay is misnomer, it doesnβt relay shit, itβs more of a hub/switch. Store and forward architecture
There you have it
I don't follow
How is that vulnerable to anything?
If the hard coded relays drop the app stops. π€·ββοΈ
Your app requires constant upkeep to maintain ephemeral relays, that may have or not the data you need.
Btw Iβm not criticizing you or wisp, I just think the outbox model is still flawed by design.
The seed doesn't need to have all the data, just *some* data to discover more relays. Within a few hops we basically have the entire network topology.
Then I just update the list in 12 seconds? I don't understand this concern, all software needs maintenance
Yes, this. I am not against wisp, I am just thinking that the job to decentralize truly is not done yet, so people do not fell too comfortable and relax, forgetting to think further
Bitcoin nodes also rely on seed relays to discover peers
next up, queue complaints about DNS, and then in the dugout we also have how to initialize DHT from no previously known nodes, and then chicken before egg bikesheds all the way to the younger dryas period..
or, you can just update the list you got from a friend or a flyer on the subway, and have some chicken dinner.
or how about the transatlantic cables being owned all by big tech
i dont know about younger dryass bike sheds or broligarch cables but chicken dinner sounds nice
True, but in bitcoins case if all fails you just manually point to a node you know.
I guess itβs the same in nostr as well, if outbox seed fails, the user can fall back to the classic model type in a relay thats up and start from there.
Funny but thatβs why I was thinking of buy starlink as well π
Welp, the internet is modeled after centralized infrastructure and central authorities, retrofitting p2p only gets you so far, even bitcoind has hardcoded nodes.
I think truly decentralized discovery requires decentralized infrastructure. Like imagine if FIPS nodes published some metadata about the services they host, worst case scenario you walk the three asking everyone if theyβre a nostr relay or something.
the real answer here is mesh networking to find your relay seeds, but then we got, "who makes the hardware and who owns the licenses to lora and.. how can we do this without using our eyes or going outside" π
Itβs not about software maintenance, itβs about reliability. He has a good point, actually, but I donβt itβs possible to fix the bootstrap problem while bending over to ICANN.
I can see this getting fixed very easily by adding service discovery annotations into the metadata of meshnet nodes (think FIPS/Yggdrasil/CJDNS) since, worst case scenario, a naive solution could be that you just walk the whole network inquiring each node if it hosts nostr or not.
If your apps not pulling itself up by the bootstraps while deaf and blind are you even decentralized?
btw the ccp looked at our hardcoded list and blocked all of those relays at the great firewall level. we had to change it so the bootstrap relays were user configured
Dude you can run mesh networking on existing hardware using FIPS, Yggdrasil, CJDNS⦠the problem is getting people onboard.
The problem is real, you canβt build sovereign applications on top of permissioned infrastructure.
index relays
It is true that any system needs initial connection to peers, but not all systems are designed to reach strong consistency in a reliable way. Bitcoin for example can suffer from this, but it only takes one honest connection to get the definitive truth.
DNS has a hierarchy that also allows for the definitive truth even if that is a proof of authority.
A DNS based on a Blockchain especially a merge mined sidechain doesn't suffer from the same problem as Npubs do, because in Npubs you never know when you eventually found the source of truth (the outbox) and even worse, when you don't find it you don't know what went wrong if anything went wrong.
Nostr has Negentropy, which I am proud of suggesting initially to its author, but gossip can only do so much. If you want strong consistency, at least eventual consistency, I am afraid you need to embrace either a Sybil resistant DHT and or a Blockchain, the later has better Sybil resistance and offer key rotation.
However, you are correct in that, if you don't give a fuck about consistency and the stakes are low, the. YOLO who cares.
In #Reticulum there is AutoDiscovery feature. Relays can announce themselves as discoverable to the network. But you have to start also with one connected relay to get more. So a new user needs at least a list of relays to pick one. That's only true for TCP relays. Radio relays do not need a list, they are simply there, if they are in reach.
I think this is a mountain/mole hill situation
Why? Because relays are centralizing points by themselves so whatever? Or do you think only crazy countries like China go witch hunting and block seed nodes?
They can just as easily block all relays as all seed nodes. If I can find all the relays with 10 lines of code, so can anyone
But the point is that they donβt even need to go after all relays since they can just grep GitHub to find out the seed nodes and prevent the bootstrap from ever working.