Expand description
Peer/p2p transport for the rag-rat op log (phase D, #406).
Phase C built the stationary machine — a signed, hash-chained op log with a deterministic, device-independent fold, and ingest seams that verify raw signed bytes from any source. This crate is the wire: an iroh QUIC session that exchanges those bytes between peers and feeds each received entry back through the same ingest seam, so a synced entry passes exactly the checks a local write does. The transport adds movement, never trust.
Layers, bottom up:
wire— the frozen CBOR frame protocol (hello / entries / done).codec— length-prefixed framing over any async byte stream (iroh in production, an in-memory duplex in tests).session— the symmetric state machine and thesession::SyncStoreseam.store— the op-log-backedsession::SyncStore.endpoint— the iroh endpoint that binds the ALPN over a pinned relay and runs a session per connection.
Re-exports§
pub use auth::AuthConfig;pub use auth::AuthError;pub use auth::AuthPolicy;pub use auth::AuthRole;pub use auth::NodeAuth;pub use auth::run_auth_phase;pub use endpoint::EndpointError;pub use endpoint::SyncFailure;pub use endpoint::accept_and_sync;pub use endpoint::build_endpoint;pub use endpoint::connect_and_sync;pub use endpoint::endpoint_addr;pub use session::DEFAULT_IDLE_TIMEOUT;pub use session::Ingested;pub use session::MAX_SESSION_ENTRIES;pub use session::SessionError;pub use session::SessionReport;pub use session::SyncStore;pub use session::run_session;pub use session::run_session_with_idle_timeout;pub use store::OplogContentSyncStore;pub use store::OplogSyncStore;pub use wire::Frame;pub use wire::SYNC_ALPN;pub use wire::WireError;
Modules§
- auth
- The node-authorization handshake that gates a session (phase D, #881).
- codec
- Length-prefixed framing over an async byte stream (phase D, #406).
- endpoint
- The iroh endpoint adapter (phase D, #406).
- session
- The symmetric sync session (phase D, #406).
- store
- The op-log-backed
SyncStore(phase D, #406). - wire
- The sync session wire protocol (phase D, #406).