Key Architectural Difference
Nostr: Client → Relay (server) → Client
P2P Social (e.g., Scuttlebutt, SSB): Peer ↔ Peer (gossip/replication)
Nostr uses relays (simple websocket servers) as intermediaries, while P2P social networks have users directly exchange data with each other.
Nostr's Advantages Over P2P
| Aspect | Nostr's Approach |
|---|---|
| Simplicity | "Signed JSON over websockets" - trivially implementable |
| Reliability | No NAT traversal, no DHT, no gossip protocol complexity |
| Mobile-friendly | Clients can be thin; no need to run background sync |
| Discoverability | Relays provide known endpoints; P2P struggles with "how do I find you?" |
| Offline users | Relays store messages for offline recipients; P2P requires both parties online (or complex pub infrastructure) |
P2P's Advantages Over Nostr
| Aspect | P2P's Approach |
|---|---|
| No servers needed | True decentralization; Nostr still requires someone to run relays |
| Offline-first | Local-first data; works without internet once synced |
| Censorship resistance | Harder to block gossip than to block known relay servers |
| No hosting costs | Users bear their own storage/bandwidth |
The Tradeoff
The speaker acknowledges: "we're not in the business of selling magic - data has to be hosted, it has to be on a drive somewhere connected to the internet."
Nostr accepts that servers exist but makes users not dependent on any specific server. P2P tries to eliminate servers entirely but introduces complexity that limits adoption ("it works" being the key claim against P2P).
From the transcript, I can pull out:
- Relays are websocket servers
- The protocol is "signed JSON over websockets"
- It mentions you can run a relay on a Raspberry Pi
- Relays are just servers that host data
Let me explain this clearly based on what's in the transcript and general knowledge about Nostr.
Based on the transcript, Nostr's infrastructure is straightforward:
Relays
Relays are just websocket servers. The speaker describes the entire protocol as "signed JSON over websockets" - that's literally it.
They can run on:
- A VPS or cloud server
- A Raspberry Pi (the speaker mentions this as an option)
- Any machine that can maintain websocket connections and store JSON
There's no special daemon or complex software stack required. A relay just needs to:
- Accept websocket connections
- Receive JSON events from clients
- Store them (database, files, whatever)
- Serve them back to clients who request them
Clients
Clients are regular apps - mobile apps, web apps, desktop apps. They:
- Connect to one or more relays via websocket
- Publish signed events
- Request events (by public key, by kind, etc.)
What's notably absent
- No blockchain
- No DHT (distributed hash table)
- No gossip protocol
- No consensus mechanism
- No special networking requirements
The speaker emphasizes this simplicity intentionally: "it's just JSON, you'll figure it out." The barrier to entry is low - if you can build anything that talks websockets and handles JSON, you can build a Nostr client or relay.
This is why adoption has been relatively fast compared to earlier decentralized social attempts - the technical lift is minimal.
No comments:
Post a Comment