Skip to main content
LocalBackend is the default: no Sia node, no wallet, nothing beyond disk. obsidianlog init picks it unless you explicitly choose the Sia backend, and every default build/test in this project runs against it, matching the project’s mock-first invariant.

On-disk layout

Objects are stored as files under <root>/<bucket>, mirroring the same layout used on Sia so the rest of the pipeline behaves identically regardless of backend:
sequence (unique and monotonic per service) is part of the path, not just window, since a window can legitimately receive many chunks over its lifetime (one per batch that touches it), so (service, window) alone isn’t a unique storage location.

Durability

Every write is durable and atomic: data is written to a temporary file in the destination directory, fsync’d, then renamed into place, after which the directory is fsync’d to persist the rename.

When to use it

  • Local development and testing.
  • Offline or air-gapped environments.
  • Anywhere you don’t need Sia’s durability/redundancy guarantees, or want to evaluate ObsidianLog before setting up a Sia backend at all.
For durable, redundant, off-site storage, see Hosted (Sia Storage) or Bring Your Own Indexer.