solana/core
behzad nouri 9ff0b35f29
adds QUIC endpoint for repair service (#33057)
Working towards using QUIC protocol for repair, the commit adds a QUIC
endpoint for repair service.

Outgoing local requests are sent as

    struct LocalRequest {
        remote_address: SocketAddr,
        bytes: Vec<u8>,
        num_expected_responses: usize,
        response_sender: Sender<(SocketAddr, Vec<u8>)>,
    }

to the client-side of the endpoint. The client opens a bidirectional
stream with the LocalRequest.remote_address and once received the
response, sends it down the LocalRequest.response_sender channel.

Incoming requests from remote nodes are received from bidirectional
streams and sent as

    struct RemoteRequest {
        remote_pubkey: Option<Pubkey>,
        remote_address: SocketAddr,
        bytes: Vec<u8>,
        response_sender: Option<OneShotSender<Vec<Vec<u8>>>>,
    }

to the repair-service. The response is received from the receiver end of
RemoteRequest.response_sender channel and send back to the remote node
using the send side of the bidirectional stream.
2023-09-07 18:00:25 +00:00
..
benches Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2023-09-01 07:26:13 +00:00
src adds QUIC endpoint for repair service (#33057) 2023-09-07 18:00:25 +00:00
tests Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2023-09-01 07:26:13 +00:00
.gitignore
Cargo.toml adds QUIC endpoint for repair service (#33057) 2023-09-07 18:00:25 +00:00
build.rs