Module storage

Module storage 

Source
Expand description

Local storage management for a Pouch service instance.

§Responsibilities

  • Create and maintain the on-disk directory structure for a Pouch bid.
  • Persist and load EncodedFragments in the binary .frag format.
  • Maintain an in-memory FragmentIndex for fast chunk/fragment lookups.
  • Enforce the storage quota declared at bid time.
  • Expose recoding helpers so the daemon can generate new fragments for newly-joined Pouches without touching the original data.

§Directory layout

~/.local/share/billpouch/storage/<network_id>/<service_id>/
  meta.json
  fragments/
    <chunk_id>/
      <fragment_id>.frag

Re-exports§

pub use encryption::ChunkCipher;
pub use file_registry::FileRegistry;
pub use file_registry::StoredFileEntry;
pub use fragment::FragmentIndex;
pub use fragment::FragmentMeta;
pub use manifest::ChunkManifest;
pub use manifest::FileManifest;
pub use manifest::FragmentLocation;
pub use manifest::NetworkMetaKey;
pub use meta::PouchMeta;
pub use tier::StorageTier;

Modules§

encryption
Per-chunk encryption for BillPouch storage (“encryption at rest”).
file_registry
Persistent catalogue of files uploaded by this node.
fragment
In-memory index of fragments held by a Pouch.
manifest
File manifest — per-file metadata for the BillPouch distributed FS.
meta
PouchMeta — on-disk metadata for a Pouch storage bid.
tier
Storage tier system for BillPouch Pouch services.

Structs§

StorageManager
Manages on-disk storage for a single Pouch service instance.