Optionalopts: { storageLimitBytes?: number } = {}
OptionalstorageLimitBytes?: numberCapacity cap; defaults to 2 GiB.
Evicts every blob whose received timestamp predates cutoff.
Unix seconds.
count evicted.
Evicts the oldest blobs (by received) until neededBytes fit under the
capacity limit.
All known message ids (sync manifest source).
Deletes a blob by message id.
true if a blob was removed.
Exports the full store as serializable records (msgpack-friendly). Used by
the @reticulum/node FS adapter to persist blobs across restarts.
Reads a blob by message id.
Replaces the store contents with the given records (direct population, bypassing eviction — used on load). Clears any existing data first.
The full store manifest as [channelHash, messageId] pairs — served by
/rfed/offer (Rust handle_offer) so a peer can compute its gap.
All message ids stored under the given channel hash.
Returns the { channelHash, messageId } metadata for a stored blob, or
null if unknown. Used by /rfed/get to emit the §3 blob stream with the
correct channel attribution.
Prunes blobs older than maxAgeSec (SPEC §5: 30-day TTL). A runner calls
this periodically (hourly) via RFedNode.tickMaintenance; the store also
self-prunes opportunistically on each ingest.
count evicted.
Stores a blob under a fresh random 16-byte message id.
16-byte channel hash.
Raw inner blob (stamp already stripped).
the assigned 16-byte message id.
Stores a blob under a caller-supplied message id. Idempotent when the same
(messageId, destinationHash) pair is stored again (used by peer sync to
preserve upstream ids); collides otherwise.
the message id.
In-memory blob store. Implements the same surface as the Rust
BlobStoreso a filesystem adapter can drop in for production use.