serverless · peer-to-peer · censorship-resistant

murmur

A short-video network with no server in the middle to block, seize, or coerce.

Murmur is a peer-to-peer video app built on Warren — a serverless stack where discovery is opaque, content is encrypted end to end, and there is no center to shut down. Any device can be a peer; the feed lives on the devices watching it — iOS today, more platforms next.

0 servers in the data path 100% content-addressed & encrypted discovery a censor can't enumerate

the premise

Every feed you scroll runs through someone's server. That server is a single throat to choke — one court order, outage, or blocklist away from silence.

the usual model
Upload to a company. It stores, ranks, and serves your video — and can be compelled to stop.
murmur's model
Your clip is encrypted, addressed by its own contents, and carried directly between viewers. There is nothing in the middle to seize.
the trade
No central index means no global "for you" firehose. You join channels — private swarms keyed by a shared secret.
01 — 05

How a clip travels, end to end

No step touches a server owned by us. Each is a Warren primitive doing one job; the order is the whole pipeline.

01

Join a channel with a shared key

A channel is a private swarm gated by a pre-shared key (PSK). Everyone with the key sees the same feed; to anyone without it, the channel doesn't appear to exist.

02

Find peers through a blinded topic

Members announce under a topic derived from hash(psk, epoch) — opaque, and it rotates every epoch. There is no stable identifier for a censor to enumerate or block.

03

Punch a direct connection

Peers hole-punch a direct UDP path through their NATs over a single socket. No relay sits in the data path.

04

Publish as an encrypted, addressed blob

The clip is sealed under a random per-clip key, split into chunks, and named by the hash of its ciphertext. A signed, append-only feed records the post; the key is wrapped to channel members.

05

Everyone who watches, reseeds

Viewers verify each chunk against the signed hash, then re-announce the blob. A clip gets faster and harder to kill the more it's watched — the swarm is the infrastructure.

under the hood

Built on Warren

Murmur is just one app on Warren — a serverless peer-to-peer stack: DHT hole-punching, signed append-only feeds, content-addressed blobs, and verified multi-source swarm sync. Warren moves the encrypted bytes between peers; Murmur is the part that decides they're short videos.

DHT + NAT hole-punching signed feeds · content-addressed blobs verified swarm sync

Explore the Warren stack, the threat model, and how it compares to IPFS, iroh & Holepunch →

threat posture

What makes it hard to censor

Warren treats opacity to a censor as the first requirement, not a feature bolted on later. Five properties do the work.

Blinded, rotating discovery

The discovery topic is hash(psk, epoch) — meaningless without the key and different every epoch. There's no fixed handle to add to a blocklist.

Decoupled identities

Your node id (where you are) is independent from your content id (who published). Watching and hosting don't link back to a single stable name.

Per-epoch re-announce

Membership refreshes on a clock, so the swarm heals through churn without a registry anyone could subpoena or snapshot.

Ciphertext addressing

Blobs are named by the hash of their ciphertext under a random key — so a censor holding a banned clip can't compute its id to hunt other hosts. Content-addressing, minus the fingerprint.

Nothing in the data path

Optional volunteer blind mirrors reseed encrypted bytes they can't read. Nothing is required, nothing is central — availability without infrastructure.

honest limitations

What doesn't work yet

A serverless design pays for its properties — stated plainly, not buried. The first two are limits of the mobile client, not the network: a desktop or always-on peer sidesteps them.

mobile

Two mobile peers on cellular often can't punch. Carrier-grade symmetric NAT plus no relay means two phones on mobile data frequently can't connect directly. Wi-Fi / LAN, desktops, and any always-reachable peer are unaffected; volunteer mirrors cover the gaps.

background

Mobile OSes suspend backgrounded apps. A phone announces and serves only while the app is foregrounded. Desktop and always-on peers have no such limit; on mobile, background re-announce and mirrors cover availability.

transport

No obfuscated transport yet. Discovery is blinded and identities decoupled, but a censor doing deep packet inspection can still see that you're speaking a P2P protocol — just not what, or with whom. A pluggable obfuscated transport is future work.