solana-labs / solana

Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
https://solanalabs.com
Apache License 2.0
12.94k stars 4.15k forks source link

Use QUIC for repair #28636

Open behzadnouri opened 1 year ago

behzadnouri commented 1 year ago

Problem

UDP lacks features to effectively support QoS.

Proposed Solution

behzadnouri commented 1 year ago

Some current observed quic vs udp regressions:

These likely need to be resolved before we can migrate further protocols to quic.

Additionally mixing synchronization primitives apparently causing hickups: https://discord.com/channels/428295358100013066/1070788493040697354/1070912358714707988

those hickups might have been amplified through the growing use of tokio in seemingly unrelated parts (tpu/quic) of the validator, now causing a leaky bucket to overflow on the rpc side

behzadnouri commented 6 months ago

Repair over QUIC is fully implemented and tested over gce clusters: https://github.com/solana-labs/solana/blob/d48f27709/core/src/repair/quic_endpoint.rs However, firedancer team is proposing a new UDP based protocol. Given the overhead and complexities of QUIC, we will wait until that proposal has panned out before migrating repair off UDP protocol.