pub fn start_node_mesh_service(
identity: &NodeIdentity,
peers: &[SocialPeer],
bind_ip: IpAddr,
read_timeout: Option<Duration>,
) -> Result<(MeshService, Vec<PeerAddOutcome>), String>Expand description
Build the mesh from identity + peers and start it running on its own thread.
Convenience over build_node_mesh + MeshService::spawn: returns the running service
(drive it with send/try_recv/initiate_handshake) alongside the per-peer add outcomes.
This is the top of the stack the desktop process holds to run the SocialWebNet.