Network Protocol
Store-and-forward epidemic routing — messages travel at walking speed.
01. Epidemic Routing
Samizdat uses store-and-forward epidemic routing. Messages are infectious agents. When two nodes meet (Throwie-Mule or Mule-Mule), they exchange compact fingerprints representing their known message sets via Negentropy set reconciliation.
If Node A has messages Node B lacks, they are transmitted via the Glacier V2 transport protocol. This ensures rapid diffusion throughout the physical area without requiring a central directory.
Reconciliation uses Range-Based Set Reconciliation (RBSR) with XOR-Sum accumulators. Typical sync of 50-item difference completes in 1-2 round trips (~200ms).
02. Glacier V2 Transport
The Glacier protocol provides reliable delivery of 2 KB "Drops" over ESP-NOW's 250-byte connectionless datagrams. Header overhead: 14 bytes. Payload per frame: ~210 bytes. Frames per 2KB Drop: 10 packets.
struct GlacierFrame {
magic 1B 0x74 ('t') Protocol ID
type_ver 1B 4b Type + 4b Version
session_id 2B Random nonce per contact
seq_frag 2B 12b SeqNum + 4b FragIdx
short_id 8B 64-bit truncated hash
payload ~210B Variable payload
crc16 2B Polynomial 0x8005
}; 03. Cryptography
All cryptographic operations use audited, constant-time implementations from the @noble family (TypeScript) with Go parity via taynik.
smzd:ck:1 nonce(24) || ciphertext || tag(16) 04. Temperature & Consensus
There are no moderators, no algorithms, no central ranking. Instead, messages carry a temperature value that rises with retransmission and decays over time. Hot content spreads. Cold content dies locally.
Temperature is not a score or a status. It is the network's metabolic signal — evidence that humans found something worth carrying. A message only exists to the extent it was physically moved.
The system has a finite capacity (750 messages per Throwie). When storage fills, the coldest messages are evicted. This mortality is by design — information lives and dies based on whether humans carry it.
05. Data Flow