Expand description
Optional archive engine. Opening an archive performs no network operations. Applications may use their existing sources without depending on this crate or running the standalone service.
Modules§
- archive
- Transactional archive owned by one process. Readers use the owning engine or its API; consumers never open the service database for independent writes.
- cache
- Soft limits for reclaimable local multipart evidence, not disk quotas.
Each maintenance step returns a
model::CacheReceipt. - client
- Optional, explicitly configured loopback client. No daemon is started and no DNS, proxy, environment configuration or chain source is consulted.
- config
- Built-in defaults that need one home. Seeds are DNS names whose records the operator publishes; the daemon dials whatever they resolve to. Regtest and Bitcoin test chains have no seeds.
- engine
- model
- Shared local API models, with archive-only capabilities kept in this crate.
- names
- Shared local Names projection data; no independent proof or coverage claim.
- peer
- Explicitly started URMA peer transport. Noise authenticates the remote
transport identity; packages still need independent Engine admission.
There are no built-in seeds, wallet keys or implicit listeners. Names in
explicitly dialed
/dns*addresses resolve through the system resolver. - peer_
codec - Bounded framing for untrusted peer JSON. No record or chain verification. The request-response layer owns timeouts, including waiting for stream EOF.
- peer_
discovery - Bitcoin-style peer discovery. Seeds bootstrap a sparse book; afterwards connected peers exchange verified addresses. A dial proves only that a Noise identity on this chain answered at an address: never record availability or honesty. Each Service round performs at most three network operations and checks cancellation between them.
- peer_
gossip - Peer gossip and explicit dialing. Gossiped addresses are untrusted routing hints; a dial proves only the remote transport identity, and the Peers probe that follows it only that the peer speaks this protocol on the same chain.
- peer_
live - The overlay peers that inventory sync, parent recovery and record retrieval use right now: configured peers always, then every connected peer that spoke this protocol version on our chain, inbound or outbound. A connected peer leaves the set with its last connection.
- peer_
protocol - Untrusted selective exchange, separate from the authenticated local control API. Transport identity proves which peer answered, not chain membership, record validity or completeness. URMA V0 records and proofs are unchanged.
- peer_
sync - Fast inventory synchronization from configured URMA peers. A peer page is an
untrusted claim: every fetched package is proof-verified by
admit_recordagainst the independently selected header chain, and coverage is recorded only after a complete range has every advertised record present locally. Full-block audit (indexed_through) remains the separate, stronger claim. A peer that answers with an invalid page, package or reply is disconnected and backed off; one that stays Busy for many turns is disconnected so the connection slot it holds frees up for others. So is one that answers turn after turn without anything we can use (stale listings, unscanned pages), and a peer refused by the local connection limit gets the slot of the connected peer that progressed longest ago. - peerbook
- Bounded peer book: explicit routing hints, configured seeds and addresses learned from peers. Every entry is an untrusted hint, never chain evidence or a statement of record availability. Nothing here resolves names, dials or starts networking; the caller owns the directory, its lock and saves.
- projection
- Local index DTOs shared with optional application clients.
- retrieval
- On-demand content acquisition. Sources supply untrusted packages; the local engine supplies the independently selected chain view. Missing peers do not imply missing chain data: a known locator can fall back to full witness blocks.
- service
- Small authenticated loopback control surface. The archive engine remains usable directly; HTTP is not a prerequisite for embedded applications.
- source