//! # ringdrop
//!
//! P2P file transfer with ring-based access control, built on [iroh] (QUIC +
//! hole-punching) and [iroh-blobs] (BLAKE3 chunked storage with bao encoding).
//!
//! ## Architecture
//!
//! ```text
//! ┌─────────────────────────────────────────────────────┐
//! │ CLI (rdrop) <-> DaemonClient <-> DaemonServer │
//! └──────────────────────────┬──────────────────────────┘
//! │
//! Node<R>
//! ┌──────────┼──────────┐
//! Endpoint FsStore Registry
//! (QUIC/iroh) (iroh-blobs) (R)
//! └──────────┬──────────┘
//! RingGate
//! (iroh-rings, ALPN /iroh-rings/1)
//! ```
//!
//! A [`core::Node`] wraps an iroh QUIC endpoint, an iroh-blobs persistent blob
//! store, a `Registry` that tracks ring membership, and a `RingGate` that
//! enforces access control: a blob is only served to a peer whose
//! [`EndpointId`] is a member of at least one ring the blob is tagged with.
//!
//! The [`daemon`] module runs a `Node` as a background TCP server so that the
//! CLI can talk to it over a local IPC connection.
//!
//! [`EndpointId`]: iroh::EndpointId