ConstTODO(wittjosiah): Add a local cache (e.g. via @dxos/random-access-storage, keyed by content
hash) so reads/writes don't always round-trip to the edge. Blocked on BlobBackend gaining a
remove and GC/refcounting for content-addressed blobs — without that, a local cache has no way
to know when a cached entry is safe to evict once its owning Blob object is deleted.
Blob backend that stores bytes in the edge blob service, addressed by RFC 6920
ni:URIs over a SHA-256 digest of the complete blob. The edge blob service itself is a flat key-value store keyed by hex digest — online-only in v1; reads and writes reject if the edge is unreachable and there is no local cache.