Skip to main content

Module node

Module node 

Source
Expand description

The node read path — GET {base}/s/<storeId>[:<root>]/<resourceKey>.

A loopback dig-node can answer in one of TWO shapes, distinguished DETERMINISTICALLY by headers (never by assuming “node ⇒ plaintext”):

  1. Verified PLAINTEXT — the node decrypted + verified server-side and attests X-Dig-Verified: true. Trusted directly (no client crypto), sound because:
    • Loopback only — this path is reached ONLY for an asserted-loopback host (the ladder’s crate::ladder::classify guard); a remote/override host is routed to the client-verified rpc path instead.
    • Attested — a missing/false X-Dig-Verified is rejected fail-closed.
  2. CIPHERTEXT — the node relayed opaque ciphertext (marked by X-Dig-Encrypted: true or an X-Dig-Inclusion-Proof header). This is client-side VERIFIED + DECRYPTED exactly like the rpc path (merkle proof + AES-256-GCM-SIV via digstore-core, URN salt threaded in) — a node returning ciphertext is NOT blindly trusted.

A response that is neither attested plaintext nor decryptable ciphertext fails closed.