.spec · wire-format · §3
Drop store.
Layer 1 — the bulk bytes. Slabs are the unit of locator addressing; drops are the atoms of storage and identity. Solid windows let drops share a codec stream for better ratio. Optional Reed-Solomon shards add availability insurance.
A slab is header + drop records + solid windows + optional EC shards. Total: 4–64 MiB.
§3.1 — Slab format
A slab is a contiguous byte object in the drop store. It is the unit of locator addressing for Layer 1. Slabs MUST be between 4 MiB and 64 MiB inclusive unless the manifest’s parameters section overrides. Slabs MUST NOT span locator entries — one slab maps to one primary locator plus optional mirror entries.
§3.2 — SlabHeader
The slab header is a fixed-size prefix at offset 0. Layout (every field exact-width):
| Field | Type | Notes |
|---|---|---|
magic | 4 bytes | LIM1 (0x4C 0x49 0x4D 0x31) |
format_version | u16 LE | bump-incompatible layout changes |
slab_id | SlabId (40 B) | §2.2 — ordinal + content hash |
total_length | u64 LE | bytes including header |
ec_descriptor | u8 | 0 = no EC; 1..N = EC id; 255 = extended (post-v1) |
crypto_hint | u8 | 0 = plaintext; N = AEAD id (key lives in manifest §5.5) |
§3.3 — Drop records
Each drop within a slab has a DropRecord describing where its bytes live:
| Field | Type | Notes |
|---|---|---|
drop_id | DropId (32 B) | §1.1 |
plaintext_len | u32 LE | after codec/AEAD inverse; reader sizes destination buffer |
representation | 3 bytes | §2.2 (codec, aead, ec); 0 = none allowed for plaintext |
solid_window_index | u8 | which window contains this drop’s bytes |
offset_in_window | u32 LE | byte offset within the decompressed solid window |
len_in_window | u32 LE | byte length within the decompressed solid window |
§3.4 — Solid windows
Per §20.1: per-slab solid windows only (cross-slab class
groups deferred to solid-blocks-v2 feature flag). When
codec = 0 (store), the window’s bytes are the literal concatenation of drop
plaintexts, no framing. When codec != 0, the window is compressed; readers
decompress once per window and index by (offset_in_window, len_in_window).
§3.5 — EC shards (optional)
When ec_descriptor != 0 and != 255, the slab’s last
m blocks of size ceil(|payload| / k) are Reed-Solomon parity
shards (k+m total). See §16 for the
exact shard field layout and reconstruction procedure.