44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
# ADR-0003: Choose Holepunch P2P stack
|
|
|
|
- **Status:** Accepted
|
|
- **Date:** 2026-07-30
|
|
|
|
## Context
|
|
|
|
Connectivity must be pure peer-to-peer with E2E encryption, topic discovery, multi-writer metadata, and multiplexed app protocols — without app-operated servers.
|
|
|
|
## Decision
|
|
|
|
Adopt the Holepunch stack:
|
|
|
|
| Layer | Packages |
|
|
|-------|----------|
|
|
| Discovery / links | `hyperswarm`, `hyperdht` |
|
|
| Streams | `@hyperswarm/secret-stream` (via swarm) |
|
|
| Multiplex / RPC | `protomux`, `protomux-rpc` |
|
|
| Codecs | `compact-encoding`, `hyperschema` |
|
|
| Storage | `corestore`, `hypercore`, `hyperbee`, `hyperdrive` |
|
|
| Multi-writer | `autobase` (mesh registry) |
|
|
| Capabilities | `hyperswarm-capability` |
|
|
| App shell | `pear-runtime`, `pear-electron` |
|
|
|
|
Versions pinned from local mirror investigation (see `developer_docs/MODULES.md`).
|
|
|
|
## Consequences
|
|
|
|
### Positive
|
|
|
|
- Battle-tested mesh primitives
|
|
- Matches peardock/hello-pear patterns already used by the team
|
|
- Encryption and holepunching “for free”
|
|
|
|
### Negative / tradeoffs
|
|
|
|
- Learning curve for Autobase writer admission
|
|
- DHT bootstrap nodes are third-party infrastructure (acceptable; not app masters)
|
|
|
|
### Follow-ups
|
|
|
|
- [ ] Wire worker swarm in Phase 2+
|
|
- [ ] Schema freeze for invites/channels
|