pub fn spawn_server(
    sock: UdpSocket,
    keypair: &Keypair,
    gossip_host: IpAddr,
    packet_sender: Sender<PacketBatch>,
    exit: Arc<AtomicBool>,
    max_connections_per_ip: usize,
    staked_nodes: Arc<RwLock<HashMap<IpAddr, u64>>>,
    max_staked_connections: usize,
    max_unstaked_connections: usize
) -> Result<JoinHandle<()>, QuicServerError>