9ff0b35f29
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. |
||
---|---|---|
.. | ||
benches | ||
c | ||
rust | ||
tests | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
build.rs |