Expand description
The resolver — orchestrates URN → data over the §5.3 node-first ladder.
§Three outcomes, deliberately kept distinct
A resolve returns Result<ResolveOutcome, ResolveError>:
ResolveOutcome::Success— verified, decrypted content (node path: server-side decrypted under loopback trust; rpc path: client-verified against the chain-anchored root then decrypted).ResolveOutcome::IntegrityFailure— bytes WERE fetched but failed the merkle inclusion / decrypt-verify (tampered / decoy / wrong root). A hard, fail-CLOSED SECURITY outcome: the unverified bytes are discarded and NEVER returned.ResolveOutcome::Unreachable— every transport tier was down; nothing was fetched. A friendly, retryable network condition.
IntegrityFailure (reached the network, bytes don’t verify — security) and
Unreachable (couldn’t reach the network — retryable) are never conflated.
A malformed URN, a not-found resource, and a reachable rpc PROTOCOL error remain
hard ResolveErrors.
Structs§
- Resolve
Options - Options for a resolve. All optional; defaults follow §5.3.
- Resolved
Data - The resolved bytes plus their content type. Only ever the VERIFIED content of a
ResolveOutcome::Success, or the branded HTML of a rendered non-success outcome (seeResolveOutcome::render). - Resolver
- A URN resolver over an injected
HttpTransport. The ladder plan and verified results are cached per instance.
Enums§
- Resolve
Outcome - The typed result of a resolve. The three cases are exhaustive and never conflated (see the module docs).