pub fn build_node_mesh(
identity: &NodeIdentity,
peers: &[SocialPeer],
bind_ip: IpAddr,
read_timeout: Option<Duration>,
) -> Result<(SocialWebNet, Vec<PeerAddOutcome>), String>Expand description
Build a live SocialWebNet for this node, adding a tunnel for every reachable peer
(active + valid WireGuard key). Inactive or keyless peers are skipped with a note. Peers
whose endpoint is known are pre-pointed; the rest wait to learn it by roaming.
Returns the mesh and a per-peer outcome list. Bringing up the handshake and pumping is the
caller’s job (the mesh is a passive, caller-driven state machine — see
SocialWebNet::pump).